Использование FFmpeg для поиска атома moov

20

У меня есть библиотека видео, все из которых должны были быть настроены для потоковой передачи в сети, помещая moovатом впереди остальной части видео. Это позволяет начать воспроизведение до того, как клиент полностью загрузит видео.

Есть ли надежный способ проверить, было ли настроено определенное видео, путем определения количества байтов в moovатоме? Это только для целей отладки.

Джейми Тейлор
источник
4
Просто для справки для других, заинтересованных в размещении атома moov в начале, чтобы облегчить воспроизведение, смотрите -movflags faststartопцию или qt-faststartинструмент в ffmpeg.
llogan

Ответы:

22

FFmpeg не покажет вам эту информацию, правда.

Вы можете использовать AtomicParsley для анализа файла, например:

AtomicParsley input.mp4 -T 

Это покажет вам расположение атомов в дереве. Если moovатом находится в начале файла, он должен идти сразу после ftypатома, так что вы можете попробовать проанализировать вывод, например, в Bash, только напечатать вторую строку и проверить, содержит ли он moov:

AtomicParsley input.mp4 -T | sed -n 2p | grep -q "moov" && echo "yup" || echo "nope"
slhck
источник
Хаха, хорошо ... рад помочь :)
slhck
Обратите внимание, что это не будет работать на DASH-файлах YouTube.
Стивен Пенни
1
@ StevenPenny Правильно, сегменты DASH не содержат всего дерева Atom, потому что это только сегменты, а не полные файлы ISO Base Media.
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)
$
mark4o
источник
3
Если вы pipустановили, вы можете установить qtfaststartсpip install qtfaststart
qff
Вы также можете установить с Homebrew: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
  быстрый старт: да
Стивен Пенни
источник