FFmpegを使用してmoovアトムを見つける


20

私はビデオのライブラリを持っていますが、それらはすべて、ビデオの残りの部分よりも先にアトムを配置することにより、Webストリーミング用に調整する必要がありますmoov。これにより、クライアントがビデオを完全にダウンロードする前に再生を開始できます。

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


4
再生を容易にするためにmoovアトムを最初に配置することに興味がある他の人のための参考のために、の-movflags faststartオプションまたはqt-faststartツールを参照してくださいffmpeg
-llogan

回答:


22

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

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

AtomicParsley input.mp4 -T 

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

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

ハハ、まあ…助けてくれてうれしい:)
slhck

注、これはYouTube DASHファイルでは機能しません。
スティーブンペニー14

1
@StevenPenny正しい、DASHセグメントは、Atomツリー全体を含んでいません。なぜなら、それらは完全なISOベースメディアファイルではなく、セグメントにすぎないからです。
slhck

12

これqtfaststartを使用すると(ffmpegとは異なりますqt-faststart)、qtfaststart -l 入力 .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)
$

3
あなたがいる場合はpipインストールをインストールすることができqtfaststartpip install qtfaststart
QFF

また、自作してインストールすることができますbrew install qtfaststart
ブランドンダーラム

-1

FFprobeでこれを行うことができます。

ffprobe -v trace infile.mp4

またはBento4で

$ mp4info infile.m4a
ファイル:
  主要ブランド:isom
  マイナーバージョン:200
  互換ブランド:isom
  互換ブランド:iso2
  互換ブランド:mp41
  ファストスタート:いいえ

$ mp4info outfile.m4a
ファイル:
  主要ブランド:isom
  マイナーバージョン:200
  互換ブランド:isom
  互換ブランド:iso2
  互換ブランド:mp41
  ファストスタート:はい
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.