web-dev-qa-db-ja.com

MP4ファイルの先頭にMOOV atomを配置することの欠点はありますか?

moov atomをMP4ビデオコンテナの最後から最初に移動して、ビデオを「Web最適化」またはストリーミングしやすくすることについて、たくさんの質問があります。ほとんどのツールでは、ビデオを最初にエンコードするときにこれを行うための明示的なオプションが必要なようです。

atomを最初に配置すると、ストリーミングがより適切に機能し、事後にそれを行うのにコストがかかる場合、なぜatom最後に?利点は何ですか?

21
Coderer

ファイルの最後にMOOVをエンコードすることは、通常、ビデオエンコーダーのデフォルトの操作です。これは、出力ファイルをワンパスで書き込むことによって動作する傾向があり、MOOVの正確な内容とサイズatom =絶対ファイルサイズが含まれているため、オーディオおよびビデオデータを完全に書き込んだ後でのみ知ることができます。

FFmpegを使用すると、2回目のパスを実行して、atomを-movflags +faststartで始まる先頭に移動できます。

最後にMOOV atomを使用しても特別なメリットはありません。プログレッシブダウンロード配信の場合ほど、再生前にファイルの終わりを探すのにコストがかからないローカル再生の状況では、それほど不便ではありません。 。

18
SirDarius

常にファイルの先頭にインデックス情報を配置する必要があります。このレイアウトには、1つだけを除いて隠れたコストはありません。キャプチャ/トランスコーディングを実行している間、そのMOOVに必要なスペースを事前に知ることができない場合があります。 atom最初は、そのデータもまだ十分に利用できません。したがって、通常はペイロードをファイルに直接書き込み、MOOVを追加してファイルの残りの部分を更新することで書き込みを完了します。

5
Roman R.