Używanie FFmpeg do zlokalizowania atomu moov

20

Mam bibliotekę filmów, z których wszystkie powinny zostać dostosowane do przesyłania strumieniowego przez umieszczenie moovatomu nad resztą filmu. Umożliwia to rozpoczęcie odtwarzania, zanim klient całkowicie pobierze wideo.

Czy istnieje niezawodny sposób sprawdzenia, czy dany film wideo został dostosowany, poprzez zlokalizowanie liczby bajtów w moovatomie? Służy to wyłącznie do debugowania.

Jamie Taylor
źródło
4
Tylko dla odniesienia dla innych zainteresowanych umieszczeniem atomu moov na początku, aby ułatwić odtwarzanie, zobacz -movflags faststartopcję lub qt-faststartnarzędzie w ffmpeg.
llogan

Odpowiedzi:

22

FFmpeg tak naprawdę nie pokaże Ci tych informacji.

Możesz użyć AtomicParsley do parsowania pliku, np .:

AtomicParsley input.mp4 -T 

To pokaże Ci lokalizację atomów na drzewie. Jeśli moovatom znajduje się na początku pliku, będzie musiał przyjść zaraz po ftypatomie, więc możesz spróbować przeanalizować wynik, np. W Bash, drukując tylko drugi wiersz i sprawdzając, czy zawiera moov:

AtomicParsley input.mp4 -T | sed -n 2p | grep -q "moov" && echo "yup" || echo "nope"
slhck
źródło
Haha, cóż… cieszę się, że
mogę
Uwaga: to nie będzie działać na plikach YouTube DASH.
Steven Penny
1
@StevenPenny Racja, segmenty DASH nie zawierają całego drzewa Atom, ponieważ są tylko segmentami, a nie kompletnymi plikami podstawowymi ISO.
slhck
12

Używając tegoqtfaststart (nie tego samego co ffmpeg qt-faststart), qtfaststart -l wejście .mp4 wyświetli kolejność atomów najwyższego poziomu.

$ 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)
$
mark4o
źródło
3
Jeśli masz pipzainstalowany, możesz zainstalować za qtfaststartpomocąpip install qtfaststart
qff
Możesz również zainstalować z Homebrew:brew install qtfaststart
Brandon Durham
-1

Możesz to zrobić za pomocą FFprobe:

ffprobe -v trace infile.mp4

Lub z Bento4 :

$ mp4info infile.m4a
Plik:
  główna marka: isom
  wersja pomocnicza: 200
  kompatybilna marka: isom
  kompatybilna marka: iso2
  kompatybilna marka: MP41
  szybki start: nie

$ mp4info outfile.m4a
Plik:
  główna marka: isom
  wersja pomocnicza: 200
  kompatybilna marka: isom
  kompatybilna marka: iso2
  kompatybilna marka: MP41
  szybki start: tak
Steven Penny
źródło