¿Existe alguna herramienta de comando disponible para extraer cuadros de video/transmisión y escribir la marca de tiempo de cada cuadro?

¿Existe alguna herramienta de comando disponible para extraer cuadros de video/transmisión y escribir la marca de tiempo de cada cuadro?

Dado que ffmpeg no admite argumentos de línea de comando para escribir la marca de tiempo del fotograma actual como nombre del archivo de salida, estoy buscando desesperadamente una herramienta de línea de comando que admita extraer imágenes del video/transmisión de video y generar la marca de tiempo del fotograma actual como nombre de archivo.

¿Existe alguna herramienta disponible para tal requisito?

Respuesta1

Puede hacer esto en un proceso de varios pasos, utilizando ffmpeg y una herramienta de cambio de nombre por lotes comoRenombrador avanzado.

Supongamos que desea extraer cada 40 fotogramas.

#1Extraiga fotogramas y lista de marcas de tiempo de presentación.

ffmpeg -i in.mp4 -vsync 0 -vf select=not(mod(n\,40)) frames-%d.jpg
       -vf select=not(mod(n\,40)) -f mkvtimestamp_v2 pts.txt

Además de las imágenes, también obtienes pts.txt que se ve así:

# timecode format v2
0
1600
3200
4800
6400
8000
9600
11200
12800
14400
16000

Esas son las marcas de tiempo de los fotogramas extraídos, expresadas en milisegundos.

#2Luego use una aplicación de cambio de nombre por lotes que admita el cambio de nombre usando una lista para modificar los nombres de archivo de los marcos. O un script de shell.

información relacionada