web-dev-qa-db-ja.com

FFmpegを使用してmoovを見つけるatom

私はビデオのライブラリを持っていますが、そのすべてがshouldmoov atomの前に置くことにより、Webストリーミング用に調整されています。これにより、クライアントがビデオを完全にダウンロードする前に再生を開始できます。

moov atomで発生するバイト数を特定することにより、特定のビデオが調整されているかどうかを確認する信頼できる方法はありますか?これはデバッグのみを目的としています。

20
Jamie Taylor

FFmpegは実際にはこの情報を表示しません。

AtomicParsley を使用してファイルを解析できます。例:

AtomicParsley input.mp4 -T 

これにより、ツリー内の原子の位置が表示されます。 moov atomがファイルの先頭にある場合は、ftypアトムの直後に配置する必要があるため、出力を解析してみることができます、たとえばBashでは、2行目のみを印刷し、moovが含まれているかどうかを確認します。

AtomicParsley input.mp4 -T | sed -n 2p | grep -q "moov" && echo "yup" || echo "nope"
22
slhck

this qtfaststart (ffmpegのqt-faststartとは異なります)、qtfaststart-linput。mp4は、最上位の原子の順序を表示します。

$ qtfaststart -l bad.mp4
ftyp (32 bytes)
free (8 bytes)
mdat (559619 bytes)
moov (52916 bytes)
$ qtfaststart -l good.mp4
ftyp (32 bytes)
moov (52916 bytes)
mdat (559619 bytes)
$
12
mark4o