Utilisation de FFmpeg pour localiser l'atome moov

20

J'ai une bibliothèque de vidéos, qui auraient toutes dû être ajustées pour la diffusion sur le Web en plaçant l' moovatome avant le reste de la vidéo. Cela permet à la lecture de commencer avant que le client ait complètement téléchargé la vidéo.

Existe-t-il un moyen fiable de vérifier si une certaine vidéo a été ajustée en localisant le nombre d'octets dans l' moovatome? Ceci est uniquement à des fins de débogage.

Jamie Taylor
la source
4
Juste pour référence pour ceux qui souhaitent placer l'atome moov au début pour faciliter la lecture, voir l' -movflags faststartoption ou l' qt-faststartoutil dans ffmpeg.
llogan

Réponses:

22

FFmpeg ne vous montrera pas vraiment ces informations.

Vous pouvez utiliser AtomicParsley pour analyser le fichier, par exemple:

AtomicParsley input.mp4 -T 

Cela vous montrera l'emplacement des atomes dans un arbre. Si l' moovatome est au début du fichier, il devra venir juste après l' ftypatome, vous pouvez donc essayer d'analyser la sortie, par exemple dans Bash, en n'imprimant que la deuxième ligne et en vérifiant si elle contient moov:

AtomicParsley input.mp4 -T | sed -n 2p | grep -q "moov" && echo "yup" || echo "nope"
slhck
la source
Haha, eh bien ... heureux d'aider :)
slhck
Remarque, cela ne fonctionnera pas sur les fichiers YouTube DASH.
Steven Penny
1
@StevenPenny À droite, les segments DASH ne contiennent pas la totalité de l'arborescence Atom, car ce ne sont que des segments, pas des fichiers ISO Base Media complets.
slhck
12

En utilisant ceciqtfaststart (différent de celui de ffmpeg qt-faststart), l' qtfaststart -l entrée .mp4 affichera l'ordre des atomes de niveau supérieur.

$ 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
la source
3
Si vous avez pipinstallé, vous pouvez installer qtfaststartavecpip install qtfaststart
qff
Vous pouvez également installer avec Homebrew:brew install qtfaststart
Brandon Durham
-1

Vous pouvez le faire avec FFprobe:

ffprobe -v trace infile.mp4

Ou avec Bento4 :

$ mp4info infile.m4a
Fichier:
  grande marque: isom
  version mineure: 200
  marque compatible: isom
  marque compatible: iso2
  marque compatible: mp41
  démarrage rapide: non

$ mp4info outfile.m4a
Fichier:
  grande marque: isom
  version mineure: 200
  marque compatible: isom
  marque compatible: iso2
  marque compatible: mp41
  démarrage rapide: oui
Steven Penny
la source