HLS, DASH, ABR and the buffer budget
Learn to: reason about manifest choices, bitrate and buffer consumption.
Prerequisites: 02-browser-pipeline
Manifest and transfer budget
On a narrow screen, swipe the diagram horizontally to keep its labels readable.
Mental model verified
HLS exposes playlists; DASH exposes an MPD with periods, adaptation sets and representations. The client obtains manifests and segments, estimates conditions, and decides the next rendition. A rendition is an encoded quality option, not a CSS size.
[S21] [S25]Worked budget synthesis
Toy calculation: a two-second segment encoded at 1 Mbps contains roughly 2 Mbit. At steady 2 Mbps throughput it takes roughly one second to transfer, excluding overhead. At 0.5 Mbps it takes roughly four seconds; repeated transfers can drain the buffer. Real segments vary in size and requests have latency.
[S26]Decision and pitfall verified
Let automatic adaptation be the baseline. A forced high resolution can stall; a giant buffer can waste transfer when users leave. DASH’s documented default combines throughput and BOLA rules; this is an implementation choice, not the definition of ABR.
[S26]Further improvement synthesis
Measure startup, stalls and quality for representative networks. Tune one constraint at a time: initial quality, buffer, player-size cap or live latency target. A low-latency flag cannot repair an origin that never produces promptly available chunks.
[S23] [S28] [S35]Check yourself: Why can a lower rendition improve viewing?
It can download faster than playback consumes the buffered duration, reducing stall risk at the cost of visual detail.