詳細: VideoNG

Dale Curtis
Dale Curtis

Chromium のメディア再生のエンジニアリング リード、Dale Curtis と申します。私のチームは、動画再生用のウェブ向け API(MSEWebCodecs など)と、音声と動画のデマルチプレックス、デコード、レンダリングに関連するプラットフォーム固有の内部処理を担当しています。

この記事では、Chromium の動画レンダリング アーキテクチャについて説明します。拡張機能に関する詳細の一部は Chromium 固有のものですが、ここで説明するコンセプトと設計のほとんどは、他のレンダリング エンジンやネイティブ再生アプリにも適用されます。

Chromium の再生アーキテクチャは、長年にわたって大きく変化してきました。このシリーズの最初の投稿で説明した成功のピラミッドの考え方から始めることはありませんでしたが、最終的には信頼性、パフォーマンス、拡張性という同様の手順に沿って作業を進めました。

当初、動画レンダリングは非常にシンプルでした。コンポジタに送信する動画フレームをデコードするソフトウェアを選択する単なる for ループでした。長年にわたり、これは十分に信頼できるものでしたが、ウェブの複雑さが増すにつれて、パフォーマンスと効率性の向上が必要となり、アーキテクチャが変更されました。多くの改善には OS 固有のプリミティブが必要でした。そのため、Chromium のすべてのプラットフォームに対応できるように、アーキテクチャを拡張する必要もありました。