YouTube が Media Capabilities API を使用して動画のパフォーマンスを向上させた方法

すべてのデバイスでスムーズな動画再生を実現。

François Beaufort
François Beaufort

Media Capabilities API を使用したテストでは、MTBR が 7.1% 増加し、配信される動画の平均解像度が 0.4% 低下しました。

問題

通常、メディア サイトには、ユーザーに表示できる各動画のバリエーションがいくつかあり、異なるフレームレート、解像度、コーデックでエンコードされています。最近まで、ウェブ デベロッパーは isTypeSupported() または canPlayType() のみを使用して、各バリエーションを個々のユーザーのブラウザで再生できるかどうかを判断する必要がありました。これにより、メディアを再生できるかどうかをデベロッパーに通知できましたが、フレーム落ちやデバイスのバッテリーの消耗が発生するかどうかなど、再生品質に関する指標は提供されませんでした。この情報がない状態では、デベロッパーは独自のヒューリスティクスを作成するか、デバイスがコーデックと解像度の組み合わせを再生できる場合は、スムーズかつ電力効率的に再生できると想定する必要がありました。そのため、性能の低いデバイスを使用しているユーザーは、エクスペリエンスが低下することが多くなりました。

ソリューション

Media Capabilities API を使用すると、ウェブサイトはクライアントの動画デコードのパフォーマンスに関する詳細情報を取得し、ユーザーに配信するコーデックと解像度について十分な情報に基づいて判断できます。具体的には、この API は、特定のコーデックと解像度の組み合わせのスムーズさと電力効率の推定値をデベロッパーに提供します。これにより、デベロッパーは、クライアントの再生エクスペリエンスが低下する可能性が高いシナリオを回避できます。

Chrome では、Media Capabilities API が以前の再生の指標を使用して、同じコーデックで同じ解像度で今後の再生がスムーズにデコードされるかどうかを予測します。

YouTube のケーススタディ

YouTube は Media Capabilities API を使用して、デバイスでスムーズに再生できない解像度が、アダプティブ ビットレート アルゴリズムによって自動的に選択されないようにしました。

テストグループのユーザー全体では再バッファリングの頻度が低下し(再バッファリング間の平均時間(MTBR)が 7.1% 増加)、集計グループに配信された動画の高さで測定した平均解像度は 0.4% しか低下しませんでした。MTBR が大幅に増加し、平均解決時間がわずかに短縮されたことから、この変更により、以前はエクスペリエンスが低かった少数のユーザーの品質が大幅に向上したことがわかります。

サイトに Media Capabilities API を実装する

Decoding Info API の仕組みについては、公式のサンプルをご覧ください。