Использование 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

Обратите внимание, что это не будет работать на 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)
$

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
  быстрый старт: да
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.