
Adaptive bitrate (ABR) streaming is a delivery method that encodes a video at several quality levels and lets the player pick one per segment based on your bandwidth and buffer. When your connection dips, the picture steps down instead of the video stalling.
TL;DR:
Updated Oct 19, 2026: definition-first rewrite, a ladder diagram, the ABR rules in AIOZ's docs, and a fix: the 700 Kbps to 60 Mbps figures are caps, not a ladder.
ABR is the reason a video on your phone gets softer for a few seconds in a lift instead of freezing. Without it, a player downloads one fixed file, say 1080p at 5 Mbps, and stalls whenever your connection drops below that rate. With ABR the platform stores the same video at several bitrates, and the player keeps choosing the one your network can carry right now.
AIOZ's adaptive streaming docs give a simple example: a viewer starts at 720p, and when bandwidth drops near 1.2 Mbps the player steps to 480p to avoid a stall. As the buffer recovers and throughput rises, it climbs back to 720p. Rules such as hysteresis and a minimum dwell time stop it from bouncing up and down in between.
The AIOZ docs break ABR into six steps, and every major platform follows the same shape:

In HLS, the ladder lives in a master playlist where each rendition gets an EXT-X-STREAM-INF line with a BANDWIDTH value. RFC 8216 says that value "MUST be the largest sum of peak segment bit rates that is produced by any playable combination of Renditions." If you set it too low, the player may pick a rendition your viewer's network can't sustain. Our M3U8 guide shows a full master playlist, and the HLS vs MPEG-DASH comparison covers how the DASH manifest differs.
ABR players fall into three families, and they differ in which signal they trust most.
Pure throughput logic has a known weak spot called bufferbloat. A congested Wi-Fi router can queue packets for a second or more, so your connection looks slow until the queue drains and then fast again. A throughput-only player reads that as a real drop and recovery and switches twice. A buffer-based player reacts less, because the data still arrives and the buffer stays topped up.
Every switch is visible to the viewer, so a player that chases each small change in bandwidth gives a worse session than one that holds a slightly lower rung. AIOZ Stream's docs build three guards into its ABR rules for this reason:
Our QoE guide explains why: in a study of more than 400,000 YouTube sessions, even an upward bitrate change raised abandonment compared with holding the rate steady. Stability is one of the terms in AIOZ's own QoE model for the same reason.
More rungs are not automatically better, because each extra rung costs another encode and more storage. Rungs that sit too close together also give the player more chances to oscillate without a quality gain anyone can see. The AIOZ docs offer this five-rung ladder as a starting point and tell you to tune it against your own catalog:
| Rung | Resolution | Target peak bitrate | Typical codec | Notes from the docs |
|---|---|---|---|---|
| 1 | 240p | 0.30 Mbps | H.264 Baseline | Low-end networks; keep audio continuous |
| 2 | 360p | 0.60 Mbps | H.264 Main | First watchable rung on mobile |
| 3 | 480p | 1.20 Mbps | H.264 Main | SD baseline; stable on average 4G |
| 4 | 720p | 2.50 Mbps | H.264 High | HD entry for good phones or PCs |
| 5 | 1080p | 5.00 Mbps | H.264 High | Full HD for strong connections |
Each rung roughly doubles the one below it, which keeps every switch large enough to notice. The docs add that HEVC or AV1 ladders can target 20 to 40% lower bitrates at similar quality if you gate them by device support. Content-aware encoding can cut bitrates further on simple scenes, and our VMAF guide shows how to check that each rung still looks good enough.
Don't confuse this ladder with the limits in the Video API. The API caps each resolution at a maximum bitrate, and those caps run 0.7, 1.2, 2 and 4 Mbps for 240p through 720p. From 1080p up they are 6, 12, 30 and 60 Mbps for 1080p, 1440p, 2160p and 4320p. Treat them as ceilings for any rung you define, not as a recommended ladder.
The AIOZ Stream player plays HLS and MPEG-DASH with adaptive bitrate built in. According to the adaptive streaming docs, its switching decisions are QoE-aware. They weigh the expected VMAF gain of a higher rung against stall penalties, use the three stability guards above, and allow device-aware caps and regional default bitrates. The docs don't say whether the core estimate is throughput-based, buffer-based or BOLA-style, and the public API doesn't expose player-side ABR settings.
What you control is the ladder, which you define as renditions in the qualities array when you create a video. This snippet is quoted from the Video API docs for the Node.js SDK and wasn't run for this article; add one object per rung you want.
const video = await client.media.create({
title: 'My Video',
type: 'video', // required, must be 'video'
qualities: [
{
resolution: '720p', // '240p'|'360p'|'480p'|'720p'|'1080p'|'1440p'|'2160p'|'4320p'
type: 'hls', // 'hls' | 'dash'
containerType: 'mpegts', // hls: 'mpegts'|'mp4'; dash: 'fmp4'
videoConfig: {
codec: 'h264', // 'h264' | 'h265'
bitrate: 3000000,
index: 0
},
audioConfig: {
codec: 'aac',
bitrate: 128000,
channels: '2',
sampleRate: 44100,
language: 'en',
index: 0
}
}
]
})To judge your ladder, the docs suggest tracking rebuffer ratio (aim under 0.5 to 1%) and startup time (under 2 seconds for short videos). They also list average VMAF, time on the highest sustainable rung, and switch count. Our stream health metrics guide defines each one and shows how to read them together. For watch time and retention per video, our video analytics dashboard guide pulls them from the Analytics API. For the full set of rules, read Adaptive streaming (ABR) in the AIOZ Stream docs.
Is ABR the same thing as HLS?
No. HLS and MPEG-DASH are the formats that carry an ABR ladder, and ABR is the player behavior of switching between the renditions they list.
Does ABR work on a slow connection?
Yes. The AIOZ docs say the player favors avoiding stalls first, even if that means staying on a low rung for a while. They also recommend keeping audio continuous on the lowest rungs.
Which ABR algorithm does AIOZ Stream use?
The docs describe QoE-aware rules with hysteresis, dwell time and capped steps, but they don't name a throughput, buffer or BOLA algorithm.
Is a denser ladder always better?
No. Extra rungs add encoding and storage cost, and rungs that sit close together cause more switching without a quality gain your viewers can see.
Why does quality change even when the video never buffers?
The player is moving between rungs to stay ahead of your bandwidth, and each change is visible, which is why good ABR logic limits how often it happens.
What metrics tell me whether ABR is working?
Track rebuffer ratio, startup time, average VMAF, time at the highest sustainable rung and switch count, as the AIOZ adaptive streaming docs recommend.
qualities options and per-resolution bitrate caps
Video streaming protocols move video from encoder to viewer. See how RTMP, SRT, HLS, DASH and WebRTC differ in latency, transport and where each one fits.

Decentralized live streaming sends a real-time broadcast through independently run nodes instead of one company's servers. Here's how each stage of it works.

A video streaming glossary of 114 terms, from AAC and ABR to WebRTC and Widevine, each defined in plain English with sources and links to the deep posts.

Read the AIOZ Stream Statistics panel: bitrate in and out, FPS in and out and current viewers, plus the documented rules for each and what the docs leave out.

Embed an AIOZ Stream livestream with the Share button's iframe or send the Public Playback URL as a link. Covers API fields, public access limits and doc gaps.

Learn how a stream key differs from a streaming session on AIOZ Stream, what each one stores, and what to preconfigure before you go live. Docs-based guide.