AV1 Video Codec Next-Generation Standard | Royalty-Free, SVT-AV1, FFmpeg Practice
이 글의 핵심
AV1 is a next-generation codec aiming for royalty-free, growing share in web and OTT, with encoder selection (SVT-AV1, libaom) determining speed and quality.
Introduction
AV1 (AOMedia Video 1) is an open video codec aiming for royalty-free developed by Alliance for Open Media (AOMedia). Inheriting and advancing technical elements from VP9, Thor, Daala, etc., platforms seeking to reduce patent royalty burden in streaming, web, and cloud have adopted it first.
As of 2026, YouTube’s high-efficiency option, hardware decoding in some browsers and OS, and AV1 decoder integration in mobile SoC have expanded. However, encoding cost is still a design point. This guide understands AV1 structure and connects to commands you can immediately experiment with in FFmpeg.
After Reading This
- Explain major changes of AV1 vs VP9 (e.g., partition, filter, tile)
- Grasp speed, quality, and distribution perspective when selecting libaom, SVT-AV1, rav1e
- Learn patterns to adjust quality and speed with CRF, cpu-used, tile, etc.
- Organize support status and risks in browsers, OTT, and mobile
Table of Contents
- Codec Overview
- Compression Principles
- Practical Encoding
- Performance Comparison
- Real-World Use Cases
- Optimization Tips
- Common Issues and Solutions
- Conclusion
Codec Overview
History and Development Background
AV1 was released by AOMedia in 2018 as AV1 Spec 1.0.0, and filters, tiling, and experimental extensions have been upgraded through versions. Mozilla, Google, Netflix, Amazon, Apple, Microsoft, and many companies participated, with open licensing targeting web media and OTT as core message.
Technical Features
- Superblock partitioning: Starts from large blocks up to 128×128 and subdivides into various partitions.
- Enhanced intra/inter prediction: Reduces bits in textures and boundaries with directional prediction, composite warp (chroma from luma, etc., depending on implementation).
- Adaptive loop filter: CDEF, etc., loop restoration filters aim for blockiness reduction (by encoder and profile).
- Tiles and subframes: Advantageous for parallel encoding/decoding and low-latency design.
Major Profiles and Levels
AV1 defines bitstream constraints with profiles (Main, etc.) and levels/tiers. In practice, often receive “which browser/device supports which profile” as product requirements document.
Compression Principles
Intra / Inter Prediction
- Intra: Reduces I-frame size with various directional modes and color prediction (advantageous for scene changes).
- Inter: Includes elements handling complex motion with composite warp, overlapped block, etc. (depending on encoder implementation level).
Transform & Quantization
Compresses frequency coefficients with larger transform blocks and adaptive quantization. Understanding perceptual-based tools like film grain synthesis that try to replace coarse texture with model at low bitrate (needs content and player support) simplifies collaboration.
Entropy Coding
Contains coefficient and mode information in bitstream with adaptive entropy coding. AV1 has more tools than VP9, so decoder complexity also increases.
Compression Pipeline Diagram
flowchart LR
subgraph src [Source]
P[Frame Pixels]
end
subgraph split [Partitioning]
SB[Superblock]
PART[Partition Tree]
end
subgraph pred2 [Prediction & Residual]
IP[Intra/Inter]
RES[Residual]
end
subgraph comp [Compression]
TQ2[Transform & Quantize]
ENT[Entropy Coding]
end
subgraph out [Output]
OBU[AV1 OBU Bitstream]
end
P --> SB
SB --> PART
PART --> IP
IP --> RES
RES --> TQ2
TQ2 --> ENT
ENT --> OBU
Practical Encoding
libaom-based: libaom-av1 (When Included in FFmpeg)
ffmpeg -i input.mov -c:v libaom-av1 -crf 30 -b:v 0 -cpu-used 4 \
-pix_fmt yuv420p -c:a libopus -b:a 128k output.mkv
-cpu-used: Main lever adjusting speed vs quality in libaom family (check range by version).-crf:-b:v 0combination is common in target quality mode.
SVT-AV1 (Strong in Speed and Scalability)
ffmpeg -i input.mov -c:v libsvtav1 -crf 28 -preset 6 -pix_fmt yuv420p \
-c:a libopus -b:a 128k output.mkv
-preset number meaning may vary by SVT-AV1 version, check with ffmpeg -h encoder=libsvtav1.
2-pass VBR (Target Bitrate)
# Pass 1
ffmpeg -i input.mov -c:v libsvtav1 -b:v 3M -maxrate 3.5M -bufsize 6M \
-pass 1 -an -f matroska /dev/null
# Pass 2
ffmpeg -i input.mov -c:v libsvtav1 -b:v 3M -maxrate 3.5M -bufsize 6M \
-pass 2 -c:a libopus -b:a 128k output.mkv
On Windows, use NUL instead of /dev/null.
rav1e (Rust Encoder, When Integrated with FFmpeg)
When librav1e is included in distribution:
ffmpeg -i input.mov -c:v librav1e -qp 80 -speed 6 -pix_fmt yuv420p \
-c:a libopus -b:a 128k output.mkv
QP and speed meanings vary by rav1e version.
Parameter Tuning Guide
| Goal | Approach |
|---|---|
| Highest quality (offline) | Slow preset / low cpu-used / multi-pass |
| Bulk batch | SVT-AV1 + appropriate preset, parallelize with tiles |
| Low latency | Limit tile count, GOP, B-frames (option names differ by encoder) |
Quality vs Speed Tradeoff
- AV1 is “efficiency jumps when run slowly” type, so drawing preset curve with 30-second test clip first is cost-efficient.
- Same CRF number has different meaning per encoder. Safe to fix with VMAF and visual comparison.
Performance Comparison
Compression Ratio vs Other Codecs
At same viewing conditions, AV1 has similar or better bit efficiency than HEVC in many cases (depends on content, encoder, settings). Vs H.264 has large bandwidth reduction.
Encoding and Decoding Speed
- Encoding: Early libaom generations were very slow, and SVT-AV1 and HW encoders changed practical feel.
- Decoding: Modern GPU and mobile SoC have increased AV1 HW decoding, but old laptops may have increased battery consumption with CPU software decoding.
Hardware Acceleration Support
- Intel: Latest generation expanding models with AV1 decoding (and some encoding) support
- NVIDIA: RTX 40 series, etc., GPUs supporting AV1 encoding
- AMD, Apple, etc., also have different AV1 acceleration support ranges by generation
Whether av1_nvenc, etc., usable in FFmpeg depends on build options and drivers.
Real-World Use Cases
Streaming Services (YouTube, Netflix, etc.)
- YouTube re-encodes uploaded files and often provides AV1 transcoding (UI display varies by account, region, content).
- Global OTT like Netflix have publicly disclosed cases of A/B deploying AV1 matching bandwidth reduction and device cap.
Mobile Apps
- Latest Android and iOS have increasing devices with AV1 decoding in hardware. Design codec fallback based on app minimum supported OS.
Web Browser Support
- Chrome, Firefox, Edge, etc., widely support AV1 decoding. Safari also has improved AV1 path by version, OS, and hardware. For live service, safe to check with caniuse and field data.
Web Video Playback
<!-- AV1 with H.264 fallback -->
<video controls>
<source src="video.av1.mp4" type='video/mp4; codecs="av01.0.08M.08"'>
<source src="video.h264.mp4" type="video/mp4">
</video>
Optimization Tips
Reduce File Size While Maintaining Quality
- Source noise: Excessive noise consumes bits. Match film grain with grain tool policy.
- Resolution: When distributing 4K source down to 1080p, bits vs VMAF differ greatly.
Improve Encoding Speed
- Starting with SVT-AV1 and adjusting only preset if quality is insufficient is advantageous for repeated experiments.
- Multi-instance: Reduce total processing time with clip-level parallelization.
Batch Processing Automation
#!/usr/bin/env bash
set -euo pipefail
mkdir -p av1_out
for f in *.mp4; do
ffmpeg -y -i "$f" -c:v libsvtav1 -crf 30 -preset 8 -pix_fmt yuv420p \
-c:a libopus -b:a 96k "av1_out/${f%.mp4}.mkv"
done
Advanced Encoding Options
# High quality offline encode
ffmpeg -i input.mov -c:v libaom-av1 -crf 25 -b:v 0 -cpu-used 2 \
-pix_fmt yuv420p -row-mt 1 -tiles 2x2 \
-c:a libopus -b:a 128k output.mkv
# Fast encode for testing
ffmpeg -i input.mov -c:v libsvtav1 -crf 35 -preset 10 -pix_fmt yuv420p \
-c:a libopus -b:a 96k output.mkv
# 10-bit encoding
ffmpeg -i input.mov -c:v libsvtav1 -crf 28 -preset 6 -pix_fmt yuv420p10le \
-c:a libopus -b:a 128k output.mkv
Common Issues and Solutions
Compatibility Issues
- “Plays but stutters”: May be CPU decoding bottleneck on old PC. Lower resolution and bitrate or provide H.264 fallback.
- Container: Codec tags and metadata compatibility differs by MP4 vs MKV vs WebM. Match distribution channel specs.
# AV1 in MP4 container
ffmpeg -i input.mov -c:v libsvtav1 -crf 30 -preset 6 -pix_fmt yuv420p \
-c:a aac -b:a 128k -movflags +faststart output.mp4
# AV1 in WebM container
ffmpeg -i input.mov -c:v libsvtav1 -crf 30 -preset 6 -pix_fmt yuv420p \
-c:a libopus -b:a 128k output.webm
Quality Degradation Issues
- Only increasing fast preset brings texture collapse. Compare encoding time at same VMAF.
- 10-bit and HDR: Changing source SDR to 10-bit alone does not make HDR.
# Balance quality and speed
ffmpeg -i input.mov -c:v libsvtav1 -crf 28 -preset 6 -pix_fmt yuv420p \
-svtav1-params "tune=0" -c:a libopus -b:a 128k output.mkv
Licensing Considerations
- AV1 was designed with licensing aiming for royalty-free, but review process may be needed depending on organizational legal and patent policy. Encoder binary distribution and service provision are separate tasks.
Encoding Performance Issues
# Check encoder capabilities
ffmpeg -h encoder=libsvtav1
ffmpeg -h encoder=libaom-av1
# Monitor encoding progress
ffmpeg -i input.mov -c:v libsvtav1 -crf 30 -preset 6 -progress - -nostats output.mkv
Conclusion
Key Summary
- AV1 has grown in web and OTT thanks to bandwidth efficiency and open licensing direction.
- Encoder selection (SVT-AV1 vs libaom vs rav1e) and preset, CRF, tile determine cost and quality.
- If there are old devices or real-time constraints, multi-codec with H.264/HEVC is still needed.
Recommended Use Scenarios
- VOD sensitive to bandwidth cost, own platform seeking to simplify royalty structure, service focused on modern devices — AV1 is a strong option. For compatibility baseline see H.264 Guide, for 4K and HDR storage efficiency compare and decide together with HEVC Guide.
Quick Command Reference
# Standard quality (SVT-AV1)
ffmpeg -i input.mov -c:v libsvtav1 -crf 30 -preset 6 -pix_fmt yuv420p -c:a libopus -b:a 128k output.mkv
# High quality (libaom)
ffmpeg -i input.mov -c:v libaom-av1 -crf 25 -b:v 0 -cpu-used 2 -pix_fmt yuv420p -c:a libopus -b:a 128k output.mkv
# Fast encode for testing
ffmpeg -i input.mov -c:v libsvtav1 -crf 35 -preset 10 -pix_fmt yuv420p -c:a libopus -b:a 96k output.mkv
# 10-bit for HDR
ffmpeg -i input.mov -c:v libsvtav1 -crf 28 -preset 6 -pix_fmt yuv420p10le -c:a libopus -b:a 128k output.mkv
Related Posts
- H.264 (AVC) Complete Guide
- HEVC (H.265) Practical Guide
- H.264 vs HEVC vs AV1 Comparison
Keywords
AV1, Video Codec, Royalty-Free, VP9, FFmpeg, SVT-AV1, libaom, Streaming, Compression Efficiency, OBU, Tiles, CDEF, Web Video