一定の 10FPS でリアルタイム ライブ コンテンツの断片化された MP4 を作成していますが、MP4 作成プロセスにフィードされる前にフレームがドロップされることがあります。MP4 は、Web ソケットを介して Web に送信されます。
プレーヤーが 10FPS で再生するため、時折フレームがドロップするため、ファイルの再生速度は事実上 1x よりわずかに速くなります。これはライブ コンテンツであるため、しばらくするとプレーヤーは現在の時間に到達し、再生するデータがなくなります。
ここで、MSE の問題について説明します。プレーヤーが再生を続行するのに十分なデータを持っていない場合、Chrome で発生しているように見えるのは、1 ~ 2 秒間一時停止してから非常に高速に再生し、その逆も同様です。そのため、この時点でユーザー エクスペリエンスは非常に悪くなります。この問題はここで議論されました: https://www.w3.org/Bugs/Public/show_bug.cgi?id=28379
これを回避するための私の考えは、状態を特定し (データがない)、再生レートを数秒間 0.9 に変更してバッファリングを許可してから、1.0 に戻すことです。問題は、状態を特定する方法が見つからなかったことです。問題が発生したときでも、メディア要素の readystate は常に「HAVE_ENOUGH_DATA」の値を持っているようです。
MSE API は、私が説明した状態を識別する方法を公開していますか?