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.


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"

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

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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.