GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo obtengo la cantidad de cuadros en un video en la línea de comando de Linux?

ffprobe se puede utilizar para obtener información sobre un archivo multimedia:

ffprobe -select_streams v -show_streams input.avi

Obtendrá detalles sobre la transmisión:

nb_frames=159697

Busque nb_frames con grep :

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

Eso funciona para avi, mp4 y etc. Para algunos contenedores, no muestra un valor válido, p. mpeg.

En ese caso, esto funciona ffprobe -show_packets a.mpg 2>/dev/null | grep video | wc -l


Esto es horrible, estúpido y lento, pero parece funcionar:

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

También funcionará bien en archivos truncados y transmisiones sin procesar (es por eso que no obtiene nada para los archivos .vob)


Publiqué esto en otra pregunta. Usando el tcprobe herramienta (del transcode paquete), el número de marcos está incluido en la información. Usa el -i cambie para obtener un volcado de información del archivo:

$ 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

Tenga en cuenta que el número de fotogramas se indica aquí en dos líneas (segunda línea de salida y última línea de salida).


Linux
  1. ¿Cómo obtener un recuento de archivos en un directorio usando la línea de comando?

  2. Con el comando "cat" de Linux, ¿cómo mostrar solo ciertas líneas por número?

  3. Linux:¿cómo iniciar Puppy Linux Slacko en la línea de comandos?

  4. Cómo mostrar líneas específicas de un archivo en la línea de comandos de Linux

  5. ¿Cómo puedo obtener la resolución (ancho y alto) de un archivo de video desde una línea de comando de Linux?

Cómo obtener el tamaño de un directorio en Linux

Cómo usar Nano, el editor de texto de línea de comandos de Linux

Cómo extraer el archivo tar.gz en Linux usando la línea de comandos

Cómo eliminar un usuario en Linux usando la línea de comandos

Domina la línea de comandos de Linux

Cómo obtener la cantidad de procesadores/núcleos en Linux