Group of Pictures (GOP) – a structured group of successive frames in an MPEG encoded video stream. Frames are grouped for the interframe compression purposes. After the encoder compresses video data, it becomes possible to transfer it over the networks in a suitable time because the amounts of data is not so great compared with a non-compressed video. 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.
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 – prepush is a method used to achieve smother 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 – it 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.