What is AV1?

AV1 (AOMedia Video 1) is an open, royalty-free video codec developed by the Alliance for Open Media.

Codec Relative File Size Encoding Speed Browser Support
H.264 (libx264) 100% (baseline) Fast Nearly universal
H.265 (libx265) ~65–85% Medium Safari; Chrome, Edge and Firefox depending on OS and hardware
AV1 (libsvtav1) ~28–57% Medium Chrome, Firefox, Edge
AV1 (libaom-av1) — Slow Chrome, Firefox, Edge

Sizes are at the same VMAF score as libx264, measured with FFmpeg 8.1 on two 10-second 1080p clips (Big Buck Bunny and Tears of Steel, © Blender Foundation, CC BY 3.0); libx264 and libx265 used -preset medium, libsvtav1 -preset 6.

At the same quality, the libsvtav1 files were 28–35% of the H.264 size for the animated clip and 41–57% for the live-action clip. YouTube, Netflix and Twitch are rolling out AV1.

Check Available Encoders

ffmpeg -encoders 2>/dev/null | grep av1

The list depends on your build. FFmpeg 8.1 from gyan.dev (Windows) prints:

 V....D libaom-av1           libaom AV1 (codec av1)
 V....D librav1e             librav1e AV1 (codec av1)
 V..... libsvtav1            SVT-AV1(Scalable Video Technology for AV1) encoder (codec av1)
 V....D av1_d3d12va          D3D12VA av1 encoder (codec av1)
 V....D av1_nvenc            NVIDIA NVENC av1 encoder (codec av1)
 V..... av1_qsv              AV1 (Intel Quick Sync Video acceleration) (codec av1)
 V....D av1_amf              AMD AMF AV1 encoder (codec av1)
 V....D av1_mf               AV1 via MediaFoundation (codec av1)
 V....D av1_vaapi            AV1 (VAAPI) (codec av1)
 V....D av1_vulkan           AV1 (Vulkan) (codec av1)
 A....D wmav1                Windows Media Audio 1

grep av1 also matches wmav1, an audio encoder. Hardware encoders such as av1_nvenc are listed even when your PC has no matching GPU.

If libsvtav1 is not in the list, install the latest FFmpeg from your package manager or the official FFmpeg website.

Basic Command (CRF mode)

ffmpeg -i input.mp4 -c:v libsvtav1 -crf 35 -preset 6 -c:a libopus -b:a 128k output.webm
Parameter Description
-c:v libsvtav1 Use the SVT-AV1 encoder
-crf 35 Constant quality (lower = better quality, range 1–63; 0 falls back to the default, 35)
-preset 6 Speed preset (0 = slow/high quality, 13 = fast/lower quality)
-c:a libopus Opus audio, the natural pair for AV1 in WebM

CRF Values (libsvtav1)

Lower values give better quality and larger files. VMAF scores on the two test clips above (animated / live action, -preset 6); libx264 at its default, CRF 23, scored 93.29 / 94.87 on the same clips:

CRF VMAF Use Case
30 95.40 / 95.49 High quality, keeping a master copy
35 94.63 / 94.13 Everyday use, close to libx264’s default
45 92.73 / 90.45 Web delivery, previews
55 89.33 / 85.14 Strict size limits

Preset Selection

# Quality-first (slower)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 2 -c:a libopus -b:a 128k output.webm

# Balanced (recommended default)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 6 -c:a libopus -b:a 128k output.webm

# Speed-first (real-time use)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 10 -c:a libopus -b:a 128k output.webm

Output to MP4 Container

ffmpeg -i input.mp4 -c:v libsvtav1 -crf 35 -preset 6 -c:a aac -b:a 128k output_av1.mp4

Browsers that play AV1 play it in MP4 as well as in WebM (MDN).

libaom-av1 — The Reference Encoder

libaom-av1 is the reference AV1 encoder from the Alliance for Open Media. It is much slower than libsvtav1.

Basic Command (CRF mode)

ffmpeg -i input.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -c:a libopus -b:a 128k output.webm

With libaom-av1, -crf on its own already selects constant-quality mode, so -b:v 0 is not required (it does no harm).

Multithreading

ffmpeg -i input.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -row-mt 1 -tiles 2x2 \
  -c:a libopus -b:a 128k output.webm

2-Pass Encoding (Bitrate Target)

Use 2-pass when you need a set file size or streaming bitrate.

libsvtav1 2-pass

# Pass 1
ffmpeg -i input.mp4 -c:v libsvtav1 -b:v 2M -preset 6 -pass 1 -an -f null /dev/null

# Pass 2
ffmpeg -i input.mp4 -c:v libsvtav1 -b:v 2M -preset 6 -pass 2 -c:a libopus -b:a 128k output.webm

libaom-av1 2-pass

# Pass 1
ffmpeg -i input.mp4 -c:v libaom-av1 -b:v 2M -pass 1 -an -f null /dev/null

# Pass 2
ffmpeg -i input.mp4 -c:v libaom-av1 -b:v 2M -pass 2 -c:a libopus -b:a 128k output.webm

Platform-Specific Settings

YouTube (AV1)

ffmpeg -i input.mp4 \
  -c:v libsvtav1 -crf 32 -preset 6 \
  -vf "scale=1920:1080:force_original_aspect_ratio=decrease,pad=1920:1080:(ow-iw)/2:(oh-ih)/2" \
  -pix_fmt yuv420p \
  -c:a libopus -b:a 256k \
  output_youtube_av1.webm

Web Delivery (Lightweight)

ffmpeg -i input.mp4 \
  -c:v libsvtav1 -crf 40 -preset 8 \
  -vf "scale=1280:720" \
  -c:a libopus -b:a 96k \
  output_web.webm

Browser Compatibility

Browser AV1 Support
Chrome 70+ ✅
Firefox 67+ ✅
Edge 121+ ✅
Safari 17+ (macOS) Partial (Macs with an AV1 hardware decoder, such as M3 and later)
iOS Safari 17+ Partial (devices with an AV1 hardware decoder, such as iPhone 15 Pro and later)

If the video must play on iPhones and iPads, also provide an H.264 version.

Troubleshooting

libsvtav1 not found

Unknown encoder 'libsvtav1'

Install the latest FFmpeg:

# macOS
brew install ffmpeg

# Ubuntu/Debian
sudo apt install ffmpeg

# Windows
winget install ffmpeg

Encoding is extremely slow

Switch from libaom-av1 to libsvtav1, which is much faster:

# Slow
ffmpeg -i input.mp4 -c:v libaom-av1 -crf 30 -b:v 0 output.webm

# Fast
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 35 -preset 6 output.webm

No audio / container error

WebM takes only Vorbis or Opus audio, not AAC:

# Wrong: AAC in WebM
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 35 -c:a aac output.webm

# Correct: Opus in WebM
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 35 -c:a libopus -b:a 128k output.webm

Frequently Asked Questions

libaom-av1 vs SVT-AV1 vs rav1e — which should I pick?

SVT-AV1 (libsvtav1) is the fastest of the three and good enough for most jobs. libaom-av1 is the reference encoder and much slower. rav1e (librav1e) is written in Rust; it is also much slower than SVT-AV1.

What CRF gives YouTube-quality 1080p?

Start with SVT-AV1 at CRF 32–35 and preset 8. For animation, lower the CRF by 2–3; for very noisy footage, raise it a little.

Why is my AV1 file enormous?

The default preset, 8, puts speed before file size. At CRF 35 on the two clips above, preset 4–6 gave files 9–27% smaller than preset 8 and took 1.6–4× as long to encode.

Will AV1 play on Safari and old iPhones?

Safari 17+ plays AV1 only on devices with an AV1 hardware decoder: M3 Macs and later, the iPhone 15 Pro, and the iPhone 16 and later (MDN). On older Apple devices Safari cannot play AV1 at all, so keep an H.264 version for them.

Can I two-pass with AV1?

libaom supports two-pass with -pass 1/2. For SVT-AV1, the usual advice now is CRF (constant quality) instead, because two-pass adds very little quality.


Primary source: ffmpeg.org/ffmpeg-codecs.html#libsvtav1