ビデオをffmpegでH.264/MP4に変換しています。次に、moov atomをqt-faststart
でファイルの先頭に移動して、ビデオをストリーミングできるようにします。
5〜10分の長さの小さな動画ではすべて正常に機能しますが、1〜2時間の大きな動画の場合、再生を開始するのにかなりの時間がかかることがあります。ロードは6〜10 MBで、ビデオの再生を開始できるのは私だけです。
FLVビデオではそうではありません。ビデオのサイズに関係なく、すぐに再生されます。どうすれば修正できますか?
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