web-dev-qa-db-ja.com

MP4の起動に時間がかかりすぎる

ビデオをffmpegでH.264/MP4に変換しています。次に、moov atomをqt-faststartでファイルの先頭に移動して、ビデオをストリーミングできるようにします。

5〜10分の長さの小さな動画ではすべて正常に機能しますが、1〜2時間の大きな動画の場合、再生を開始するのにかなりの時間がかかることがあります。ロードは6〜10 MBで、ビデオの再生を開始できるのは私だけです。

FLVビデオではそうではありません。ビデオのサイズに関係なく、すぐに再生されます。どうすれば修正できますか?

2
user2783132

MOOVのサイズを確認できますatom with AtomicParsley 。Run atomicparsley file.mp4 -Tそしてこのようなものを探してください:

Atom moov @ 20 of size: 1653815, ends @ 1653835

たとえば、ここでatomのサイズは1653815バイト(約1.5 MB)になります。ファイルの場合、atomが大きすぎる可能性があります。

エンコード中にサイズを小さくすることができます。 ffmpegでは、atom with -moov_sizeオプション 。そうは言っても、ファイルが大きすぎる可能性があるため、ストリーミング方法の変更を検討する必要があります。

そのための1つの方法は、ISMVの「スムーズストリーミング」形式です。断片化されたMP4ファイルを作成します。フラグメントオプションの1つを設定し、空のMOOVを選択することで、これを有効にできます。例えば:

ffmpeg -i input.mp4 -c:v libx264 -c:a aac -strict experimental \
-b:v 1M -b:a 128k -movflags frag_keyframe+empty_moov \
output.mp4
5
slhck