Adaptive Bitrate Streaming: Why Video Quality Changes Mid-Show

Adaptive Bitrate Streaming: Why Video Quality Changes Mid-Show

4 September 2026 0 By Everly Poirier

Streaming video is not a stream. It is a few thousand small files, each holding a couple of seconds of the show, encoded several times over at different qualities, with the player deciding one file at a time which version to fetch next. Everything you notice about streaming — the soft first few seconds, the sudden sharpening, the drop to a blurry version when someone else in the house starts a video call — falls out of that design.

Segments and the manifest

The encoder chops the source into segments of fixed duration, each starting with a keyframe so it can be decoded without the segment before it. Every quality level — every rung of the ladder — is cut on the same boundaries, so the player can switch rungs at any segment edge without a visible seam.

A text file lists what exists. In HLS it is the playlist; in DASH it is the manifest, an XML document called the Media Presentation Description. Either way, the player fetches this first, learns which resolutions and bitrates are available and where the segments live, and then does nothing but issue ordinary HTTP GETs. That is the whole reason adaptive streaming won: to a CDN, video is just cacheable static files.

HLS and DASH

Apple’s HTTP Live Streaming is documented in RFC 8216, published August 2017 by Roger Pantos of Apple and William May of MLB Advanced Media. It is Informational rather than Standards Track — a description of a protocol Apple already shipped, not an IETF consensus standard. It specifies a plain UTF-8 playlist with #EXT tags, and its EXT-X-TARGETDURATION tag caps segment length, with the document noting a typical target duration of 10 seconds. Work has since continued as the Internet-Draft “HTTP Live Streaming 2nd Edition”.

MPEG-DASH is ISO/IEC 23009-1, a formal international standard now several editions deep — the fifth edition was published on 2 August 2022 and has since been superseded. DASH is codec-agnostic by design and more configurable; HLS is more tightly specified and is what Apple devices expect natively.

The practical difference has narrowed to almost nothing because of CMAF, the Common Media Application Format, ISO/IEC 23000-19, first published in 2018 and now in a 2024 edition. It defines one fragmented-MP4 segment format that both HLS and DASH can address. Before it, serving both meant encoding and storing everything twice — MPEG-2 Transport Stream for HLS, fragmented MP4 for DASH — and halving your cache hit ratio for no benefit.

The ladder, and why it is no longer fixed

The ABR ladder is the set of resolution-and-bitrate pairs offered. For years these were fixed per service. Netflix’s engineering blog published in December 2015 that its standard ladder had been 1080p at 5,800 kbps, 720p at 3,000 kbps, 480p at 1,750 kbps and so on, applied identically to every title.

That is obviously wasteful. A flat animated cartoon and a handheld night-time action sequence do not need the same bits. Per-title encoding analyses each title’s complexity and builds a ladder for it. Netflix’s own worked examples: an episode of BoJack Horseman, previously delivered at 480p and 1,750 kbps at a given quality point, could be delivered at 1080p and 1,540 kbps — better resolution at a lower bitrate. Orange Is the New Black, closer to average complexity, dropped from 5,800 to 4,640 kbps at 1080p, a 20% saving.

The idea has since been pushed further into per-shot and per-scene optimisation, where the ladder varies within a single title.

How the player chooses

Two families of algorithm, and most production players blend them.

Throughput-based selection estimates recent download bandwidth — usually a smoothed average of how fast the last few segments arrived — and picks the highest rung that fits. It reacts quickly, and it is wrong in a specific, well-documented way: when a CDN is temporarily slow, or when a segment is fetched from a full buffer and the connection idles between requests, the estimate reads low and the player downgrades a stream that did not need downgrading.

Buffer-based selection ignores the estimate and looks at how many seconds of playback are already in hand. A deep buffer means it is safe to go up; a draining buffer means come down now. The influential paper here is “A Buffer-Based Approach to Rate Adaptation: Evidence from a Large Video Streaming Service”, presented at ACM SIGCOMM 2014 using data from Netflix. The other landmark is BOLA — Buffer Occupancy based Lyapunov Algorithm — by Kevin Spiteri, Rahul Urgaonkar and Ramesh Sitaraman, published at IEEE INFOCOM in 2016 and implemented in the DASH Industry Forum’s reference player; it received an IEEE INFOCOM Test of Time award in 2026.

Why the first few seconds look soft

At startup the player has neither of its inputs. There is no throughput history because nothing has been downloaded, and there is no buffer because playback has not begun. Starting at a high rung risks a long black screen or an immediate stall; starting low guarantees fast playback and a quick climb. Every player makes the same trade, which is why a show begins slightly soft and sharpens within five or ten seconds.

One thing makes it worse. If you are the first viewer of an unpopular title in your region, those opening segments are cache misses at the CDN edge and must be fetched from origin — slower arrival, lower estimate, lower rung.

Codecs: the same picture in fewer bits

A better codec means either a smaller file at the same quality or a higher rung at the same bandwidth. The headline claims are consistent about the shape of the gains and vague about the conditions, so treat them as design targets measured on the standards bodies’ own test material.

Codec Standard Efficiency claim Practical status
H.264 / AVC ITU-T H.264 | ISO/IEC 14496-10 The baseline everything else is measured against Decodes essentially everywhere; still the universal fallback rung
HEVC / H.265 ITU-T H.265 | ISO/IEC 23008-2, first approved 2013 Designed for roughly half the bitrate of AVC at equal quality Widely supported on TVs and mobile; licensing was the drag on browser adoption
AV1 Alliance for Open Media, 2018 Royalty-free; Netflix reports AV1 sessions using about a third less bandwidth than AVC and HEVC Hardware decode now common on newer TVs, phones and GPUs
VVC / H.266 ITU-T H.266 | ISO/IEC 23090-3 Fraunhofer HHI states about 50% bit-rate reduction at the same subjective quality versus HEVC Little consumer hardware decode; not yet a mass-market delivery codec

Netflix’s engineering blog reported in December 2025 that AV1 was powering roughly 30% of its streaming, with AV1 sessions scoring 4.3 VMAF points above AVC sessions and 0.9 above HEVC, and showing 45% fewer buffering interruptions. An earlier post from November 2021, covering the television rollout, reported up to 10 VMAF points of improvement on badly congested sessions, a 2% reduction in play delay, and noticeable quality drops cut by as much as 38% on some sets. For VVC, Fraunhofer HHI publishes the 50%-versus-HEVC figure alongside its open VVenC encoder and VVdeC decoder.

Note what the codec table does not tell you. A codec only helps if the viewer’s device can decode it in hardware; software decode drains batteries and stutters. That is why services keep an H.264 ladder alive for a decade after better options exist, and why storage costs go up as codecs multiply rather than down.

What to do about it

  • If quality dips constantly on a fast connection, suspect the estimator, not the pipe. A player that keeps downgrading with a full buffer is reading throughput badly — often through a proxy or an aggressive router.
  • Judge a stream after fifteen seconds, not two. The opening softness is by design and tells you nothing about the service.
  • Wired beats wireless for stability, not speed. ABR punishes variance more than it punishes a modest ceiling; a steady 25 Mbps outperforms a spiky 200 Mbps.
  • Check what your device decodes in hardware. An older television capable only of H.264 will be sent a bulkier ladder for the same picture, and will hit its ceiling sooner on the same connection.
  • If you publish video, ship CMAF. One set of segments addressed by both an HLS playlist and a DASH manifest halves storage and doubles the value of every cache hit.