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.pngo similar como la salida. El %0xdbit se convierte en un número entero de xdí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 -formatsla 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 nopción donde nestá el número de fotogramas por segundo. Sería 1 cuadro por segundo, sería -r 1un cuadro cada cuatro segundos, sería -r 0.25un cuadro cada diez segundos -r 0.1y así sucesivamente.
Entonces, para ponerlo todo junto, así es como se vería guardar un fotograma de input.movcada cuatro segundos output_0000.png, output_0001.pngetc.
ffmpeg -i input.mov -r 0.25 output_%04d.png
Tenga en cuenta que la -r 0.25opción va después de la -i input.movparte, 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 %04da %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.