概要
- FFmpeg はMetaのメディア処理基盤の中核ツール
- 内部フォークから公式FFmpegへの完全移行を実現
- マルチレーンエンコーディングとリアルタイム品質指標の公式実装
- ハードウェアAPIによる自社ASIC(MSVP)サポート
- 今後もFFmpegへの貢献とコミュニティ協力を継続
FFmpegの役割とMetaでの活用
- FFmpeg は多様な コーデック・コンテナ フォーマット対応の業界標準ツール
- ffmpeg (CLIアプリ)と ffprobe (メディア情報取得)を日々数百億回実行
- 動画編集・変換だけでなく、 複雑なフィルタチェーン による高度なメディア操作
- 新しい動画体験の創出と既存サービスの 信頼性向上 に寄与
内部フォークの課題と公式FFmpegへの移行
- 独自フォーク で先行実装していた機能(マルチレーンエンコーディング、リアルタイム品質指標)
- 公式FFmpegの進化により、 機能・互換性の乖離 が拡大
- 二重管理 による保守負荷増大とリグレッションリスク
- FFlabs、VideoLANとの協業で 必要機能を公式FFmpegへ実装
- 公式バージョン一本化による 保守性向上と最新機能活用
マルチレーン・トランスコーディングの効率化
- 動画アップロード時、 DASH 対応の複数エンコーディング生成
- 各解像度・コーデック・品質のストリームを 単一FFmpegコマンドで同時生成
- デコード処理の重複排除、プロセス起動のオーバーヘッド削減
- 内部フォーク では動画エンコーダーの 並列実行 を実現
- FFmpeg 6.0以降で マルチスレッド最適化 が公式実装
- 1日10億件超の動画処理における 計算資源効率化
リアルタイム品質指標の実現
- PSNR, SSIM, VMAF などの品質指標を リアルタイム算出
- オンデマンド用途ではエンコード後に別コマンドで計算可能
- ライブ配信では エンコード直後に即時算出 が必要
- 各出力レーンに デコーダーを挿入 し、圧縮前後フレームを比較
- FFmpeg 7.0以降の インループデコード 実装により内部フォーク不要化
メタ独自パッチとハードウェアサポート
- 一部 Meta独自機能 はインフラ固有のため公式パッチ化せず
- NVIDIA, AMD, Intel 等のハードウェアAPI対応
- Meta Scalable Video Processor (MSVP) も同APIでサポート
- 社内専用ASICのため、公式FFmpegには非公開
- 内部パッチの 継続的リベースと検証 による品質担保
今後の展望とコミュニティ貢献
- マルチレーンエンコーディング と リアルタイム品質指標 で内部フォークを完全廃止
- ハードウェアAPI活用で MSVPとソフトウェアパイプラインの統合運用
- 25年以上進化を続けるFFmpeg の信頼性・機能拡張への貢献継続
- オープンソース開発者との連携による 業界全体への波及効果
- 今後も Meta・業界・ユーザー に価値ある新機能開発に注力
謝辞
- オープンソースコミュニティ、 FFlabs、 VideoLAN の協力に感謝
- Metaエンジニア(Max Bykov、Jordi Cenzano Ferret、Tim Harris、Colleen Henry、Mark Shwartzman、Haixia Shi、Cosmin Stejerean、Hassene Tmar、Victor Loh)への謝意