Es muy simple con ffmpeg, y puede generar un cuadro cada N segundos sin secuencias de comandos adicionales. Para exportar como una secuencia de imágenes, simplemente use myimage_%04d.png
o similar como la salida. El %0xd
bit se convierte en un número entero de x
dígitos rellenos con ceros de largo: el ejemplo que proporcioné se muestra como
myimage_0000.png
,
myimage_0001.png
,
myimage_0002.png
etc.
Puede usar muchos formatos de imágenes fijas, png, jpeg, tga, lo que sea (consulte ffmpeg -formats
la lista completa).
Bien, ahora sabemos cómo exportar la película como una secuencia de imágenes, pero ¿no queremos exportar cada fotograma?
El truco es simplemente cambiar la velocidad de fotogramas de la salida a lo que queramos usando la -r n
opción donde n
está el número de fotogramas por segundo. Sería 1 cuadro por segundo, sería -r 1
un cuadro cada cuatro segundos, sería -r 0.25
un cuadro cada diez segundos -r 0.1
y así sucesivamente.
Entonces, para ponerlo todo junto, así es como se vería guardar un fotograma de input.mov
cada cuatro segundos output_0000.png
, output_0001.png
etc.
ffmpeg -i input.mov -r 0.25 output_%04d.png
Tenga en cuenta que la -r 0.25
opción va después de la -i input.mov
parte, porque controla la velocidad de fotogramas de la salida . Si lo coloca antes de la entrada, trataría el archivo de entrada como si tuviera la velocidad de fotogramas especificada.
Cambie el% xd a la cantidad de dígitos que necesite, por ejemplo, si el comando crearía más de 10,000 cuadros, cambie el %04d
a %05d
. Esto también funciona para archivos de entrada que son secuencias de imágenes. Lee más aquí .
Usuarios de Windows : en la línea de comando, use%
ejemplo: ffmpeg -i inputFile.mp4 -r 1 outputFile_%02d.png
En las secuencias de comandos CMD y BAT, use %%
ejemplo: ffmpeg -i inputFile.mp4 -r 1 outputFile %%02d.png
Entonces, doble %%
en los scripts y solo %
en la línea de comandos interactiva. Hacerlo mal en cualquier situación generará un error.