ABR is the answer to the basic streaming problem: the network varies, the video must keep playing. Every modern streaming protocol — HLS, DASH, LL-HLS, LL-DASH — supports it. The packager produces several renditions of the same content at different bitrate/resolution combinations (the ABR ladder), the player downloads the manifest and picks a starting rendition, and at each segment boundary the player reassesses and may switch to a higher or lower rendition. The viewer sees one continuous video; behind the scenes, a 240p mobile rendition might switch to 1080p as the connection improves.

The ABR decision is made by an algorithm that consumes recent throughput measurements, current buffer level, segment download history, and a target latency. Classical algorithms are throughput-based (estimate bandwidth, pick the highest rendition that fits with margin) and buffer-based (keep the buffer in a target range, let buffer dynamics drive choice). Production algorithms — BOLA, MPC, hybrid heuristics — combine both signals.

ABR's quality is measured by three metrics: rebuffer ratio (how often the buffer empties), average video bitrate watched (higher = better picture), and number of switches per session (fewer = less visual disturbance). A good ABR algorithm balances all three. Most viewers never think about ABR; it works silently. But every QoE improvement project at every OTT company eventually touches the ABR algorithm because it is where most of the user-perceived quality battle happens.