ffmpeg -i myvid.mp4 -r 25 -t 100 image-%d.jpeg
Es el comando que estoy usando para extraer marcos y funciona como esperaba. Sin embargo, también me gustaría ver las marcas de tiempo de los cuadros. Con cualquier precisión. 100 milisegundos es lo suficientemente bueno para mí. ¿Puede ffmpeg hacer esto?
Proporcionando detalles adicionales,
Cuando ejecuto el comando anterior, obtengo alrededor de 100 JPEG, creo que hay una correspondencia de 1 a 1 (o muchos a 1) entre estos JPEG y los fotogramas del video. Me gustaría saber la marca de tiempo del marco que se emitió como una imagen JPEG 'i'.
Además, probé ffprobe pero encuentro que incluso la duración del video es incorrecta :(
capture
tiempo EXIF es por tiempo.ffmpeg
salida completa de la consola desde su comando.Respuestas:
Lo que puede hacer es "simular" el proceso de escritura de imágenes al filtrar con el
fps
filtro y luego usarffprobe
para mostrar las marcas de tiempo de los cuadros generados. Esto significa que a 25 fps, el cuadro 50 (como su imagen 50) tendrá un PTS de 2.00 segundos.Lo haces así:
Saldrá:
Estas son las marcas de tiempo para cada imagen de salida. En realidad, puede combinar la lista de fotogramas y las marcas de tiempo:
Creará un archivo con:
Tenga en cuenta que esto puede dar lugar a líneas extrañas si hay demasiados cuadros o demasiadas líneas de salida de información. Parece un poco inexacto allí.
fuente
-vsync drop
, pero eso sucede después del filtrado, IIRC.