動画を圧縮しようとしてFFmpegのドキュメントを開くと、コーデックの選択肢が多すぎて迷う。H.264、H.265、AV1――それぞれ「高品質」「高圧縮」「最新」と書いてあるが、実際に何を選べばいいのかわからない。
この記事では、この3つのコーデックを圧縮効率・エンコード速度・互換性・FFmpegでの使い方という軸で僕が比較する。読み終わればどのコーデックを選ぶべきか、自分のユースケースに合った判断ができるようになる。
3つのコーデックの位置づけ
コーデックの選択は「どれが最強か」ではなく、「いつ登場して、誰が管理していて、どんなトレードオフがあるか」を理解することから始まる。
H.264(AVC) は2003年に登場した。MPEG-LAというコンソーシアムが特許を管理し、商用利用にはライセンス料が発生する。ただし2024年以降、多くのユースケースでロイヤリティは実質的に無効化されており、現在は事実上フリーで使える状態だ。20年以上の歴史を持ち、あらゆるデバイスと環境に対応している。
H.265(HEVC) は2013年に標準化された。H.264の後継として設計され、同等画質でおよそ40〜50%のビットレート削減を実現する。ただし特許管理が複雑で、複数の特許プールが存在する。この複雑さがブラウザサポートの不均一さにつながっている。
AV1 は2018年にリリースされた。Googleを含む大手テック企業が設立した「Alliance for Open Media(AOMedia)」が開発し、ロイヤリティフリーで誰でも無償で使える。
圧縮効率の比較
同じ画質(VMAF/SSIMで評価)を維持したときのビットレートを比較すると、世代が新しいほど効率的だ。
一般的な目安として:
- AV1 は H.264 比でおよそ 50% のビットレート削減 が可能
- H.265 は H.264 比でおよそ 40〜45% の削減
- AV1 と H.265 の差は 10〜20% 程度(コンテンツによる)
たとえば H.264 で 8 Mbps が必要な映像なら、H.265 で 4.5 Mbps、AV1 で 4 Mbps 以下に抑えられることが多い。ストリーミング配信や長期保存でこの差は大きく効いてくる。
ただし「圧縮効率が高い = 常にAV1を選ぶべき」ではない。エンコード速度と互換性という現実的な制約があるからだ。
エンコード速度の現実
AV1の最大の弱点は長らくエンコード速度だった。初期の libaom-av1 エンコーダーはH.264の数十倍の時間がかかり、実用に耐えないケースも多かった。
現在は SVT-AV1 (Scalable Video Technology for AV1)の登場でこの状況が大きく変わっている。
| エンコーダー | コーデック | 相対速度 | 品質 |
|---|---|---|---|
| libx264 | H.264 | 基準(1x) | 良い |
| libx265 | H.265 | 約0.3〜0.5x | 良い〜優秀 |
| libaom-av1 | AV1 | 約0.05〜0.1x | 優秀 |
| libsvtav1 | AV1 | 約0.3〜0.6x | 優秀 |
SVT-AV1のPreset設定(0〜13)でさらに速度と品質を調整できる。Preset 6〜8が実用的なバランス点だ。
デバイス・ブラウザ互換性
コーデックを選ぶときに見落としがちなのが、再生側の互換性だ。
H.264 はほぼあらゆる環境で再生できる。スマートフォン、古いテレビ、Webブラウザ、すべてで動く。2026年時点で最も互換性が高いコーデックだ。
AV1 はChrome、Firefox、Edge、Safariのモダンブラウザすべてでサポートされている。AndroidとiOSの最新デバイスでもハードウェアデコードが普及している。2023〜2024年以降のスマートフォンなら問題ない。
| H.264 | H.265 | AV1 | |
|---|---|---|---|
| Webブラウザ | 全対応 | 不安定 | 全対応 |
| iOS/macOS | 全対応 | 全対応 | 最新のみ |
| Android | 全対応 | 部分対応 | 最新のみ |
| 旧デバイス | 全対応 | 部分対応 | 非対応が多い |
FFmpegでの具体的な設定
H.264(libx264)
最も安定した選択肢。CRF 23がデフォルトの基準値だ。
# H.264 基本エンコード
ffmpeg -i input.mp4 \
-c:v libx264 \
-crf 23 \
-preset slow \
-c:a aac -b:a 128k \
output_h264.mp4
-preset は ultrafast から veryslow まで選べる。遅いほど同じCRFでファイルサイズが小さくなる。日常的な用途には medium か slow で十分だ。
H.265(libx265)
H.264より圧縮効率が高い。同等画質のCRFはおよそ28が目安だ。
# H.265 エンコード
ffmpeg -i input.mp4 \
-c:v libx265 \
-crf 28 \
-preset slow \
-tag:v hvc1 \
-c:a aac -b:a 128k \
output_h265.mp4
-tag:v hvc1 はAppleデバイスでの再生互換性のために付けておくと安心だ。
AV1(libsvtav1)
現時点で最も圧縮効率が高い選択肢。
# AV1(SVT-AV1)エンコード
ffmpeg -i input.mp4 \
-c:v libsvtav1 \
-crf 30 \
-preset 6 \
-svtav1-params tune=0 \
-c:a libopus -b:a 128k \
output_av1.mkv
-preset は 0(最高品質・最低速)から 13(最低品質・最高速)。6 が品質と速度のバランス点だ。音声は libopus との組み合わせが相性がいい。
バッチ処理の例
複数ファイルをまとめてAV1に変換するスクリプトだ。
#!/bin/bash
# batch_av1_encode.sh
# 使い方: bash batch_av1_encode.sh *.mp4
for input in "$@"; do
filename="${input%.*}"
ffmpeg -i "$input" \
-c:v libsvtav1 \
-crf 30 \
-preset 6 \
-c:a libopus -b:a 128k \
"${filename}_av1.mkv"
echo "完了: ${filename}_av1.mkv"
done
CRF等価表
CRFは「Constant Rate Factor」の略で、数値が小さいほど高品質・大きいほど低品質になる。コーデックによってスケールが異なるため、等価な画質を出すための目安を示す。
| 品質レベル | H.264 (libx264) | H.265 (libx265) | AV1 (libsvtav1) |
|---|---|---|---|
| 高品質(配信・保存) | CRF 18〜20 | CRF 22〜24 | CRF 24〜26 |
| 標準品質(日常用途) | CRF 23 | CRF 28 | CRF 30 |
| 低品質(軽量配信) | CRF 28〜30 | CRF 32〜34 | CRF 36〜38 |
この表はあくまで目安だ。コンテンツ(アニメ・実写・スポーツなど)によって最適値は変わる。実際には数パターン試してVMAFスコアや主観評価で判断するのがいい。
等価の目安として覚えやすい数字は:
- x264 CRF 23 ≈ x265 CRF 28 ≈ libsvtav1 CRF 30
AV1の詳細なエンコード設定については FFmpegとSVT-AV1を使った最適エンコード設定 に詳しくまとめている。
用途別のおすすめ
状況に応じてコーデックを選ぶ判断基準を僕なりにまとめる。
Web配信・ストリーミング(最優先: 互換性) → まず H.264 を基準に。視聴者が最新デバイス中心なら AV1 も検討する。H.265は避ける。
長期アーカイブ・バックアップ(最優先: 容量効率) → AV1 一択。エンコードに時間がかかっても一度やれば終わり。50%の容量削減は長期で効く。
動画編集の中間素材(最優先: エンコード速度)
→ H.264 の ultrafast プリセット。圧縮効率より速度が重要な場面だ。
Appleデバイス向け配信(最優先: デバイス互換性) → H.265 が最適。iPhoneやMacでのハードウェアデコードが保証されており、H.264より小さいファイルサイズになる。
YouTube・SNSへのアップロード(最優先: 再エンコード後の品質) → プラットフォーム側が再エンコードするため、元の品質が高ければコーデックはあまり関係ない。ただし AV1 でアップロードするとYouTubeがAV1で配信してくれる場合がある。
FFmpegを使った動画圧縮の全体的なワークフローについては FFmpeg動画圧縮ガイド も参考にしてほしい。
まとめ
3つのコーデックを比較してきた。結論をシンプルにまとめると:
- 互換性が最優先 → H.264
- ファイルサイズ削減が最優先 → AV1(SVT-AV1)
- Appleエコシステム向け → H.265
H.265は「互換性が低いのに中途半端」という位置づけになりつつある。Web配信ならAV1が追い抜いてきており、Apple向けならH.265が強い、という棲み分けが2026年時点での現実だ。
FFmpegでAV1エンコードを試すなら、まずは libsvtav1 + -preset 6 + -crf 30 からスタートして、用途に合わせてパラメーターを調整していくのがおすすめだ。