C.W.K.
Stream
Lesson 03 of 10 · published

AV1 (libsvtav1) — The Royalty-Free Future

~12 min · av1, libsvtav1, streaming

Level 0Viewer
0 XP0/73 lessons0/15 achievements
0/100 XP to next level100 XP to go0% complete

The next-generation codec

AV1 is the open, royalty-free codec from the Alliance for Open Media (Google, Netflix, Amazon, Apple, Microsoft, Mozilla, …). It hits ~30% smaller files than HEVC at the same quality, has full Web support (Chrome, Firefox, Safari, Edge), and YouTube/Netflix/Vimeo all stream it.

FFmpeg ships three AV1 encoders. Use libsvtav1 — it's 5–20x faster than the original libaom-av1 with similar quality. libaom-av1 is for research/reference. librav1e exists but is less mature.

SVT-AV1 knobs

CRF 25–35 is the daily range (lower = bigger/better). Preset 0 is slow-archival, 13 is fast-realtime. Preset 6 is the practical sweet spot in 2026. SVT-AV1 doesn't honor every libx264 flag (no -tune, different keyframe controls).

When to actually pick AV1

Long-term archival where you'll be storing for years. Streaming where bandwidth costs money. Not for one-off uploads to YouTube, where YouTube transcodes whatever you give it back to AV1 anyway.

Code

SVT-AV1 recipes·bash
# Daily AV1 — small file, modern web browsers play it
ffmpeg -i in.mp4 \
  -c:v libsvtav1 -crf 30 -preset 6 \
  -pix_fmt yuv420p \
  -c:a libopus -b:a 128k \
  -movflags +faststart \
  out_av1.mp4

# Higher quality, slower (great for archival)
ffmpeg -i in.mp4 \
  -c:v libsvtav1 -crf 25 -preset 4 \
  -pix_fmt yuv420p10le \
  -c:a libopus -b:a 192k \
  out_av1_hq.mp4

# Streaming (constrained bitrate)
ffmpeg -i in.mp4 \
  -c:v libsvtav1 -b:v 2M -preset 8 \
  -c:a libopus -b:a 96k \
  out_av1_stream.mp4
Container choice for AV1·bash
# MP4 is fine for AV1 (modern muxer supports it)
ffmpeg -i in.mp4 -c:v libsvtav1 -crf 30 -preset 6 -c:a libopus out.mp4

# WebM is more 'native' to AV1 + Opus — slightly smaller container overhead
ffmpeg -i in.mp4 -c:v libsvtav1 -crf 30 -preset 6 -c:a libopus out.webm

# MKV holds anything (use when archiving and don't care about playback target)
ffmpeg -i in.mp4 -c:v libsvtav1 -crf 30 -preset 6 -c:a libopus out.mkv

External links

Exercise

Encode the same 60-second clip with: libx264 -crf 20 -preset slow, libx265 -crf 26 -preset slow, libsvtav1 -crf 30 -preset 6. Note file size and encode time. Then encode again at preset 4 for SVT-AV1 and notice the slowdown. Open all four in your browser of choice — which play?

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.