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.


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"

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)
$

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.