Kann man das MOOV-Atom aus einer MP4-Datei "dumpen"/extrahieren? Wenn das so ist, wie? Hoffen auf einen obskuren FFMPEG-Befehl.
Ich muss einen Stream verarbeiten/abspielen können, ohne immer wieder nach dem MOOV-Atom suchen zu müssen. Bei sehr langen Streams kann dies mehrere Megabyte an Daten umfassen. Es ist ziemlich seltsam, ich glaube nicht, dass das MOOV-Atom riesig ist, ich denke nur, dass es über die ersten N Megabytes verstreut ist (dh Toplevel-Daten am Anfang, mit Verweisen auf weitere Atome, die später im Stream sind).
Daher wäre es für mich sinnvoll, das MOOV-Atom aus der Datei zu extrahieren und es zu behalten
Sie können AtomicParsley verwenden , um die Metadaten einer MP4-Datei zu parsen. Zum Beispiel
AtomicParsley /path/to.mp4 -T 1
druckt den gesamten Atombaum.
Vielleicht bin ich etwas spät dran, aber ich würde bento4 mp4dump verwenden , es ist wirklich einfach mit Brew auf einem Mac zu installierenbrew install bento4
mp4dump 1.mp4
[ftyp] size=8+16
major_brand = iso5
minor_version = 200
compatible_brand = iso6
compatible_brand = mp41
[moov] size=8+740
[mvhd] size=12+96
timescale = 1000
duration = 0
duration(ms) = 0
....
Sie können auch qtfaststart -l fileName
die Ausgaben verwenden, die für Menschen besser lesbar sind, wie:
$ qtfaststart -l myFile.mp4
ftyp (32 bytes)
free (8 bytes)
mdat (283805466 bytes)
moov (3541465 bytes)
Die Python qtfaststart
unterscheidet sich von der qt-faststart
Binärdatei (gebündelt mit ffmpeg
) und kann mit diesem Befehl installiert werden:
sudo -H $(which pip) install qtfaststart
qtfaststart
Kommandozeilenargumente :
$ qtfaststart -h
Usage: qtfaststart [options] infile [outfile]
Options:
--version show program's version number and exit
-h, --help show this help message and exit
-d, --debug Enable debug output
-l, --list List top level atoms
-s, --sample Create a small sample of the input file
Die qtfaststart
Quellen sind hier
Gwyneth Llewelyn
brew
, ist der Befehl tatsächlichqt-faststart
und Teil desffmpeg
Pakets.SebMa
Gwyneth Llewelyn
brew
undbrew-pip
scheinen nicht zu gefallenqtfaststart
; Anscheinend gibt es irgendwo einen Konflikt zwischen dembrew
-provided-Paket und dem von ihmpip
selbst bereitgestellten Paket (dhbrew
glaubt, dass beide gleich sind).easy_install qtfaststart
funktioniert mit dem Python des Systems (2.7.X in macOS Catalina).kino1