Media Source Extension(MSE)は、ブラウザーで再生するために断片化されたmp4を必要とします。
断片化されたMP4には、サーバーがバイト範囲要求をサポートしている場合に個別に要求できる一連のセグメントが含まれています。
すべてのMP4ファイルは、 boxes aka atom を含むオブジェクト指向形式を使用します。
MP4 Parser などのオンラインツールを使用して、またはWindowsを使用している場合は MP4 Explorer を使用して、MP4のボックスの表現を表示できます。通常のMP4と断片化されたMP4を比較してみましょう。
このスクリーンショット( MP4 Parser )は、断片化されておらず、非常に単純に1つの巨大なmdat
(ムービーデータ)ボックスがあるMP4を示しています。
アダプティブビットレートをサポートするビデオプレーヤーを構築している場合、その時点で2つのファイル間でビデオソースを切り替えるために、0.5 Mbpsファイルと1 Mbpsファイルの10秒マークのバイト位置を知る必要があります。各ファイルの1つの大規模なmdat
内のこの正確なバイト位置を決定することは簡単ではありません。
このスクリーンショットは、onDemand
プロファイルで MP4Box を使用してセグメント化された断片化されたMP4を示しています。
sidx
と一連の moof
+ mdat
ボックスが表示されます。 sidx
はセグメントインデックスであり、moof
+ mdat
セグメントの正確なバイト範囲の場所のメタデータを格納します。
基本的に、sidx
(そのバイト範囲は付随する.mpd
Media Presentation Descriptorファイルで定義されます)を個別にロードし、その後MSEにロードして追加するセグメントを選択します SourceBuffer 。
重要なのは、各セグメントは選択した定期的な間隔(5秒ごとなど)で作成されるため、異なるビットレートのファイル間でセグメントを一時的に整列させ、再生中にビットレートを簡単に調整できるようにすることです。