AV1 は H.265 よりさらに小さいファイルサイズを狙えるロイヤリティフリーのコーデックです。FFmpeg で使う主なエンコーダは libsvtav1(高速)と libaom-av1(リファレンス実装。とても遅い)です。

AV1 とは何か

AV1(AOMedia Video 1)は、Alliance for Open Mediaが開発したオープンかつロイヤリティフリーの動画コーデックです。

コーデック 相対ファイルサイズ エンコード速度 ブラウザ対応
H.264 (libx264) 100%(基準) 高速 ほぼ全対応
H.265 (libx265) 約65〜85% 中速 Safari。Chrome・Edge・Firefox は OS とハードウェアによる
AV1 (libsvtav1) 約28〜57% 中速 Chrome, Firefox, Edge
AV1 (libaom-av1) — 低速 Chrome, Firefox, Edge

サイズは、libx264 と同じ VMAF にそろえたときの大きさです。FFmpeg 8.1 で、10 秒の 1080p クリップ 2 本(Big Buck Bunny と Tears of Steel、© Blender Foundation、CC BY 3.0)を使って測りました(libx264・libx265 は -preset medium、libsvtav1 は -preset 6)。

同じ画質で比べると、libsvtav1 のファイルは H.264 の大きさの、アニメのクリップで28〜35%、実写のクリップで41〜57%でした。YouTube・Netflix・Twitchなど大手プラットフォームがAV1配信を採用しています。

エンコーダーの確認

まず利用可能なAV1エンコーダーを確認します。

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

一覧はビルドによって違います。FFmpeg 8.1(gyan.dev の Windows 版)では次のように出ます。

 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 は、音声エンコーダの wmav1 にも一致します。av1_nvenc などのハードウェアエンコーダは、対応する GPU がなくても一覧に出ます。

libsvtav1 が表示されない場合は、FFmpegをlibsvtav1サポート付きでビルドするか、パッケージマネージャで最新版をインストールしてください。

libsvtav1 — 高速AV1エンコード(推奨)

基本コマンド(CRFモード)

ffmpeg -i input.mp4 -c:v libsvtav1 -crf 35 -preset 6 -c:a libopus -b:a 128k output.webm
パラメータ 説明
-c:v libsvtav1 SVT-AV1エンコーダーを使用
-crf 35 品質固定モード(低いほど高品質、1〜63。0 を指定すると既定値の 35 になる)
-preset 6 エンコード速度(0=遅い高品質〜13=高速低品質)
-c:a libopus Opusオーディオ(AV1+WebMの組み合わせに最適)

CRF値の目安(libsvtav1)

CRF 値が低いほど高画質で、ファイルは大きくなります。上の 2 本のテストクリップでの VMAF(アニメ / 実写、-preset 6)は次のとおりです。同じクリップを libx264 の既定値の CRF 23 でエンコードすると、93.29 / 94.87 でした。

CRF値 VMAF 用途
30 95.40 / 95.49 高画質、マスターとして残す
35 94.63 / 94.13 普段使い(libx264 の既定値に近い画質)
45 92.73 / 90.45 Web配信、プレビュー
55 89.33 / 85.14 容量制限が厳しい場合

presetの選択

# 品質重視(時間がかかる)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 2 -c:a libopus -b:a 128k output.webm

# バランス(デフォルト推奨)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 6 -c:a libopus -b:a 128k output.webm

# 速度重視(リアルタイム処理向け)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 10 -c:a libopus -b:a 128k output.webm

MP4コンテナに出力する場合

WebMではなくMP4コンテナにも出力できます。

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

AV1 を再生できるブラウザは、WebM だけでなく MP4 に入れた AV1 も再生できます(MDN)。

libaom-av1 — リファレンスエンコーダー

libaom-av1 は、Alliance for Open Media による AV1 のリファレンスエンコーダーです。libsvtav1 よりはるかに遅いです。

