Frame Types Explorer
I, P and B frames
A compressed video is not a stack of pictures. It is one picture plus a long list of instructions for changing it. Everything else — GOP size, B-frame count, seek behaviour, latency, why a dropped packet smears green across your screen — falls out of that one idea. Turn the knobs below and watch it happen.
Coded entirely from itself. No other frame is consulted, so it is the only frame you can hand a decoder cold.
Analogy: the full JPEG. Expensive to store, but it is the door into the stream.
Stores only what changed since earlier frames: block motion vectors plus a small residual for what motion could not explain.
Analogy: a diff against the last commit. Useless without the commit it was diffed against.
Predicts from a past and a future frame, averaging the two. Cheapest frame in the stream by a wide margin.
Analogy: interpolating between two known states. To do it, the encoder must send the future first — which costs latency.
01 · Encoder controls
every panel below reacts to these02 · The GOP
bar height = coded size of that frame · click any frame to inspect it03 · Decode order ≠ display order
step the decoder and watch the reorder buffer fillA B frame leans on a frame that comes after it on screen. So the encoder ships that future anchor early, and the decoder holds finished pictures back until their turn arrives.
That hold is why every container carries two clocks: DTS for when to decode, PTS for when to show.
Set B frames to 0 and the two orders collapse into one — the configuration every low-latency conferencing pipeline ships.
04 · Inside frame {{ selIdx }}
motion vectors and residual for the frame you selected above{{ inspectorText }}
05 · The same settings, as a pipeline
these strings track the controls above — copy and run{{ p.cmd }}GOP size is a trade between bitrate and entry points. Long GOP is efficient and cheap; it also means a player joining mid-stream waits, and a lost frame stays broken until the next I.
B frames buy you bitrate with latency. Great for VOD and streaming ladders, wrong for conferencing, remote desktop, or anything a human steers in real time.
Frame type decides what a dropped packet destroys. Lose a B and nobody notices; lose an anchor and everything leaning on it smears until the next refresh.