GNU/Linux >> Tutoriels Linux >  >> Linux

Comment puis-je obtenir le nombre d'images dans une vidéo sur la ligne de commande Linux ?

ffprobe peut être utilisé pour obtenir des informations sur un fichier multimédia :

ffprobe -select_streams v -show_streams input.avi

Vous obtiendrez des détails sur le flux :

nb_frames=159697

Recherchez nb_frames avec grep :

ffprobe -select_streams v -show_streams input.avi 2>/dev/null | grep nb_frames | sed -e 's/nb_frames=//'

Cela fonctionne pour avi, mp4 et etc. Pour certains conteneurs, il n'affiche pas de valeur valide, par ex. mpeg.

Dans ce cas, cela fonctionne ffprobe -show_packets a.mpg 2>/dev/null | grep video | wc -l


C'est horrible, stupide et lent, mais semble fonctionner :

ffmpeg -i foo.avi -vcodec copy -f rawvideo -y /dev/null 2>&1 | tr ^M '\n' | awk '/^frame=/ {print $2}'|tail -n 1

Cela fonctionnera également correctement sur les fichiers tronqués et les flux bruts (c'est pourquoi vous n'obtenez rien pour les fichiers .vob)


J'ai posté ceci sur une autre question. Utilisation du tcprobe outil (du transcode package), le nombre de cadres est inclus dans l'info. Utilisez le -i basculez pour obtenir un vidage d'informations à partir du fichier :

$ tcprobe -i foo.avi
[tcprobe] RIFF data, AVI video
[avilib] V: 29.970 fps, codec=XVID, frames=38630, width=512, height=384
[avilib] A: 48000 Hz, format=0x55, bits=16, channels=2, bitrate=128 kbps,
[avilib]    53707 chunks, 21768720 bytes, VBR
[tcprobe] summary for foo.avi, (*) = not default, 0 = not detected
import frame size: -g 512x384 [720x576] (*)
       frame rate: -f 29.970 [25.000] frc=4 (*)
      audio track: -a 0 [0] -e 48000,16,2 [48000,16,2] -n 0x55 [0x2000] (*)
                   bitrate=128 kbps
           length: 38630 frames, frame_time=33 msec, duration=0:21:28.954

Notez que le nombre d'images est donné sur deux lignes ici (2ème ligne de sortie et dernière ligne de sortie).


Linux
  1. Comment extraire le fichier tar.gz sous Linux à l'aide de la ligne de commande

  2. Comment supprimer un utilisateur sous Linux à l'aide de la ligne de commande

  3. Comment afficher des lignes spécifiques d'un fichier dans la ligne de commande Linux

  4. Comment puis-je obtenir la résolution (largeur et hauteur) d'un fichier vidéo à partir d'une ligne de commande Linux ?

  5. Comment obtenir le nombre de CPU sous Linux en utilisant C ?

Comment obtenir la taille d'un répertoire sous Linux

Comment utiliser Nano, l'éditeur de texte en ligne de commande Linux

Maîtrisez la ligne de commande Linux

Comment obtenir le nombre de processeurs/cœurs sous Linux

Comment faire passer les arguments de ligne de commande à un processus en cours d'exécution sur les systèmes unix/linux ?

Comment puis-je obtenir le débit d'une vidéo à partir d'une ligne de commande sous Linux ?