世界を動かす技術を、日本語で。

MetaにおけるFFmpeg:大規模メディア処理

概要

  • 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・業界・ユーザー に価値ある新機能開発に注力

謝辞

  • オープンソースコミュニティFFlabsVideoLAN の協力に感謝
  • Metaエンジニア(Max Bykov、Jordi Cenzano Ferret、Tim Harris、Colleen Henry、Mark Shwartzman、Haixia Shi、Cosmin Stejerean、Hassene Tmar、Victor Loh)への謝意

Hackerたちの意見

ドイツの国営テックファンドが、FFmpegにメタ経由で多額の寄付をしたらしいよ。

「[Meta]の投稿で言及されている資金はありがたいけど、プロジェクトを維持するには足りない」 https://x.com/FFmpeg/status/2029053011314786701

メタがFFmpegにどれくらい寄付したか知ってる?ちょっと調べたら、ドイツのSTFが2024/2025年に€157,580.00寄付したみたい。

何このジョーク… メタが何十億も稼いで、自分たちのものを作らずに数百万を節約してるのに、国の基金以上の寄付ができないなんて。

ドイツの主権技術ファンドが15万ドル以上寄付したんだって。METAエンジニアの1年分の時間っていくらかな?30万ドル?それ以上?もし彼らが1年分のエンジニアリング時間を使ったら、Metaはドイツの主権技術ファンドの2倍以上を提供したことになるね。おそらく、メディアエンコーディングやアップストリーミングパッチに取り組んでいるチームがいて、ジュニアやミッドレベルのソフトウェアエンジニア以上の人たちも含まれていると思うから、彼らが仕事で少なくとも年間100万ドルを提供しているとは驚かないよ。

これって、コストコで試食だけで満腹になったって言ってるようなもんじゃない?メタは今、何十億も稼いでるんだから、頼ってるFOSSプロジェクトにちゃんと資金を提供するべきだよ。無駄なデータセンターの開発にお金をばらまくんじゃなくて。そうしないと、またXZの失敗みたいなことになるのが目に見えてる。疲れた無給のFOSSメンテナが、無作為なJia Tanを信じちゃうんだから。

メタがあるからこそPHPがまだ生き残ってるんだよね。それに、MVC地獄に陥らずに済んでる大きな理由でもある。彼らはオープンソースに賭けて、たくさんの技術をオープンソースにしてる。オープンソースに関しては、最高の企業の一つだと思う。彼らがどれだけ寄付してるかは知らないけど、プロジェクトに対してたくさんの助成金を出してるのは見たことあるよ。

「これって、コストコで試食だけで満腹になったって言ってるようなもんじゃない?」この例えは失敗だね。無料サンプルはコストコ(または他の業者)にお金がかかるから。メタがFFmpegを使ってることで叩くのは、Linuxを使ってる全てのテック企業を叩くのと同じくらい意味がないよ。もしかして君もそうするのかもしれないけど、よくわからないな。

この投稿は、彼らが改善を上流に上げたことについてのものだよ!企業がオープンソースをうまく活用して、プロジェクトの改善に貢献することに腹を立てるなら、オープンソースの本質を理解してないってことだよ。ただのピッチフォークを探してるだけなんじゃない?

彼らは自分たちの修正を上流に提供したからね。それが一番重要なことだと思う。

「私たちの内部フォークがどんどん古くなっていく中で、FFmpegの開発者やFFlabs、VideoLANと協力して、内部フォークを完全に廃止し、私たちのユースケースに対して上流版に完全に依存できる機能をFFmpegに開発しました。一部のコメントは、彼らが還元している事実を見落としているようですが、彼らだけがこの恩恵を受けているわけではありません。もっと寄付できる?もちろん、でもこれこそオープンソースの利点の一つで、誰もが上流に上げられた変更や、ある団体からの財政的支援を受けて恩恵を受けるんです。」

大手テック企業がオープンソースプロジェクトなしでは存在しないってことを、ちょっと思い出してほしいな。

Hacker Newsで議論の続きを見る