¿Cómo extraer imágenes del archivo de video?


Respuestas:


20

Probar con ffmpeg

ffmpeg -i inputfile.avi -r 1 -f image2 image-%3d.jpeg

Puedes leer la documentación aquí

  • -i inputfile.avi El archivo de entrada de video es inputfile.avi
  • -r 1extraer 1 imagen por segundo de video. Reemplace ese número por el número de imágenes que desea obtener por segundo.
  • -f image2 forzar el formato de salida de la imagen, es probable que pueda omitir esto ya que el programa intenta elegir el formato de las imágenes de salida de la extensión del archivo.
  • image-%3d.jpeg nombre de las imágenes de salida,% 3d indica que las imágenes generadas de salida tendrán un número de secuencia de 3 decimales, si desea que el número se rellene con ceros, solo necesita usar% 03d.

1
su enlace parece estar roto
Nolwennig

@Nolwennig. Solucionado, no tan específico como el anterior, pero al menos es la documentación oficial y difícilmente se pueda romper.
YoMismo

3
-r 1es para la cantidad de imágenes por segundo. Entonces, para 60ips, o 24, es -r 24. Y para limitar el extracto, es -ss [start] -t [duration].
Sandburg

Gracias, funciona bien en Xubuntu
Indacochea Wachín

3

Acabo de descargar la última versión de VLC para Windows 32 - 2.1.2 Rincewind y funciona bien para hacer esto.

Pasos:

1 - Haga clic en Herramientas> Preferencias y haga clic en el botón de opción Todos

2: desplácese hacia abajo y haga clic en el signo + junto a Video para expandir

3 - Desplácese hacia abajo y haga clic en Filtro de escena y complete la información para el prefijo Ruta del directorio (donde desea guardar los cuadros). No hagas clic en Guardar.

4 - Desplácese hacia arriba y haga clic en la palabra Video debajo de Filtros

5 - Haga clic en la casilla de verificación del Filtro de video de escena y haga clic en Guardar.

6 - Abre y ejecuta un video y guardará .png's

7 - Para dejar de guardar cuadros, regrese al paso 5 y desactive el filtro de video Escena. Fácil realmente una vez que sabes dónde encontrar la configuración.


0

Espero que esto ayude

#!/bin/bash
source_dir="."
output_dir="."
input_file_types=(avi wmv flv mkv mpg mp4)
output_file_type="jpg"

convert() {
        echo "" | ffmpeg -ss $ss -y -i "$in_file" -an -f image2 -vframes 1 "$output_dir/$out_file"
}

for input_file_types in "${input_file_types[@]}"
do

        find "$source_dir" -name "*.$input_file_types" -print0 | while IFS= read -r -d $'\0' in_file
        do
                echo "Processing…"
                echo ">Input  "$in_file
                # Replace the file type
                out_file=$(echo $in_file|sed "s/\(.*\.\)$input_file_types/\1$output_file_type/g")
            echo ">Output "$out_file

# get video duration
#    fulltime=`ffmpeg -i "$in_file" 2>&1 | grep 'Duration' | cut -d ' ' -f 4 | sed s/,//`;
#    hour=`echo $fulltime | cut -d ':' -f 1`;
#    minute=`echo $fulltime | cut -d ':' -f 2`;
#    second=`echo $fulltime | cut -d ':' -f 3 | cut -d '.' -f 1`;

#    seconds=`expr 3600 \* $hour + 60 \* $minute + $second`;
#    ss=`expr $seconds / 2`; # from the middle of video



    ss=`expr 10`; # from the 10sec of video



    # Convert the file
                convert "$in_file" "$out_file"

                if [ $? != 0 ]
                then
                    echo "$in_file had problems" >> ffmpeg-errors.log
                fi

                echo ">Finished "$out_file "\n\n"
        done
done

0

En VLC puedes hacer clic derecho, Video, Tomar instantánea


Esto suena un poco laborioso si uno necesita imágenes para, por ejemplo, cada fotograma en la escena.
Kusalananda
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.