
3D アーティスト向けビデオエンコード完全ガイド: H.264、H.265、AV1
After Effects、Blender、Cinema 4D でビデオアセットをレンダリングするときは、ビデオファイルまたはイメージシーケンスを操作しています。最終ステップである、レンダリングをデリバラブル形式にエンコードすることは、クライアントが実際にわれわれの仕事を使用するかどうか、およびプラットフォーム全体でスムーズにストリーミングされるかどうかを決定します。After Effects CC 2014 以降は直接ビデオエクスポーターを削除したため、多くのアーティストは Adobe Media Encoder や FFmpeg などのツールでエンコードワークフローを学ぶことを強いられました。今日、われわれはこれまで以上に多くのコーデック選択肢に直面しています。H.264 は業界標準のままですが、H.265 はより優れた圧縮を提供し、AV1 は将来を見据えたオプションとして登場しています。このガイドでは、Super Renders Farm で実施している実践的なエンコード決定について説明します。コーデックの違いを理解することからレンダー出力をシームレスなエクスポート用に構成することまでです。
ビデオコーデックを理解する:実際に必要なこと
コーデック(「コーディング・デコーディング」)は圧縮アルゴリズムです。ビデオデータがわれわれの作業に重要な視覚品質を失わずに(理想的には)より小さいファイルにどのように圧縮されるかを定義します。3D アーティストワークフローを支配している 3 つのコーデックは、H.264、H.265、AV1 です。ProRes は異なるニッチを占有しています。これはデリバリーではなく編集とポストプロダクション用に設計されていますが、レンダーファーム出力がときどき中間形式として使用するため、ここで説明します。
H.264(MPEG-4 AVC): 2003 年にリリースされた H.264 は、デバイス、プラットフォーム、ストリーミングサービス全体で最も広くサポートされているコーデックです。ほぼすべてのスマートフォン、ブラウザ、メディアプレイヤーが H.264 を理解しています。再生環境を制御できないクライアントデリバラブルの場合、H.264 は安全な選択肢です。トレードオフは以下の通りです。これは最も効率的ではありません。ブロードキャスト品質の 4K H.264 ファイルは、H.265 の同じコンテンツより大きいです。
H.265(HEVC): 2013 年の新しい標準は、同等の視覚品質で H.264 よりも約 50% 優れた圧縮を提供します。アーカイブ、ポートフォリオ仕事、内部ストレージについては、H.265 は魅力的です。われわれはかなりのハードドライブスペースを節約します。ただし、H.265 特許ライセンスはより複雑で、一部のデバイス(特に古いハードウェアおよび特定のブラウザー)はネイティブにサポートしていません。
AV1: オープンメディアアライアンスによって開発された AV1 は、ロイヤリティフリーで、ビットレート(「ビットレート」)に応じて H.265 と H.264 の間の圧縮を提供します。YouTube およびストリーミングプラットフォームでの採用が増加していますが、エンコードは CPU 集約的で、再生サポートはまだコンシューマーデバイスでロールアウトされています。将来を見据えたコンテンツについては、AV1 を学ぶ価値があります。
ProRes: デリバリーコーデックではなく、プロフェッショナル中間形式です。ProRes ファイルは H.264 または H.265 より大きいですが、これらはファストエディットおよびカラーグレーディング用に設計されています。われわれが出力がクライアントに直接行くのではなく、ポストプロダクションパイプラインに向かっているときに ProRes を使用します。
コーデック比較:何を使う場合
| コーデック | 圧縮 | デバイスサポート | ユースケース | ビットレート(1080p) |
|---|---|---|---|---|
| H.264 | 標準 | 優秀(98%以上) | ウェブ、クライアントデリバリー、アーカイブ | 5~12 Mbps |
| H.265 | 50% 優れた | 良い(85%) | ポートフォリオ、内部ストレージ、4K | 2.5~6 Mbps |
| AV1 | H.265 と同様 | 新興(60%) | YouTube、将来を見据えたもの | 1.5~4 Mbps |
| ProRes 422 HQ | 大きい | 編集システム | 中間フォーマット/ポストプロダクション | 80~150 Mbps |
デリバリーコンテキスト別にコーデックを選択する
クライアントデリバリー&ウェブ: H.264 がデフォルトです。クライアントはわれわれが使用したコーデック、それらが再生されるかどうかを尋ねません。H.264 はどこでも再生されます。われわれは 1080p で 8~10 Mbps、4K で 15~20 Mbps でエンコードし、コンテンツの複雑さ(モーション、パーティクルエフェクト、微細な詳細)に基づいて調整します。
ポートフォリオ&自己プロモーション: モダンデバイス(デザイン/クリエイティブポートフォリオ用に可能性が高い)を使用する場合は H.265 です。われわれは目に見える品質低下なしに 40~50% のストレージを節約します。配信が不確定な場合は、H.264 を使用してください。
アーカイブ&レンダーファーム出力: H.265 または ProRes です。レンダーを長期保存するとき、圧縮は重要です。H.265 は効率的なアーカイブを提供します。ProRes は、コンテンツがポストで使用される場合は編集に適した中間ファイルを提供します。
YouTube&ストリーミングプラットフォーム: 最大リーチのための H.264 ですが、YouTube は H.265 および AV1 を受け入れます。われわれはクリティカルなポートフォリオピースを H.264 とともに AV1 でエンコードし始めました。エンコードが完了したら、最小限のオーバーヘッドで将来を見据えたものです。
After Effects&メディアエンコーダーからビデオをエクスポートする
After Effects CC 2014 以降は直接ビデオエクスポーターを含みません。代わりに、Adobe Media Encoder を別のアプリケーションとして使用します。これは After Effects、Premiere Pro、スタンドアロンプロジェクトのエンコードタスクを処理します。
ワークフロー: After Effects → Media Encoder 用キューに追加 → Media Encoder はエンコード設定を適用 → エンコードビデオファイル。
After Effects を開き、タイムラインでコンポジションを右クリックし、「Adobe Media Encoder キューに追加」を選択します。メディアエンコーダーが自動的に起動します(既に実行されている場合は開きます)。Media Encoder で、キューのコンポジションを選択し、「形式」の横のプリセットドロップダウンをクリックします。
Adobe は H.264(「高品質 1080p」など)と ProRes のプリセットを提供しています。これらのプリセットは安全なデフォルトですが、われわれは通常それらをカスタマイズします。
H.264 ウェブデリバリー(1080p)の場合:
- 形式:H.264
- プリセット:カスタム
- ビットレート:10 Mbps(可変)
- フレームレート(「フレームレート」):コンポジションと一致(通常 24p または 30p)
- キーフレーム間隔:2 秒ごと(60fps で 120 フレーム)
H.265 ポートフォリオ(1080p)の場合:
- 形式:HEVC(H.265)
- ビットレート:5 Mbps 可変
- プロフィール:メイン
- フレームレート:ソースと一致
- キーフレーム間隔:2 秒ごと
右パネルで「エクスポート設定」をクリックして、ビットレート、フレームレート、その他のパラメーターをカスタマイズします。ビットレートを常に「可変」(VBR)ではなく定数に設定します。可変ビットレートは複雑なシーンにより多くのビットを割り当て、単純なシーンに少ないビットを割り当て、同じ平均ビットレートで知覚品質を向上させます。
メディアエンコーダーは複数のコンポジションをキューします。われわれはプロジェクト全体のアセットをレンダリング、Media Encoder でエンコードジョブをすべてキュー、夜間にレンダリングし、翌朝出力を確認することがよくあります。これはわれわれのファームの主要なワークフローの 1 つです。すべてのクライアントデリバラブルを After Effects で同時にレンダリング、すべてを Media Encoder でキュー、すべてを実行します。
Blender からイメージシーケンスをエンコードする
Blender レンダーは通常、ビデオファイルではなくイメージシーケンス(EXR、OpenEXR、PNG フレーム)として出力されます。Blender にはビデオエクスポートオプションがありますが、これらは制限されています。真の力は Blender のコンポジット(「コンポジット」)または外部エンコードツールからなります。
Blender 内: 出力プロパティで、イメージ形式を設定します。最大品質と動的範囲については EXR)です。シーケンスをレンダリングします。その後、VSE(ビデオシーケンスエディター)で、イメージシーケンスをストリップとしてインポートし、必要に応じてカラー補正またはエフェクトを適用し、VSE から直接 H.264 または他の形式としてエクスポートします。
Blender の VSE エクスポート設定:
- レンダリング → 出力形式に移動
- コーデック:H.264(FFmpeg がインストールされている場合は FFmpeg コーデック)
- ビットレート:1080p で 8000~15000 kbps
- コンテナ:MP4 または Matroska(MKV)
- プリセット:エンコード速度が低い = 品質がより優れた(CPU 時間とファイルサイズのトレードオフ)
プロフェッショナルレンダーファームの仕事では、通常 Blender でエンコードしません。EXR シーケンスをエクスポートし、FFmpeg または Media Encoder で外部的にエンコードします。ここでは、より細かい制御があります。
FFmpeg でのバッチエンコーディング
FFmpeg はわれわれの自動エンコードパイプラインのバックボーンです。コマンドラインベースで、無料で、ほぼすべてのコーデック組み合わせを処理します。何百ものショットを処理するレンダーファームについては、FFmpeg スクリプトは不可欠です。
イメージシーケンスからの基本的な H.264 エンコーディング:
ffmpeg -framerate 24 -i frame_%04d.exr -c:v libx264 -crf 18 -preset slow output.mp4
このコマンドは番号付きフレームシーケンス(frame_0001.exr、frame_0002.exr など)、H.264 での 24fps でのエンコード、品質レベル 18(低い = より優れた、0~51 スケール)、遅いエンコード(より多くの圧縮)を行います。出力は MP4 ファイルです。
H.265 エンコーディング(より高い圧縮):
ffmpeg -framerate 24 -i frame_%04d.exr -c:v libx265 -crf 20 -preset slow output.mp4
CRF(定位相因子)は品質スケールです。H.264 については、CRF 18~22 はブロードキャスト品質を与えます。H.265 については、同様の知覚品質のために CRF 20~26 を使用します。H.265 はより効率的なため、同じ CRF 値はわずかに悪く見えます。
AV1 エンコーディング(より遅いが将来を見据えたもの):
ffmpeg -framerate 24 -i frame_%04d.exr -c:v libaom-av1 -crf 30 -preset 4 output.mp4
AV1 CRF 値は 0~63(高い = 低品質)を実行します。CRF 28~35 は品質作業の典型的なものです。プリセット 0~8 は、エンコード速度を制御します。プリセット 4 は品質とエンコード時間の間の合理的なバランスです。
明示的なビットレート(CRF の代わりに)でエンコーディング:
ffmpeg -framerate 24 -i frame_%04d.exr -c:v libx264 -b:v 10M output.mp4
-b:v 10M フラグは、ビットレートを 10 Mbps に設定します。これは、厳密なファイルサイズ要件がある場合、またはビットレートターゲットを指定するクライアントと働くときに有用です。
FFmpeg はシーケンスからではなく、ビデオファイルからも読み取ることができます。既存の H.264 ファイルを H.265 にトランスコードするには:
ffmpeg -i input.mp4 -c:v libx265 -crf 20 -preset slow output.mp4
さまざまな目的のためのビットレートおよび品質設定
ビットレートは、1 秒あたりにエンコードされたデータの量で、キロビット/秒(kbps)またはメガビット/秒(Mbps)で測定されます。より高いビットレート = より大きいファイルですが、より優れた品質です。われわれのファームはコンテンツタイプに基づいてビットレートを設定します。
1080p H.264 デリバリービットレート:
- 最小品質(ソーシャルメディア、プレビュー):3~5 Mbps
- 標準品質(ウェブ、ポートフォリオ):8~10 Mbps
- 高品質(ブロードキャスト、アーカイブ):12~15 Mbps
4K H.264 デリバリービットレート:
- 標準:25~30 Mbps
- 高品質:35~50 Mbps
H.265 ビットレート(同等の品質のために約 50% 削減):
- 1080p 標準:4~5 Mbps
- 1080p 高:6~8 Mbps
- 4K 標準:12~15 Mbps
- 4K 高:18~25 Mbps
不確定な場合は、複数のビットレートで 10 秒のテストクリップをエンコード、実際の再生デバイスで比較、品質が視覚的に許容される最低ビットレートを選択します。これは推測より速く、各クライアントの期待に合わせて設定を調整するのに役立ちます。
レンダーファーム出力を処理する:シーケンスからビデオへ
われわれのファームは毎日数千のフレームをレンダリングします。パイプラインは以下の通りです。レンダーエンジン → イメージシーケンス(EXR) → 分散ストレージ → バッチエンコーディング → 最終デリバラブル。
各レンダリングジョブは番号付きフレームシーケンスを出力します:render_shot_001_0001.exr、render_shot_001_0002.exr など。その後、これらのシーケンスを H.264、H.265、ProRes ファイルに変換するエンコードジョブを実行します。効率のため、ファームノード全体で複数のショットを並列でエンコードします。
典型的なファームエンコードスクリプト:
#!/bin/bash
for shot in /farm/renders/shot_*/; do
shotname=$(basename "$shot")
ffmpeg -framerate 24 \
-i "$shot/frame_%04d.exr" \
-c:v libx264 -crf 18 -preset slow \
"/deliverables/${shotname}_final.mp4" &
done
wait
これはすべてのショットディレクトリをループし、各ショットをエンコード、並列で実行します。各 ffmpeg ラインの最後の & はそれをバックグラウンドに送信します。wait コマンドは、スクリプトがすべてのエンコードジョブが完了するまで待つことを確認します。
大規模な操作のため、利用可能な場合は NVIDIA NVENC または AMD VCE のハードウェアアクセラレーション(「ハードウェアアクセラレーション」)で FFmpeg を使用します。これにより、エンコード時間が大幅に短縮されます。ハードウェアエンコーダーは圧縮効率のいくつかを速度のためにトレードしていますが、数百のショットを処理するファームでは、時間節約はトレードオフを正当化します。
実践的なエンコード設定の要約
新しいプロジェクトのエンコーディングを設定するときは、以下のように行います。
- デリバリー制約を確認します: クライアントはコーデックを指定しますか?どのデバイスがそれを再生しますか?ファイルサイズは懸念ですか?
- コーデックを選択します: 最大互換性のための H.264、効率のための H.265、将来を見据えたものの AV1。
- 品質レベルを設定します: 知覚品質には CRF を使用し、ファイルサイズターゲットにはビットレートを使用します。
- 再生ハードウェアでテストします: 短いテストシーケンスを常にエンコードし、実際のターゲットデバイスで再生します。
- 設定をドキュメントします: ffmpeg コマンドまたは Media Encoder プリセットを再利用のために保存します。プロジェクト全体の一貫性は重要です。
1080p H.264 ウェブデリバリーについては、CRF 18~20 または 8~10 Mbps 可変ビットレートをデフォルトにします。4K については、35~40 Mbps を使用します。これらの設定は、クライアントが再エンコードをリクエストせずに受け入れるファイルを一貫して生成します。
FAQ
質問:アーカイブのために H.264 または H.265 を使用する必要があります? 回答:H.265 です。アーカイブはぐは長期ストレージ効率に関するものです。H.265 は同等の品質でスペースの半分を使用し、サポートはモダンシステム全体で安定しています。コンテンツが後で編集される可能性がある場合は、代わりに ProRes を検討します。これはポストプロダクションワークフロー用に設計されています。
質問:After Effects から直接 H.265 でエンコードできますか? 回答:ネイティブではありません。After Effects には H.265 エクスポートが含まれていません。Adobe Media Encoder はシステムに正しいコーデックがインストールされている場合、HEVC をサポートしています。HEVC が Media Encoder で利用できない場合は、ProRes にエンコードし、FFmpeg を使用して ProRes を H.265 にトランスコードします。
質問:CRF とビットレートの違いは何ですか? 回答:CRF(定位相因子(「定位相因子」))は知覚品質を目標にしています。エンコーダーはシーン複雑さに基づいてビットレートを自動的に調整します。ビットレートは固定されています。エンコーダーは、シーンが複雑であるかシンプルであるかにかかわらず、同じ量のデータを割り当てます。品質作業には CRF を使用します。厳密なファイルサイズ要件がある場合はビットレートを使用します。
質問:AV1 エンコーディングはなぜこんなに遅いですか? 回答:AV1 はより複雑なアルゴリズムを使用して、H.264 または H.265 より優れた圧縮を達成します。より多くの圧縮はより多くの計算を意味します。モダン CPU および GPU は AV1 エンコーディングで高速化されていますが、それは H.264 と比較して依然として CPU 集約的です。大量のレンダーファームの仕事のため、予算が許可するときに専用ノードで AV1 エンコーディングを実行するか、より優れた速度から圧縮比のため、われわれは H.265 を使用します。
質問:Blender レンダーを MP4 または MOV としてエンコードする必要があります? 回答:MP4 および MOV はコンテナ(ファイル形式)です。内部のコーデックは同じ(H.264、H.265 など)です。MP4 はより広い互換性があります。MOV は歴史的に Final Cut Pro およびいくつかの Apple ワークフローで優先されています。ほとんどのデリバラブルについては、MP4 がより安全です。クライアントが指定する場合は、それらの形式を使用します。それ以外は、MP4 がわれわれのデフォルトです。
関連している読もの: レンダーファームワークフローの最適化に関する詳細については、われわれの完全レンダーファームガイドを参照してください。スチル画像およびシーケンスをエクスポートする場合は、3D レンダー出力形式の管理に関する記事を確認してください。
外部リソース: 詳細な FFmpeg コーデックドキュメントについては、FFmpeg H.264 エンコーディングガイドおよびAV1 コーデック仕様にアクセスしてください。Adobe のメディアエンコーダードキュメントはエクスポートプリセットおよびカスタム構成をカバーしています。

