Here you can learn about terms and concepts that you meet in the documentation on Flussonic Media Server.
GOP (Group of Pictures)
Group of Pictures (GOP) — a structured group of successive frames in an MPEG-encoded video stream. Frames are grouped for the interframe compression purposes. We need compression to transfer video over networks. The encoder software compresses video data to reduce its amount compared with non-compressed (raw) video data.
A compressed stream is a succession of GOPs. On a receiving side, the decoder takes all frames in a GOP and creates an image that you can see.
A GOP consists of an I-frame followed by P-frames and B-frames:
- I-frame (keyframe) – is a first frame in a GOP. It is a full image encoded independently from other frames (meaning no links to them). Each GOP has a keyframe at the start.
- P-frame, B-frame – frames that go after the keyframe in a GOP.
- P-frames contain the difference between the previous P-frame and a current frame. It is encoded with a link to an I-frame.
- B-frames contain links to I-frames and P-frames before and after themselves. It helps to rewind quicker, for example.
GOP size (the number of frames between two neighbor keyframes) – the number of frames in one GOP. This number can be variable or constant for a stream. When Flussonic transcodes a stream, it creates GOPs of a constant size, so all GOPs have the same size.
Segments (in the protocols DASH, HLS, and HDS)
Segments are chunks of a video stream. They have a constant duration measured in seconds. Segments are used for transfer and buffering purposes. A segment can contain several GOPs and it must be divisibale by GOP. A segment cannot be shorter than a GOP.
The sender of a DASH, HLS or HDS stream transfers video segment by segment, and it sends to a client a so called playlist that the list of segments. Before start playing a stream, the client saves some segments in the buffer. If the connection with the server breaks or slows down, the client plays video segments from the buffer, so video is played more smothly. The client usually downloads three segments before it strats the playback.
Multicast is a method of video distribution in a local network. A multicast is a set of UDP packets transmitted from the same source to a group of subscribers at one time. A special multicast IP address is used.
Learn more in the Flussonic documentation
Prepush is a method used to achieve a smoother playback of HTTP MPEG-TS, RTMP, or RTSP video streams transmitted via TCP.
With prepush, a streaming server saves each GOP in the buffer before sending it to a client. When a client connects to the server, the server sends the first GOP from the buffer and then transmits a stream with a timeshift — the delivery lags behind for a time interval equal to the size of one GOP converted to seconds. When the connection with the server breaks or slows down, the client plays a GOP from the buffer. In this way, video is played more evenly.
This is a set of Flussonic features related to recording streams to an archive and then playing the archive via different protocols or export the selected part of it to an MP4 file.
Video streaming protocol
Video streaming protocol is the rules for the exchange of data, commands and responses to them between two participants in a video communication (client-server or peer-to-peer).
When preparing data for transmission over the network:
- First, the video and audio data must be compressed
- Then it must be packed in container for streaming via a certain protocol.
Video container (transport)
A container is the format for packaging encoded data in a file or stream for transmission over a network. Packets with audio and video data are transmitted at the transport layer according to the OSI model.
The container format is self-sufficient and independent of the delivery protocol, that is, you can package the data and play it on your local machine, and not necessarily transfer it over the network.
It is a technology for compressing raw video for subsequent packaging into a container, which, in turn, will be used for delivery via a specific streaming protocol.
Publishing video to Flussonic
Publishing is transmitting video to Flussonic Media Server from external systems and devices that initiate the connection. Flussonic is the party that awaits the connection.
What we call publishing to Flussonic:
- Transmitting video from a mobile device to Flussonic.
- Transmitting video from OBS (Open Broadcaster Software) or vMix to Flussonic. Learn more
- Transmitting video from a webpage to Flussonic via WebRTC. Learn more
And this is what we don't call publishing: