FFmpeg AV1 Encoding: SVT-AV1 vs libaom-av1 Guide

AV1 delivers 30-50% better compression than H.264 at the same visual quality. But if you've tried encoding with libaom-av1, you already know the problem: a single 1080p minute can take over an hour. SVT-AV1 (libsvtav1) solves this with multi-threaded encoding that runs 10-50x faster while producing nearly identical quality.
This guide covers the practical tradeoffs between the two AV1 encoders in FFmpeg, recommended CRF settings, and how to encode AV1 without installing anything locally.
Quick Answer
For most production AV1 encoding, use SVT-AV1 at preset 6 with CRF 30:
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 6 -pix_fmt yuv420p10le -c:a libopus -b:a 128k output.mp4
This produces a 10-bit AV1 stream in an MP4 container with Opus audio. It works in Chrome, Firefox, Safari, and Edge without any plugin or polyfill.
What Makes AV1 Different
AV1 is a royalty-free video codec developed by the Alliance for Open Media (AOMedia), which includes Google, Apple, Microsoft, Netflix, and Meta. Unlike H.265/HEVC, which carries licensing fees, AV1 is free to use in any product or service.
The compression gains are significant. AV1 achieves roughly 30% better compression than H.265 and 50% better than H.264 at equivalent visual quality. For a 10 Mbps H.264 stream, you can expect similar quality from AV1 at around 5 Mbps. That directly cuts bandwidth costs and improves playback on slower connections.
Browser support is no longer a blocker. As of 2026, AV1 hardware decoding ships in Apple's M-series chips, Intel 12th-gen and newer, AMD RDNA 3+, and all major mobile SoCs. Every modern browser supports AV1 playback natively.
SVT-AV1 vs libaom-av1
Both encoders produce valid AV1 bitstreams, but they target very different workflows.
| Feature | SVT-AV1 (`libsvtav1`) | libaom-av1 |
|---|---|---|
| Speed | 10-50x faster than libaom | Extremely slow, single-digit fps at high quality |
| Quality at same CRF | Slightly lower at very low CRF (<20) | Marginal edge in slow, exhaustive search |
| Multi-threading | Native, scales to 16+ cores | Limited, mostly single-threaded |
| Use case | Production encoding, batch processing | Research, reference quality comparisons |
| Recommended for production | Yes | No |
SVT-AV1 is the default AV1 encoder for production use. Netflix, YouTube, and most major streaming platforms use SVT-AV1 in their encoding pipelines. Use libaom-av1 only if you need reference-grade encodes and have unlimited time.
The Basic SVT-AV1 Command
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 6 -pix_fmt yuv420p10le output.mp4
Breaking down each flag:
-c:v libsvtav1selects the SVT-AV1 encoder. Your FFmpeg build must include--enable-libsvtav1. Runffmpeg -encoders | grep svtto check.-crf 30sets the Constant Rate Factor. Lower values mean higher quality and larger files. AV1 CRF values don't map 1:1 to H.264 CRF values. A CRF 30 in AV1 looks roughly equivalent to CRF 23 in x264.-preset 6controls the speed/compression tradeoff. Ranges from 0 (slowest, best compression) to 13 (fastest, worst compression). Preset 6 is the widely recommended default.-pix_fmt yuv420p10leenables 10-bit color depth. AV1 encodes more efficiently in 10-bit even for 8-bit source material because it reduces banding artifacts and improves compression.
For additional tuning, pass encoder-specific parameters with -svtav1-params:
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 28 -preset 6 \
-svtav1-params tune=0:film-grain=8 -pix_fmt yuv420p10le output.mp4
The film-grain parameter (0-50) synthesizes grain at decode time instead of wasting bits encoding it. Useful for cinematic or grainy source material.
CRF Values by Use Case
| Use Case | CRF Range | Relative File Size | Notes |
|---|---|---|---|
| Archival / master | 20-25 | Large | Visually lossless for most content |
| Web delivery / streaming | 28-35 | Medium | CRF 30 is a strong default for 1080p |
| Social media / previews | 35-40 | Small | Noticeable quality loss on detailed scenes |
Start at CRF 30 and adjust by 2-3 points based on your content. Screen recordings and animation compress better (higher CRF). Fast-motion sports and concerts need lower CRF.
Preset Speed vs Compression
| Preset | Relative Speed | Compression Efficiency | Best For |
|---|---|---|---|
| 4 | Slow | Excellent | Final delivery where encode time isn't critical |
| 5 | Moderate | Very good | Overnight batch jobs |
| 6 | Good balance | Good | General production use (recommended) |
| 7 | Fast | Fair | Quick previews, iterative testing |
| 8 | Very fast | Lower | Draft encodes, rapid prototyping |
Preset 6 offers the best tradeoff between speed and output quality. Going below preset 4 yields diminishing returns for most content. Going above preset 8 drops compression efficiency enough to negate AV1's advantage over H.265.
Encoding AV1 with the FFmpeg Micro API
Skip the local FFmpeg build entirely. The FFmpeg Micro API handles AV1 encoding in the cloud with SVT-AV1 pre-configured:
curl -X POST https://api.ffmpeg-micro.com/v1/transcodes \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputs": [{"url": "https://storage.example.com/raw/video.mp4"}],
"outputFormat": "mp4",
"options": [
{"option": "-c:v", "argument": "libsvtav1"},
{"option": "-crf", "argument": "30"},
{"option": "-preset", "argument": "6"},
{"option": "-pix_fmt", "argument": "yuv420p10le"}
]
}'
The API returns a job ID and status immediately:
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "queued",
"billable_minutes": 2
}
No codec compilation, no dependency management, no server provisioning. Point it at a source URL and get AV1 output in MP4.
Common Pitfalls
Using libaom-av1 for batch encoding. A five-minute 1080p clip can take 2+ hours with libaom at default settings. Switch to libsvtav1 unless you have a specific reason to use the reference encoder.
Forgetting 10-bit pixel format. Omitting -pix_fmt yuv420p10le defaults to 8-bit encoding. SVT-AV1 produces better compression and fewer banding artifacts in 10-bit mode, even from 8-bit sources.
Mapping H.264 CRF values directly to AV1. CRF 23 in x264 does not equal CRF 23 in SVT-AV1. AV1 CRF scales differently. Start at CRF 30 for AV1, not CRF 23.
Using preset 0-2 expecting huge quality gains. Presets below 4 increase encode time dramatically with minimal visual improvement. The VMAF difference between preset 2 and preset 6 is typically under 1 point for most content.
FAQ
What's the difference between libsvtav1 and libaom-av1 in FFmpeg?
Both are AV1 encoders available in FFmpeg. SVT-AV1 (libsvtav1) is optimized for speed and production use with native multi-threading. libaom-av1 is the reference encoder, much slower but marginally better at exhaustive quality optimization. For any real-world encoding pipeline, SVT-AV1 is the standard choice.
What CRF should I use for AV1 web video?
CRF 28-32 works well for web delivery at 1080p. CRF 30 with preset 6 is the most common starting point. Adjust down (better quality) for high-motion content or up (smaller files) for talking-head or screencast material.
Can I put AV1 video in an MP4 container?
Yes. AV1 in MP4 is supported by Chrome, Firefox, Safari, and Edge. The MP4 container with AV1 video and AAC or Opus audio plays natively in all modern browsers without additional plugins.
Is AV1 encoding too slow for production?
Not with SVT-AV1. At preset 6, SVT-AV1 encodes 1080p content at 30-60+ fps on modern multi-core CPUs. That's fast enough for real-time or near-real-time workflows. The "AV1 is too slow" reputation comes from libaom, which is 10-50x slower.
Do I need hardware AV1 support for playback?
Software decoding works on any modern device, but hardware decoding significantly reduces battery and CPU usage. Intel 12th-gen+, Apple M1+, AMD RDNA 3+, and recent Qualcomm Snapdragon chips all include AV1 hardware decoders.
*Last verified: July 2026*
About Javid Jamae
Founder & CEO at FFmpeg Micro
Javid is a software engineer, author, and entrepreneur with over 25 years of professional software development experience across enterprise, startup, and consulting environments. He founded FFmpeg Micro to make video processing accessible to developers through a simple, automation-first REST API.
You might also like

How to Encode Video with H.264 (libx264) Using FFmpeg
Learn the right CRF and preset values for FFmpeg libx264 encoding. Includes a decision table, common pitfalls, and how to run H.264 encodes via API.

Cut Video File Size 50% with FFmpeg H.265 (CRF Guide)
Compress H.265 videos 2x smaller without quality loss. Complete CRF and preset settings for FFmpeg libx265, with commands for 480p to 4K.

How to Encode VP9 Video with FFmpeg: libvpx-vp9 CRF, Bitrate, and Quality Guide
Learn the right CRF and speed settings for FFmpeg VP9 (libvpx-vp9) encoding. Includes 2-pass, multithreading, and how to encode VP9 via API.
Ready to process videos at scale?
Start using FFmpeg Micro's simple API today. No infrastructure required.
Get Started Free