Estoy tratando de extraer "exactamente 1 fotograma de cada 10" fotogramas de un video (es decir, extraer 1, dejar 9 y luego repetir) con fines científicos. El video es de 105 cuadros, 3.5 segundos, 29.97 fps (h.264, .mov, producido por Nikon D3100).
Lo he subido aquí .
VLC
El siguiente comando debería producir 10 cuadros, pero solo produce 6 imágenes. Intenté diferentes proporciones de escena y ninguno de ellos produce el número correcto de fotogramas (ni siquiera cerca de corregir).
vlc 1.mov --video-filter=scene --vout=dummy --scene-ratio=10 --scene-prefix=img- --scene-path=. vlc://quit
¿Podría alguien decirme cuál es el problema?
FFmpeg
FFmpeg no parece tener un comando exactamente para mi propósito. El siguiente comando extrae 3 cuadros de cada segundo, pero dado que el FPS no es exactamente 30 (más bien 2.97), eso no producirá resultados correctos para mí.
Además, incluso FFmpeg no proporciona el número correcto de fotogramas con incluso este comando. Para 3.5 segundos de video, espero 10 cuadros como máximo, ¡pero lo que obtengo son 12 cuadros!
ffmpeg -i 1.mov -y -an -sameq -r 3 -f image2 -vcodec mjpeg %03d.jpg
¿Cómo puedo lograr lo que quiero?
-sameq
, no hace lo que probablemente piensas que hace, y se ha eliminado de la versión actual (el verdadero ffmpeg es decir, no estoy seguro de si está en el ffmpeg falso de Ubuntu). Use qscale en su lugar.