Apile imágenes con el filtro "hstack" de video o secuencia de imágenes en ffmpeg

¿Es posible ingresar un video y extraer imágenes cada segundo mientras simultáneamente las apila horizontal o verticalmente con el filtro "hstack" para crear una imagen jpg?

La única forma en que puedo averiguar cómo hacerlo es extrayendo los fotogramas fijos con este comando:

ffmpeg -i INPUT.mov -vf fps=1 -s 192x108 thumbnails%03d.jpg

Y luego ingresándolos uno por uno y luego especificando el número de entradas como esta.

ffmpeg -y -i thumbnails001.jpg -i thumbnails002.jpg -i thumbnails003.jpg... filter_complex vstack=inputs=3 output.jpg

Sería bueno si fuera posible hacerlo en un fragmento más dinámico del video original o al menos de una secuencia de video ingresada y no insertar manualmente la cantidad de ENTRADAS necesarias para crear la pila.

Respuestas (1)

Es mejor usar el tilefiltro para esto:

ffmpeg -i INPUT.mov -vf fps=1,scale=192:108,tile=54x1 output.jpg

El argumento del mosaico es del tamaño de un rectángulo. Entonces, para un video de 54 segundos, 54x1produce una pila horizontal de 54 cuadros. Uso 1x54para una pila vertical.

Muchas gracias. Funciona de maravilla. ¿Es posible especificar qué número de cuadro cada segundo debe elegir? Ahora, para un clip de 25 fps, parece elegir el cuadro 13. Me gustaría que eligiera el primer cuadro cada segundo.
Reemplazar fps=1conselect='not(mod(n,25))'
Una vez más, ¡muchas gracias! Necesitaba agregarlo dentro de "" en esta cadena de filtros. Ahora funciona.-vf "select='not(mod(n,25))'",scale=960:540,colormatrix=bt709:bt601,tile=30x1