É muito simples com o ffmpeg, e pode produzir um quadro a cada N segundos sem scripting extra. Para exportar como uma sequência de imagens, use apenas myimage_%04d.png
ou similar como a saída. O bit %0xd
é convertido em um inteiro preenchido com zero x
dígitos longos - o exemplo que eu dei obtém a saída como myimage_0000.png myimage_0001.png etc. Você pode usar muitos formatos de imagem estática, png, jpeg, tga, whatever (veja ffmpeg -formats
para uma lista completa).
Ok, para exportar como sequência de imagem, podemos usar um formato de imagem como saída com um nome de arquivo seqüencial, mas não queremos exportar todos os quadros. Então, simplesmente altere a taxa de quadros da saída para o que quisermos usando a opção -r n
, em que n
é o número de quadros por segundo. 1 frame por segundo seria -r 1
, um quadro a cada quatro segundos seria -r 0.25
, um quadro a cada dez segundos seria -r 0.1
e assim por diante.
Então, para colocar tudo junto, é assim que se olha para salvar um quadro de input.mov a cada quatro segundos para output_0000.png, output_0001.png etc. .:
ffmpeg -i input.mov -r 0.25 output_%04d.png
Altere o% xd para quantos dígitos você precisar, por exemplo, se o comando criar mais de 10.000 quadros, altere o %04d
para %05d
. Isso também funciona para arquivos de entrada que são seqüência de imagens. Leia mais aqui .
Usuários do Windows:
Na linha de comando, use %
exemplo: ffmpeg -i inputFile.mp4 -r 1 outputFile_%02d.png
Nos scripts CMD e BAT, use %%
exemplo: ffmpeg -i inputFile.mp4 -r 1 outputFile %%02d.png
Não use apenas um %
em scripts e não use %%
na linha de comando. Ambas as situações geram um erro.