トランスコードとエンコード
両者はしばしば同義に使われます。厳密には:
- エンコードは、生の動画データをコーデック形式(例: H.264)に圧縮する行為。
- トランスコードは、既にエンコードされた動画をデコードし、別のコーデック・コンテナ・ビットレート・解像度で再エンコードする行為。
クラウド動画プラットフォームの「エンコード」の大半は、技術的にはトランスコードです。アップロードしたMP4(カメラやNLEで既にエンコード済み)がデコードされ、複数のHLSバリアントへ再エンコードされます。
なぜプラットフォームはアップロードをトランスコードするのか
ソースファイルは多種多様です: 4K H.264、1080p HEVC、8K ProRes、AV1、VP9、古いカメラの奇妙なコーデック。プラットフォームには次が必要です。
- アダプティブビットレートストリーミング用の複数解像度バリアント
- プレイヤー互換のための予測可能なコーデック(通常はH.264)
- 単一MP4ではなくHLS分割出力
- 任意でエンコード時の暗号化適用
これらすべてを生成するために、プラットフォームはソースをデコード(FFmpeg、GStreamer、ハードウェアデコーダ)し、再エンコードします — つまりトランスコードします。
ハードウェアとソフトウェアのトランスコード
- ソフトウェアトランスコード(FFmpeg + libx264)— 柔軟、全プラットフォーム対応、CPUでは低速。1080p H.264はモダンCPUで概ね1×実時間。
- ハードウェアトランスコード(NVIDIA NVENC、Intel QuickSync、AMD VCN)— 高速、機能セットは固定、GPU必須。AVCaptionはNVENCで概ね10〜20×実時間を実現。
ハードウェアは劇的に高速ですが、同品質では圧縮効率がわずかに劣ります。複数バリアントを素早く出す必要のある動画ホスティングでは、ハードウェアが適切なトレードオフです。
「単にエンコード」と言える場合
生の非圧縮動画(フレームグラバーやレンダーパイプライン由来)を扱う場合は、エンコードという用語が正確です。AVCaptionのパイプラインは大抵すでに圧縮されたソースを扱うため、厳密にはトランスコードに該当します。