基本コマンド(CRFモード)

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

libaom-av1 は -crf だけで品質固定モードになるので、-b:v 0 は付けなくてもかまいません(付けても結果は同じです)。

マルチスレッド設定

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
オプション 説明
-row-mt 1 行単位のマルチスレッドを有効化
-tiles 2x2 タイル分割でエンコード並列化

2passエンコード(ビットレート指定)

配信ビットレートが決まっている場合は2passエンコードを使用します。

libsvtav1 での2pass

# 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 での2pass

# 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

解像度・プラットフォーム別の推奨設定

YouTube 向け(AV1)

YouTube は AV1 をサポートしています。

# 1080p / YouTube 向け
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 配信向け(軽量)

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

コーデック比較

同じ素材を異なるコーデックでエンコードして比較します。

# H.264 (参照)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow -c:a aac -b:a 128k out_h264.mp4

# H.265
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset slow -c:a aac -b:a 128k out_h265.mp4

# AV1 (SVT-AV1)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 35 -preset 6 -c:a libopus -b:a 128k out_av1.webm

同じ画質でのファイルサイズの差は、冒頭の表を見てください。

ブラウザ対応状況

ブラウザ AV1対応
Chrome 70+ ✅
Firefox 67+ ✅
Edge 121+ ✅
Safari 17+(macOS) △(M3 以降の Mac など、AV1 のハードウェアデコードに対応した機種のみ)
iOS Safari 17+ △(iPhone 15 Pro 以降など、対応チップの機種のみ)

iOSを含めた完全対応が必要な場合はH.264も用意しておくことを推奨します。

トラブルシューティング

libsvtav1 が見つからない

Unknown encoder 'libsvtav1'

対処法: パッケージマネージャで最新のFFmpegをインストールします。

# macOS (Homebrew)
brew install ffmpeg

# Ubuntu/Debian
sudo apt install ffmpeg

# Windows: winget で gyan.dev の配布ビルドを入れる
winget install ffmpeg

エンコードが非常に遅い

libaom-av1を使用している場合は、libsvtav1 に切り替えるとずっと速くなります。

# NG: libaom-av1は遅い
ffmpeg -i input.mp4 -c:v libaom-av1 -crf 30 -b:v 0 output.webm

# OK: libsvtav1を使用
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 35 -preset 6 output.webm

音声が出ない・コンテナエラー

WebMコンテナではVorbis/Opusのみ使用可能です。AACは使用できません。

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

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

関連記事

よくある質問

libaom-av1・SVT-AV1・rav1e、どれを選ぶ?

ふだんは SVT-AV1(libsvtav1)で十分です。3つの中で一番速いエンコーダーです。libaom-av1 はリファレンス実装で、はるかに遅くなります。rav1e(librav1e)は Rust で書かれたエンコーダーで、これも SVT-AV1 よりずっと遅いです。

YouTube 品質の 1080p を出す CRF は?

SVT-AV1 で CRF 32〜35、preset 8 から始めます。アニメは CRF を 2〜3 下げ、ノイズの多い実写は少し上げます。

AV1 ファイルが巨大になる

デフォルトの preset 8 は速度優先です。冒頭の表と同じ 2 本のクリップを CRF 35 で比べると、preset 4〜6 のファイルは preset 8 より 9〜27% 小さく、エンコード時間は 1.6〜4 倍でした。

Safari や古い iPhone で再生できる?

Safari 17+ が AV1 を再生できるのは、AV1 のハードウェアデコーダを持つ機種(M3 以降の Mac、iPhone 15 Pro、iPhone 16 以降)だけです(MDN)。それより古い Apple 端末の Safari では AV1 を再生できないので、H.264 版も併せて用意してください。

AV1 で 2-pass はできる?

libaom は -pass 1/2 で 2-pass に対応しています。SVT-AV1 では最近は 2-pass より CRF(固定品質)が推奨されており、両者の画質差はわずかです。