H.264 vs H.265 vs AV1:動画コーデック比較と選択ガイド
ビデオをエンコードする際、どのコーデックを使うべきか?H.264は互換性が高いがファイルが大きい。H.265は小さいがサポートが限定的。AV1は最新だがエンコードが遅い。このガイドでは、3大コーデックを徹底比較し、用途別の選択ガイドを提供します。
コーデックの基礎
動画コーデックは動画データの圧縮と展開を行うアルゴリズムです:
- エンコーダ(圧縮):元の動画データを圧縮
- デコーダ(展開):圧縮データを元の動画に復元
- 非可逆圧縮:人間の視覚特性を利用して知覚できない情報を捨てる
三大コーデック概要
| 特徴 | H.264 (AVC) | H.265 (HEVC) | AV1 |
|---|---|---|---|
| リリース年 | 2003 | 2013 | 2018 |
| 開発元 | MPEG | MPEG | AOMedia |
| 圧縮効率 | 標準 | H.264より30-50%高い | H.265より20-30%高い |
| エンコード速度 | 速い | 中 | 非常に遅い |
| ブラウザサポート | 普遍的 | 限定的 | モダンのみ |
| ライセンス | MPEG LA | MPEG LA | ロイヤリティフリー |
| 使用ケース | 一般用 | 4K、アーカイブ | 次世代ストリーミング |
H.264 (AVC):普遍的な標準
特徴
- 2003年リリース:20年以上の歴史
- 普遍的サポート:すべてのデバイスとブラウザがサポート
- H.264Baseline/Main/High プロファイル:異なる用途向け
- ハードウェアデコード:ほぼすべてのデバイスが対応
圧縮原理
- I/P/Bフレーム構造
- 16x16マクロブロック
- CABAC/CAVLCエントロピー符号化
- 8x8整数DCT変換
FFmpegエンコード
bash
# 基本エンコード
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow -c:a aac output.mp4
# 高品質
ffmpeg -i input.mp4 -c:v libx264 -crf 18 -preset slow -c:a aac output.mp4
# 高圧縮
ffmpeg -i input.mp4 -c:v libx264 -crf 28 -preset slow -c:a aac output.mp4
# 互換性重視(古いデバイス向け)
ffmpeg -i input.mp4 -c:v libx264 -profile:v baseline -level 3.1 -crf 23 -c:a aac output.mp4メリット・デメリット
メリット:
- 普遍的な互換性
- 高速エンコード
- 成熟したエコシステム
デメリット:
- 圧縮効率が低い(H.265より30-50%大きい)
- 4Kビデオには不向き
H.265 (HEVC):高効率圧縮
特徴
- 2013年リリース:H.264の後継
- 30-50%高い圧縮効率:同画質でファイルサイズが小さい
- 4K対応:大画面向け
- 特許ライセンス問題:MPEG LAのライセンス料が高い
圧縮原理
- より大きなCTU(Coding Tree Unit)最大64x64
- より柔軟な予測モード
- 10-bit色深度サポート
- SAO(Sample Adaptive Offset)
FFmpegエンコード
bash
# 基本エンコード
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset slow -c:a aac output.mp4
# 高品質
ffmpeg -i input.mp4 -c:v libx265 -crf 23 -preset slow -c:a aac output.mp4
# 4Kエンコード
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -x265-params "pool=0" -c:a aac output.mp4ブラウザサポート
| ブラウザ | H.265サポート |
|---|---|
| Chrome | OS依存(Windows 10+、macOS) |
| Firefox | なし |
| Safari | あり |
| Edge | あり(OS依存) |
| iOS Safari | あり |
注意: H.265のブラウザサポートは限定的です。ウェブ用にはH.264が安全です。
メリット・デメリット
メリット:
- 高圧縮効率
- 4K対応
- 10-bit色深度
デメリット:
- ライセンス料が高い
- ブラウザサポートが限定的
- エンコードが遅い
AV1:次世代コーデック
特徴
- 2018年リリース:AOMediaが開発
- ロイヤリティフリー:オープンソース
- 最高圧縮効率:H.265より20-30%高い
- Google、Mozilla、Amazon、Netflixが支持
圧縮原理
- より大きなブロックサイズ(最大128x128)
- より柔軟な予測モード
- より高度なフィルタリング
- 12-bit色深度サポート
FFmpegエンコード
bash
# 基本エンコード(遅い)
ffmpeg -i input.mp4 -c:v libaom-av1 -crf 30 -b:v 0 -c:a aac output.mp4
# より速いエンコード(SVT-AV1)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 6 -c:a aac output.mp4ブラウザサポート
| ブラウザ | AV1サポート |
|---|---|
| Chrome 85+ | あり |
| Firefox 68+ | あり |
| Safari 16.4+ | あり |
| Edge 85+ | あり |
| 古いブラウザ | なし |
メリット・デメリット
メリット:
- 最高圧縮効率
- ロイヤリティフリー
- モダンブラウザサポート
デメリット:
- エンコードが非常に遅い
- 古いデバイスはデコードできない
- エンコードツールが少ない
用途別選択ガイド
ウェブビデオ
bash
# 推奨:H.264(最大互換性)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow -c:a aac -movflags +faststart output.mp4
# モダンブラウザ向け:AV1(オプション)
ffmpeg -i input.mp4 -c:v libsvtav1 -crf 30 -preset 6 -c:a aac output.mp4モバイルアプリ
bash
# H.264(iOS/Android両対応)
ffmpeg -i input.mp4 -c:v libx264 -profile:v high -level 4.0 -crf 23 -c:a aac output.mp44Kビデオ
bash
# H.265(ストレージ節約)
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -c:a aac output.mp4
# H.264(互換性重視)
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset slow -c:a aac output.mp4アーカイブ
bash
# H.265(最高効率)
ffmpeg -i input.mp4 -c:v libx265 -crf 20 -preset slow -c:a aac output.mp4ライブストリーミング
bash
# H.264(プラットフォーム標準)
ffmpeg -i input.mp4 -c:v libx264 -preset veryfast -b:v 4000k -c:a aac -b:a 128k output.mp4圧縮効率比較(同画質)
参考値(ビデオにより異なる):
| コーデック | ビットレート | ファイルサイズ比 |
|---|---|---|
| H.264 | 100% | 1.0x |
| H.265 | 50-70% | 0.5-0.7x |
| AV1 | 35-55% | 0.35-0.55x |
エンコード速度比較
参考値(同じハードウェア):
| コーデック | 相対速度 |
|---|---|
| H.264 | 1x |
| H.265 | 0.2-0.5x |
| AV1 (libaom) | 0.05-0.1x |
| AV1 (SVT-AV1) | 0.2-0.5x |
まとめ
3大コーデックの選択ガイド:
- H.264:最大互換性が必要な場合の安全な選択
- H.265:ストレージと帯域幅を節約したい場合
- AV1:次世代ストリーミング向け(モダンブラウザのみ)
クイックリファレンス:
- 普遍的互換性: H.264
- 高効率圧縮: H.265
- 次世代: AV1
- CRF参考: H.264 18-28、H.265 23-32、AV1 25-35