AV1 は H.265 よりさらに小さいファイルサイズを狙えるロイヤリティフリーのコーデックで、対応環境も着実に広がっています。ただしエンコーダが libsvtav1(高速)と libaom-av1(高圧縮)の2系統あり、用途で選び分けるのがコツです。この記事では両者の使い分け、CRF・2パスの指定、H.264/H.265 との比較、ブラウザ対応と Web 配信向け設定までを解説します。
動作確認: FFmpeg 7.0(ubuntu-latest / GitHub Actions CI 検証済み)/対象 OS: Windows / macOS / Linux
AV1 とは何か
AV1(AOMedia Video 1)は、Alliance for Open Mediaが開発したオープンかつロイヤリティフリーの動画コーデックです。
| コーデック | 相対ファイルサイズ | エンコード速度 | ブラウザ対応 |
|---|---|---|---|
| H.264 (libx264) | 100%(基準) | 高速 | ほぼ全対応 |
| H.265 (libx265) | 約50% | 中速 | Safari, Edge |
| AV1 (libsvtav1) | 約35〜45% | 中速 | Chrome, Firefox, Edge |
| AV1 (libaom-av1) | 約30〜40% | 低速 | Chrome, Firefox, Edge |
同等画質でH.264の半分以下のファイルサイズを実現できます。YouTube・Netflix・Twitchなど大手プラットフォームがAV1配信を採用しています。
エンコーダーの確認
まず利用可能なAV1エンコーダーを確認します。
ffmpeg -encoders 2>/dev/null | grep av1
出力例:
V..... libsvtav1 SVT-AV1(Scalable Video Technology for AV1) encoder (codec av1)
V..... libaom-av1 libaom AV1 (codec av1)
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 | 品質固定モード(低いほど高品質、0〜63) |
-preset 6 | エンコード速度(0=遅い高品質〜13=高速低品質) |
-c:a libopus | Opusオーディオ(AV1+WebMの組み合わせに最適) |
CRF値の目安(libsvtav1)
| CRF値 | 品質 | 用途 |
|---|---|---|
| 20〜25 | 視覚的ロスレス級 | アーカイブ、マスター素材 |
| 28〜35 | 高品質 | 通常の配布・配信 |
| 35〜42 | 標準品質 | Web配信、プレビュー |
| 43〜55 | 低品質 | 容量制限が厳しい場合 |
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+MP4の対応状況はAV1+WebMより限定的な場合があります。
libaom-av1 — 高圧縮AV1エンコード
libaom-av1は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
典型的なファイルサイズ削減例(5分の1080p動画の場合):
- H.264: 300MB
- H.265: 160MB(約47%削減)
- AV1 (SVT): 120MB(約60%削減)
ブラウザ対応状況
| ブラウザ | AV1対応 |
|---|---|
| Chrome 70+ | ✅ |
| Firefox 67+ | ✅ |
| Edge 18+ | ✅ |
| Safari 16.4+ | ✅(macOS Ventura以降) |
| iOS Safari | ❌(2024年時点で非対応) |
iOSを含めた完全対応が必要な場合はH.264も用意しておくことを推奨します。
トラブルシューティング
libsvtav1 が見つからない
Unknown encoder 'libsvtav1'
対処法: パッケージマネージャで最新のFFmpegをインストールします。
# macOS (Homebrew)
brew install ffmpeg
# Ubuntu/Debian
sudo apt install ffmpeg
# Windows: wingetまたはFFmpeg公式サイトから最新バイナリをダウンロード
winget install ffmpeg
エンコードが非常に遅い
libaom-av1を使用している場合は libsvtav1 に切り替えると10〜50倍高速になります。
# 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
関連リソース
よく使うオプション・フィルタ・コーデック設定をまとめた PDF チートシートです。手元に置いておくと調べる時間を短縮できます。
関連記事
- 動画フォーマットを変換する
- H.265(HEVC)2-passエンコード
- YouTube投稿用の最適エンコード設定
- コーデック互換性マトリックス
動作確認: ffmpeg 7.0 / Ubuntu 24.04
一次ソース: ffmpeg.org/ffmpeg-codecs.html#libsvtav1
よくある質問
libaom-av1・SVT-AV1・rav1e、どれを選ぶ?
SVT-AV1 が一番速くて実用十分。極低ビットレートでは libaom-av1 がまだ最高画質。Pure Rust 実装が必要なら rav1e(ただし遅い)。
YouTube 品質の 1080p を出す CRF は?
SVT-AV1 で CRF 32〜35 + preset 8 が出発点。アニメは CRF を 2〜3 下げる、ノイズの多い実写は少し上げる。
AV1 ファイルが巨大になる
デフォルト preset 8 は速度優先。preset 4〜6 に下げるとサイズが 30〜50% 縮小(ただしエンコード時間は 5〜10 倍)。
Safari や古い iPhone で再生できる?
Safari 17+ と iPhone 15 Pro はハードウェアデコード対応。古い Apple 端末はソフトウェアフォールバックで 4K だとカクつきます。H.264 フォールバックを併設してください。
AV1 で 2-pass はできる?
libaom は -pass 1/2 で 2-pass 対応。SVT-AV1 は最近の推奨が「2-pass よりも CRF 固定品質」— 画質差はわずかです。