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

0

Eu tenho um filme de 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 gera mais de 300 imagens!

O arquivo de log mostra:

frame= 3 fps=0.0 q=0.0 size=N/A time=00:00:01.00 bitrate=N/A dup=0 drop=13
frame= 4 fps=3.9 q=0.0 size=N/A time=00:00:01.50 bitrate=N/A dup=0 drop=33
frame= 5 fps=3.2 q=0.0 size=N/A time=00:00:02.00 bitrate=N/A dup=0 drop=51
frame= 7 fps=3.4 q=0.0 size=N/A time=00:00:03.00 bitrate=N/A dup=0 drop=67
frame= 8 fps=3.1 q=0.0 size=N/A time=00:00:03.50 bitrate=N/A dup=0 drop=84
frame= 9 fps=2.9 q=0.0 size=N/A time=00:00:04.00 bitrate=N/A dup=0 drop=102
frame= 10 fps=2.8 q=0.0 size=N/A time=00:00:04.50 bitrate=N/A dup=0 drop=120
frame= 12 fps=2.9 q=0.0 size=N/A time=00:00:05.50 bitrate=N/A dup=0 drop=137

o tempo não é exato 1 segundo.

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

    
por jan99 28.05.2015 / 18:22

1 resposta

1

tente:

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

Quebrando isso:

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

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

    
por 28.05.2015 / 18:30