GNU/Linux >> Linux Esercitazione >  >> Linux

Come posso ottenere il numero di fotogrammi in un video sulla riga di comando di Linux?

ffprobe può essere utilizzato per ottenere informazioni su un file multimediale:

ffprobe -select_streams v -show_streams input.avi

Otterrai dettagli sullo stream:

nb_frames=159697

Cerca nb_frames con grep :

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

Funziona con avi, mp4 e così via. Per alcuni contenitori, non mostra un valore valido, ad es. mpeg.

In tal caso, funziona ffprobe -show_packets a.mpg 2>/dev/null | grep video | wc -l


Questo è orribile, stupido e lento, ma sembra funzionare:

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

Funzionerà anche su file troncati e flussi grezzi (ecco perché non ottieni nulla per i file .vob)


Ho postato questo su un'altra domanda. Usando il tcprobe strumento (dal transcode pacchetto), il numero di fotogrammi è incluso nel file info. Usa il -i switch per ottenere un dump delle informazioni dal file:

$ 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

Nota che qui il numero di frame è indicato su due righe (seconda riga di output e ultima riga di output).


Linux
  1. Come ottenere un conteggio di file in una directory utilizzando la riga di comando?

  2. Linux:come avviare Puppy Linux Slacko nella riga di comando?

  3. Come posso ottenere la risoluzione (larghezza e altezza) per un file video da una riga di comando di Linux?

  4. Come ottenere gli argomenti della riga di comando passati a un processo in esecuzione su sistemi unix/linux?

  5. Come ottenere il numero di CPU in Linux usando C?

Come ottenere la dimensione di una directory in Linux

Come utilizzare Nano, l'editor di testo della riga di comando di Linux

Come estrarre il file tar.gz in Linux utilizzando la riga di comando

Come rimuovere l'utente in Linux utilizzando la riga di comando

Padroneggia la riga di comando di Linux

Come ottenere il numero di processori/core in Linux