ffmpeg: define la distancia de tiempo exacta para las imágenes

ffmpeg: define la distancia de tiempo exacta para las imágenes

Tengo una película que dura 3 minutos y 29 imágenes/seg. Quiero dividirlo en imágenes por 1/segundo.

Yo uso este comando:

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

¡pero eso genera más de 300 imágenes!

El archivo de registro muestra:

cuadro= 3 fps=0.0 q=0.0 tamaño=N/A tiempo=00:00:01.00 bitrate=N/A dup=0 drop=13
cuadro= 4 fps=3.9 q=0.0 tamaño=N/A tiempo=00: 00:01.50 tasa de bits=N/A dup=0 caída=33
cuadros= 5 fps=3.2 q=0.0 tamaño=N/A tiempo=00:00:02.00 tasa de bits=N/A dup=0 caída=51
cuadros= 7 fps =3.4 q=0.0 tamaño=N/A tiempo=00:00:03.00 bitrate=N/A dup=0 drop=67
frame= 8 fps=3.1 q=0.0 tamaño=N/A tiempo=00:00:03.50 bitrate =N/A dup=0 caída=84
cuadros= 9 fps=2.9 q=0.0 tamaño=N/A tiempo=00:00:04.00 bitrate=N/A dup=0 caída=102
cuadros= 10 fps=2.8 q= 0.0 tamaño=N/A tiempo=00:00:04.50 bitrate=N/A dup=0 drop=120
fotogramas= 12 fps=2.9 q=0.0 tamaño=N/A tiempo=00:00:05.50 bitrate=N/A dup=0 soltar=137

el tiempo no es exacto 1 segundo.

¿Alguien podría ayudarme a hacer un comando correcto?

Respuesta1

intentar:

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

Desglosando esto:

-vf fps=1seleccionará un fotograma incluso en intervalos de 1 segundo

-q:v 2(taquigrafía de tu qscale) es una escala de calidad para imágenes jpeg. 1 es la calidad más alta, 31 es la más baja.

información relacionada