web-dev-qa-db-ja.com

HTML5ビデオは、再生前にビデオ全体をキャッシュしますか、それともストリーミングしますか?

自動再生とループを有効にして小さなビデオ(1.5MB)を再生するHTML5ページがあります。

問題は、ページの読み込み後、ビデオの再生が始まるまでに最大10秒かかる場合があることです。これは、FirefoxとChromeの両方で見られます。

私が考えることができる唯一の説明は、ブラウザが再生を開始する前にビデオ全体をダウンロードする必要があるということです。

これは正常ですか、それともストリーミングに適さない方法でビデオをエンコードしたのでしょうか?

編集:ビデオは、ffmpegによってエンコードされた25 fpsビデオの10秒です。ここに、それらを作成するために使用したパラメーターを示します。

//OGV (Theora/Vorbis - used for firefox)
ffmpeg -i input -b 2000k -vcodec libtheora -acodec libvorbis -ab 160000 -g 30  video.ogv

//MP4 (Used by IE, Safari, Chrome)
ffmpeg -i input -b 1500k -vcodec libx264 -vpre slow -vpre baseline -g 30 video.mp4
4
CaptainCodeman

再生を開始する前に数秒間のビデオをバッファリングするのが普通です。これにより、再生中に多くのしゃっくりや中断が発生することを防ぎます。問題は、あなたのビデオがほんの数秒であるということです。そのため、おそらく完全にキャッシュされるでしょう。

そうは言っても、一部の形式はストリーミングが簡単ではないというのは正しいことです。ただし、オンラインで使用される最も一般的なものがあります。ビデオに関する情報を提供していないため、特定のケースを知ることはできません。

最後に、これは使用するビデオコーデックとデコーダーの両方に依存します。フォーマットが可能であっても、デコーダーができることを意味しないためです。 FirefoxとChromeは、プラットフォームに応じて異なるコーデック、さらには異なるコーデックを使用します。したがって、もう一度、より多くの情報が必要です。

1
Itai