H.264 vs H.265 vs AV1:動画エンコーダーの徹底比較
三大主流動画エンコーダーの圧縮効率、エンコード速度、ブラウザサポート、特許ライセンスを全面比較し、最適なエンコード方案の選択をサポートします。
続きを読む →動画圧縮のコア原理をマスターし、高品質で小サイズの動画を簡単に実現
動画圧縮が可能なのは、動画データに大量の冗長情報が存在するからです。動画圧縮の本質は、これらの冗長性を除去し、より少ないデータで同じ視覚コンテンツを表現することです。
空間的冗長性とは、同一フレーム内の隣接するピクセル間の相関性のことです。例えば、青空のピクセル値は非常に近く、より簡潔な方法で表現できます。
主にフレーム内予測、変換符号化(DCT/DST)、量子化などの技術によって空間的冗長性を除去します。
時間的冗長性とは、隣接するフレーム間の相関性のことです。ほとんどの動画では、隣接フレームのコンテンツの変化は小さく、多くの領域はほぼ完全に同じです。
主にフレーム間予測(動き推定と動き補償)によって時間的冗長性を除去します。これが動画圧縮比が画像圧縮よりはるかに高い主な理由です。
視覚的冗長性とは、人間の視覚システムが知覚できない情報のことです。人間の目は色よりも輝度に敏感で、高周波の細部よりも低周波のコンテンツに敏感です。
主に色差サブサンプリング(4:2:0など)、量子化マトリックス、心理視覚モデルなどの技術によって視覚的冗長性を利用します。
符号化冗長性とは、データを表現するのに使用されるビット数が理論的な最小値より多いことです。エントロピー符号化(ハフマン符号化、算術符号化、CABACなど)によってデータをさらに圧縮できます。
H.264、H.265などのモダン動画符号化規格では、動画は異なるタイプのフレームに分割されます。各フレームの符号化方式は異なり、圧縮効率とエラーリカバリにおいて異なる役割を果たします。
Iフレーム(Intra-coded Picture)はフレーム内符号化フレームで、キーフレームとも呼ばれます。他のフレームを参照せず、独立して符号化され、1枚の静止画に似ています。
Pフレーム(Predictive-coded Picture)は前方向予測フレームで、前のIフレームまたはPフレームを参照して予測符号化され、予測誤差のみを符号化します。
Bフレーム(Bidirectionally predictive-coded Picture)は双方向予測フレームで、前と後ろのフレームの両方を参照して予測され、圧縮効率が最も高くなります。
ビットレート制御は動画圧縮における最も重要なパラメータの1つで、動画の品質を保証するためにビットをどのように分配するかを決定します。一般的なビットレート制御方式にはCRF、CBR、VBRなどがあります。
CRF(Constant Rate Factor)は固定品質モードで、動画全体の視覚的品質を一定に保つことを目標とし、ビットレートは動画の複雑さに応じて動的に変化します。
CRF値の範囲:
CBR(Constant Bitrate)は固定ビットレートモードで、動画全体のビットレートが一定に保たれ、動画コンテンツの複雑さに関わらず一定です。
VBR(Variable Bitrate)は可変ビットレートモードで、動画コンテンツの複雑さに応じてビットレートを動的に調整し、複雑なシーンにはより多くのビットレートを割り当て、単純なシーンではビットレートを削減します。
ABR(Average Bitrate)は平均ビットレートモードで、平均ビットレートが目標値に達することを保証しつつ、ビットレートが一定の範囲内で変動することを許可します。
GOP(Group of Pictures)は画像グループのことで、2つのIフレーム間の一連の連続したフレームを指します。GOP構造はIフレームの間隔を決定し、動画の圧縮効率、ランダムアクセス性、耐障害性に重要な影響を与えます。
GOP長とは、隣接する2つのIフレーム間のフレーム数のことです。例えば、GOP=30は30フレームごとに1つのIフレームがあることを意味します。
典型的なGOP構造はIBBPBBPBBP...のようになります。つまり、Iフレームの後に複数のBフレームとPフレームの組み合わせが続きます。
| シーン | GOP長(フレームレート30fps) | 説明 |
|---|---|---|
| 動画ストレージ/オンデマンド | 60-300フレーム(2-10秒) | 圧縮効率を追求 |
| ライブ配信 | 30-60フレーム(1-2秒) | 遅延と効率のバランス |
| ビデオ会議 | 10-30フレーム(0.3-1秒) | 低遅延、高速リカバリ |
| 監視カメラ動画 | 150-600フレーム(5-20秒) | 圧縮比を最大化 |
| 名称 | 解像度 | 推奨ビットレート範囲 |
|---|---|---|
| 360p | 640×360 | 400-800 kbps |
| 480p | 854×480 | 800-1500 kbps |
| 720p | 1280×720 | 1500-4000 kbps |
| 1080p | 1920×1080 | 3000-8000 kbps |
| 4K | 3840×2160 | 10000-30000 kbps |
H.264エンコーダーを使用し、CRFモードで、ほとんどのシーンでの使用を推奨:
ffmpeg -i input.mp4 -c:v libx264 -crf 23 -preset medium -c:a aac -b:a 128k output.mp4
ファイルサイズを正確に制御する必要がある場合は、2パスエンコード(Two-pass)を使用できます:
# 1パス目:動画を分析
ffmpeg -i input.mp4 -c:v libx264 -b:v 1000k -pass 1 -an -f null /dev/null
# 2パス目:本エンコード
ffmpeg -i input.mp4 -c:v libx264 -b:v 1000k -pass 2 -c:a aac -b:a 128k output.mp4
Windowsユーザーは/dev/nullをNULに置き換えてください。
# 720pに縮小
ffmpeg -i input.mp4 -vf scale=1280:720 -c:v libx264 -crf 23 -c:a aac -b:a 128k output_720p.mp4
# 幅1280に比例縮小
ffmpeg -i input.mp4 -vf scale=1280:-1 -c:v libx264 -crf 23 -c:a copy output.mp4
# 24fpsに低下
ffmpeg -i input.mp4 -r 24 -c:v libx264 -crf 23 -c:a copy output_24fps.mp4
ffmpeg -i input.mp4 -c:v libx265 -crf 28 -preset medium -c:a aac -b:a 128k output_h265.mp4
ffmpeg -i input.mp4 \
-c:v libx264 -crf 23 -preset medium \
-c:a aac -b:a 128k \
-movflags +faststart \
output_web.mp4
-movflags +faststartはメタデータをファイルの先頭に移動し、ネットワークでの再生中にダウンロードをサポートします。
ffmpeg -i input.mp4 \
-vf scale=720:-1 -r 25 \
-c:v libx264 -crf 28 -preset slow \
-c:a aac -b:a 96k \
output_short.mp4
ffmpeg -i input.mp4 \
-c:v libx265 -crf 22 -preset veryslow \
-c:a copy \
output_archive.mkv
ffmpeg -i input.mp4 \
-c:v libx264 -b:v 2500k -maxrate 2500k -bufsize 5000k \
-g 60 -keyint_min 60 -sc_threshold 0 \
-c:a aac -b:a 128k \
-f flv rtmp://server/live/stream
パラメータの説明:
-g 60:GOPサイズを60フレームに設定(2秒@30fps)-keyint_min 60:最小キーフレーム間隔-sc_threshold 0:シーン切り替え検出を無効化し、GOPを安定させるpresetパラメータはエンコード速度と圧縮率のバランスを制御します。選択肢:
推奨:時間に余裕がある場合はslow、速度を重視する場合はfast、デフォルトのmediumで十分です。
推奨されるCRFの開始値:
-vf nlmeans)動画圧縮はバランスの芸術であり、品質、ファイルサイズ、エンコード速度、互換性の間で最適なバランスポイントを見つける必要があります。
クイックスタートの推奨:
これらの複雑なパラメータを覚えたくない場合は、オンライン動画圧縮ツールを直接使用できます。数ステップで簡単に動画圧縮が完了します。
その他の役立つ記事とツール
三大主流動画エンコーダーの圧縮効率、エンコード速度、ブラウザサポート、特許ライセンスを全面比較し、最適なエンコード方案の選択をサポートします。
続きを読む →RTMP、SRT、WebRTC三大ライブ配信プロトコルの全面比較、OBS設定チュートリアル、Nginx-RTMPサーバー構築、FFmpegコマンドラインによる配信方法。
続きを読む →主流音声形式の特性、ビットレートの選択、適用シーンの詳解、およびFFmpegを使用した音声変換の実践コマンド。
続きを読む →