Convierta por lotes 50 imágenes (con el mismo archivo de audio) a 50 videos usando FFmpeg

Convierta por lotes 50 imágenes (con el mismo archivo de audio) a 50 videos usando FFmpeg

Tengo 50 imágenes con diferentes nombres.

En la misma carpeta, tengo unnombres.txtarchivo que contiene los nombres de todas las imágenes en esa carpeta, así:

apples.jpg
oranges.jpg
blackberries.jpg
etc.

Y tengo un archivo de audio,sonido.wav

Quiero mezclar cada imagen con el archivo sound.wav, para generar 50 videos:

apples.mp4
oranges.mp4
blackberries.mp4
etc.

¿Algunas ideas?

Este es el script que me funcionó para convertir cada imagen manualmente:

ffmpeg -loop 1 -y -i oranges.jpg -i sound.wav -shortest oranges.mp4

Pero me gustaría escalar esto, tal vez tener un script que recorra cada línea delnombres.txtarchivo para obtener el nombre de la imagen, convierte esa imagen en video y luego pasa a la siguiente imagen.

Gracias

Respuesta1

Puedeiterar a través de las líneas de un archivoen un archivo por lotes de Windows:

for /F "tokens=*" %%A in (names.txt) do [process]

Aquí, reemplace [process]con:

ffmpeg -loop 1 -y -i %%A -i intro5.wav -shortest %%~nA_movie.mp4

¿Dónde %Aestá el nombre del archivo en la línea y %%~nAes el nombre sin extensión?

información relacionada