web-dev-qa-db-fra.com

Extraire des images de MP4 / FLV?

Je sais que c'est possible avec FFMPEG, mais que faire si j'ai un fichier partiel (comme sans le début et la fin). Est-il possible d'en extraire quelques images?

34
blez

La commande

ffmpeg -ss 00:00:25 -t 00:00:00.04 -i YOURMOVIE.MP4 -r 25.0 YOURIMAGE%4d.jpg

extraira les images

  • à partir du deuxième 25 [-ss 00:00:25]
  • arrêt après 0,04 seconde [-t 00: 00: 00.04]
  • lecture à partir du fichier d'entrée YOURMOVIE.MP4
  • en utilisant seulement 25,0 images par seconde, i. e. une image toutes les 1/25 secondes [-r 25,0]
  • en tant qu'images JPEG avec les noms YOURIMAGE% 04d.jpg, où% 4d est un numéro d'auto-incrémentation à 4 chiffres avec des zéros en tête

Vérifiez votre film pour le framerate avant d'appliquer l'option [-r], la même chose s'applique pour [-t], sauf si vous voulez extraire les images avec le taux personnalisé.

Je n'ai jamais essayé cela avec le fichier d'entrée recadré (corrompu?). La peine d'essayer.

79
ConstNT

Cela pourrait être TRÈS difficile. Le format de fichier MP4 comprend un "moov" atom qui a des pointeurs vers les "échantillons" audio et vidéo. Si le fragment du fichier mp4 que vous avez n'a pas l'atome moov, votre travail serait être beaucoup plus compliqué. Vous devez développer une logique pour examiner le 'mdat' atom (qui contient tous les échantillons audio et vidéo) et utiliser des suppositions éclairées pour trouver les limites audio et vidéo.

Pire encore, sans l'atome moov, vous n'aurez pas le SPS et PPS nécessaire pour décoder les tranches. Vous devrez synthétiser les remplacements; si vous connaissez le codec utilisé pour créer le MP4 , alors vous pourrez peut-être copier le SPS et PPS à partir d'un fichier codé de manière similaire; sinon, cela pourrait être un processus douloureux d'essais et d'erreurs, car la syntaxe des tranches (le H .264 images codées) dépend des valeurs spécifiées dans les SPS et PPS.

2
Mutant Bob