ffmpeg - define a distância exata do tempo para imagens

ffmpeg - define a distância exata do tempo para imagens

Eu tenho um filme com 3 minutos de duração e 29 imagens/seg. Quero dividi-lo em imagens por 1/segundo.

Eu uso este comando:

ffmpeg.exe -i FILE0014.MOV -r 2 -f image2 -vcodec mjpeg -qscale 2 "%%05d.jpg"

mas isso gera mais de 300 imagens!

O arquivo de log mostra:

quadro = 3 fps = 0,0 q = 0,0 tamanho = tempo N/A = 00:00:01,00 taxa de bits = N / A dup = 0 queda = 13
quadro = 4 fps = 3,9 q = 0,0 tamanho = tempo N / A = 00: 00:01,50 taxa de bits=N/A dup=0 queda=33
quadros= 5 fps=3,2 q=0,0 tamanho=N/A tempo=00:00:02,00 taxa de bits=N/A dup=0 queda=51
quadros= 7 fps =3,4 q=0,0 tamanho=N/A tempo=00:00:03,00 taxa de bits=N/A dup=0 queda=67
quadro= 8 fps=3,1 q=0,0 tamanho=N/A tempo=00:00:03,50 taxa de bits =N/A dup=0 queda=84
quadro= 9 fps=2,9 q=0,0 tamanho=N/A tempo=00:00:04,00 taxa de bits=N/A dup=0 queda=102
quadro= 10 fps=2,8 q= 0,0 tamanho = tempo N/A = 00:00:04,50 taxa de bits = N/A dup = 0 queda = 120
quadros = 12 fps = 2,9 q = 0,0 tamanho = tempo N/A = 00:00:05,50 taxa de bits = N/A dup = 0 queda = 137

o tempo não é exato 1 segundo.

Alguém poderia me ajudar a fazer um comando correto?

Responder1

tentar:

ffmpeg -i file0014.mov -vf fps=1 -q:v 2 %03d.jpg

Dividindo isso:

-vf fps=1irá selecionar um quadro em intervalos de 1 segundo

-q:v 2(abreviação de your qscale) é uma escala de qualidade para imagens JPEG. 1 é a qualidade mais alta, 31 é a mais baixa.

informação relacionada