How the ladder is generated
Every rung in an ABR ladder is a resolution-and-bitrate pair sized to be roughly 1.5-2× the bandwidth of the rung below it - the spacing Apple's HLS Authoring Specification for Apple Devices recommends so a player always has a usable rung as a viewer's bandwidth halves or doubles. Each rung's bitrate is computed from the same pixel-rate formula used by the bitrate calculator, then scaled by codec efficiency and content complexity:
rung_kbps = (width × height × fps × bits_per_pixel) × complexity_factor × hdr_factor
The top rung is capped at the source resolution (no upscaling), the bottom rung is floored at 200 kbps audio + 250 kbps video so it remains playable on a 2G/edge link, and every rung shares a single audio track at the bitrate selected above.
Recommended 1080p H.264 SDR ladder (Apple baseline)
| # | Resolution | Bitrate (kbps) | Codec string |
|---|---|---|---|
| 1 | 416 × 234 | 145 | avc1.42c00d |
| 2 | 640 × 360 | 365 | avc1.42c01e |
| 3 | 768 × 432 | 730 | avc1.4d401e |
| 4 | 960 × 540 | 2000 | avc1.4d401f |
| 5 | 1280 × 720 | 3500 | avc1.640020 |
| 6 | 1920 × 1080 | 6000 | avc1.640028 |
Frequently Asked Questions
How many renditions do I need in an ABR ladder?
Most CTV ladders use 5 to 7 renditions spanning roughly 400 kbps up to the source resolution. Apple's HLS authoring spec recommends spacing rungs about 1.5-2× apart so the player has a usable rung every doubling of bandwidth.
What is a good 1080p ABR ladder?
A common 1080p H.264 ladder is: 270p/400k, 360p/700k, 480p/1.2M, 720p/2.5M, 720p/4M, 1080p/6M. With HEVC, halve every bitrate.
What is the difference between an HLS ladder and a DASH ladder?
The ladder concept - resolution and bitrate pairs - is identical. HLS describes each rung as an EXT-X-STREAM-INF entry in a master playlist; DASH describes each rung as a Representation inside an AdaptationSet in an MPD. With CMAF you package once and reference the same segments from both manifests.
Should I cap the top rung at the source resolution?
Yes. Upscaling above the source wastes bandwidth without adding detail. A 720p source should top out at 720p; only encode 1080p or 4K rungs if your master is actually that size.