Quiero decir, cómo generar archivos de imágenes de un video como capturas de pantalla.
Quiero decir, cómo generar archivos de imágenes de un video como capturas de pantalla.
Respuestas:
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 1
extraer 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.-r 1
es 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]
.
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.
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
En VLC puedes hacer clic derecho, Video, Tomar instantánea