Usando o FFmpeg para localizar o átomo de moov


20

Eu tenho uma biblioteca de vídeos, todos os quais deveriam ter sido ajustados para o streaming na Web, colocando o moovátomo à frente do restante do vídeo. Isso permite que a reprodução comece antes que o cliente baixe completamente o vídeo.

Existe uma maneira confiável de verificar se um determinado vídeo foi ajustado localizando quantos bytes no moovátomo ocorre? Isso é apenas para fins de depuração.


4
Apenas para referência para outros interessados em colocar o átomo moov no início para facilitar a reprodução ver a -movflags faststartopção ou a qt-faststartferramenta ffmpeg.
Llogan 01/03

Respostas:


22

O FFmpeg não mostra essas informações, realmente.

Você pode usar o AtomicParsley para analisar o arquivo, por exemplo:

AtomicParsley input.mp4 -T 

Isso mostrará a localização dos átomos em uma árvore. Se o moovátomo estiver no início do arquivo, ele terá que vir logo após o ftypátomo, para que você possa tentar analisar a saída, por exemplo, no Bash, apenas imprimindo a segunda linha e verificando se ela contém moov:

AtomicParsley input.mp4 -T | sed -n 2p | grep -q "moov" && echo "yup" || echo "nope"

Haha, bem ... Fico feliz em ajudar :)
slhck

Observe que isso não funcionará nos arquivos DASH do YouTube.
Steven Penny

11
@StevenPenny Certo, os segmentos DASH não contêm toda a árvore Atom, porque são apenas segmentos, não concluem os arquivos ISO Base Media.
slhck

12

Usando issoqtfaststart (não o mesmo que o ffmpeg qt-faststart), a qtfaststart -l entrada .mp4 exibirá a ordem dos átomos de nível superior.

$ 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
Se você tiver pipinstalado, você pode instalar qtfaststartcompip install qtfaststart
QFF

Você também pode instalar com o Homebrew:brew install qtfaststart
Brandon Durham

-1

Você pode fazer isso com o FFprobe:

ffprobe -v trace infile.mp4

Ou com Bento4 :

$ mp4info infile.m4a
Arquivo:
  marca principal: isom
  versão secundária: 200
  marca compatível: isom
  marca compatível: iso2
  marca compatível: mp41
  início rápido: não

$ mp4info outfile.m4a
Arquivo:
  marca principal: isom
  versão secundária: 200
  marca compatível: isom
  marca compatível: iso2
  marca compatível: mp41
  início rápido: sim
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.