The playback buffer is the holding tank of decoded video a streaming player keeps ahead of the playhead, ranging from a few seconds to a few tens of seconds, filled from the network while the player plays out of it. As long as it refills at least as fast as it drains, playback is smooth and the viewer never knows it exists; when it empties to zero the stream stalls, which is rebuffering. Its depth is a deliberate trade-off. A player will not start until it holds a set start buffer threshold as a cushion against an immediate stall, so a deeper threshold protects against rebuffering but lengthens startup time, while a shallower one starts faster but is more fragile. This is why startup and rebuffering are tuned together rather than in isolation. The buffer is also the shock absorber an ABR algorithm manages, filling a cushion before allowing an upswitch; buffer length is reported per request in CMCD as the field that signals an imminent stall.

