(メディアの)ストリームを横断します

ジョー・メドレー
Joe Medley

現在のところ、Chrome で Media Source Extensions(MSE)を使用する場合、暗号化されたストリームとクリアされたストリームを切り替えることはできません。これは実際には MSE の仕様で禁止されていませんが、むしろこの制限は主に、Encrypted Media Extensions(EME)をサポートするためのメディア パイプラインの設定にあります。

MSE では、コーデックの初期化データや暗号化情報などの情報を含む初期化セグメントでメディア ストリームを開始する必要があります。通常、初期化セグメントはメディア ファイルの先頭にあります。したがって、ダウンロードや MSE によってメディア要素にメディアが添付されても、そのまま機能します。

この問題は、ストリーミング中にメディア特性を変更しようとした場合に発生します。メディア特性を変更するには、新しい初期化セグメントを渡す必要があります。ほとんどの特性で、これで問題ありません。再生が続行されます。例外は暗号化の設定です。最初の初期化セグメントの暗号化設定は、ストリーム セグメントを暗号化できるかどうか(つまり、クリア メディア セグメントをストリームに挿入できる)かどうかのみを示します。したがって、暗号化されたセグメントが 1 つでも暗号化されていないストリームでは、暗号化情報を初期化セグメントに含める必要があります。そのため、広告挿入には他のプラットフォームには当てはまらない回避策が必要です。

Chrome 58 以降では、これらがすべて変更されています。1 つのストリーム内で、暗号化ありと暗号化なしを切り替えられるようになりました。これにより、Firefox と Edge にすでに存在する動作を一致させることで互換性が向上します。

注意点があります。まず、メディア ストリームで暗号化されたセグメントが予想される場合は、MediaKeys を事前に設定する必要があります。以前と同様に、同じソースに HTTP と HTTPS を混在させることはできません。