Choose codecs in tiers (H.264 reach floor + HEVC/AV1/VP9 efficiency), design the ABR ladder per-title from content complexity rather than a fixed table, build the FFmpeg pipeline for the quality/throughput/cost triangle (CRF vs 2-pass, GPU vs CPU, chunked parallel, GOP/segment alignment), and package once to CMAF/fMP4 with captions and loudness-normalized audio. Codec/flag/bitrate specifics verify-at-use.
Scanned 9/23/2026
npx -y skills add mcorbett51090/RavenClaude --skill transcoding-and-abr-ladder --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Transcoding And Abr Ladder?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/mcorbett51090-transcoding-and-abr-ladder)More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.
---
name: transcoding-and-abr-ladder
description: "Choose codecs in tiers (H.264 reach floor + HEVC/AV1/VP9 efficiency), design the ABR ladder per-title from content complexity rather than a fixed table, build the FFmpeg pipeline for the quality/throughput/cost triangle (CRF vs 2-pass, GPU vs CPU, chunked parallel, GOP/segment alignment), and package once to CMAF/fMP4 with captions and loudness-normalized audio. Codec/flag/bitrate specifics verify-at-use."
---
# Transcoding & ABR Ladder
The discipline of turning source into the smallest set of renditions that reach every device at the promised quality, for a defensible cost. Encoding is where bitrate efficiency and quality are won or lost.
> **Engineering judgment.** Codec capabilities, encoder flags, and hardware support move with library and hardware versions — every codec claim, FFmpeg flag, and per-tier bitrate here is `[verify-at-use]`. No PII.
## Workflow
1. **Choose codecs in tiers.** H.264/AVC as the universal reach floor; HEVC and AV1 (VP9 where relevant) as efficiency tiers for capable devices at higher encode cost. Serve reach *and* save egress.
2. **Design the ladder per-title.** Analyze content complexity and set resolutions/bitrates the content needs — a talking-head and a sports clip do not deserve the same ladder. Cap the top by realistic screens and bandwidth.
3. **Build the FFmpeg pipeline for the triangle.** CRF/constrained-VBR vs 2-pass, preset, GOP/segment-aligned keyframes across renditions (clean ABR switching), and chunked parallel encoding for throughput. Name the quality/throughput/cost trade.
4. **Decide GPU vs CPU per tier.** Hardware (NVENC/QSV/VAAPI) is fast/cheap per stream at some quality cost; CPU (x264/x265/libaom/SVT-AV1) gives best quality-per-bit at higher cost. Match to the tier and farm economics.
5. **Package once and finish the tracks.** CMAF/fMP4 fragments serving HLS + DASH, correct segment/GOP alignment, captions (WebVTT, CEA-608/708), audio (AAC for reach, Opus where supported) with loudness normalization, and thumbnails/sprites for scrubbing.
## Metrics table
| Metric | Target/read | Flag |
|---|---|---|
| Bitrate per rendition vs quality (VMAF/PSNR) | Content-justified, not table-copied | `[verify-at-use]` |
| Encode throughput (x realtime) | Meets farm SLA | `[verify-at-use]` |
| Encode cost per hour of content | Within budget | `[ESTIMATE]` |
| GOP/segment alignment across ladder | Aligned for clean ABR switching | must-hold |
| Audio loudness (target LUFS) | Normalized to target | `[verify-at-use]` |
## Anti-patterns
- Copying a fixed bitrate ladder instead of encoding per-title.
- Picking one codec and either starving reach or overpaying egress.
- Misaligned keyframes across renditions — ABR switching stutters.
- Encoding twice to feed HLS and DASH separately instead of CMAF once.
- Forgetting captions/audio/thumbnails until QA finds them missing.
## See also
- Traverse the **codec choice** tree in [`../../knowledge/streaming-decision-trees.md`](../../knowledge/streaming-decision-trees.md).
- Dated codec/encoder/bitrate landscape: [`../../knowledge/streaming-reference-2026.md`](../../knowledge/streaming-reference-2026.md).
- Sibling skills: [`../streaming-architecture-and-protocol-selection/SKILL.md`](../streaming-architecture-and-protocol-selection/SKILL.md), [`../playback-qoe-and-delivery/SKILL.md`](../playback-qoe-and-delivery/SKILL.md).
- Best practices: [`../../best-practices/design-the-abr-ladder-per-title-not-fixed.md`](../../best-practices/design-the-abr-ladder-per-title-not-fixed.md), [`../../best-practices/test-across-devices-and-network-conditions.md`](../../best-practices/test-across-devices-and-network-conditions.md).
- Template: [`../../templates/abr-ladder-plan.md`](../../templates/abr-ladder-plan.md).
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!