JavaScriptでMPEG-DASHプレーヤーを構築する。しかし、シークを実装する際に問題が発生しており、MSEとそれに対応するSource Bufferオブジェクトを使用して処理する方法の参考資料が多くないようです。MPEG-DASHセグメントをシーケンシャルにシークするためにロードする
セグメントが適切にエンコードされていれば(私はSegmentTemplateを介してバイト範囲ではなく個々のm4sファイルを使用しています)、必要な任意のポイントのセグメントを追加するだけでよい10秒のマーク)、VideoElementのcurrentTimeパラメータをマークに設定します。このすべてがうまくいけば、エラーなくセグメントバッファを確認でき、セグメントの最初のフレームはVideoElement内で視覚的に読み込まれます。ただし、再生されず、スクラビングはできません。エラーもありません。より多くのデータを待っているように機能します。
これは、以前のすべてのセグメントを任意のポイントまで追加することで解決しますが、これは実用的ではありません。例えば、dash.jsはそれをしません(しかし、正確なシークを可能にするために異なってやっていることを正確にピン止めすることはできません)。私は動的にsidx、mfhd、および/またはtfdtのボックスを何とか変更しなければならないと思っています。ブラウザを真似して、セグメントを順次ロードしていると騙してしまいます。
断片化されたMP4セグメントをMSEソースバッファに供給する際に、任意のポイントにジャンプして再生を続ける方法を知っていますか?