Converta em lote 50 imagens (com o mesmo arquivo de áudio) em 50 vídeos usando FFmpeg

Converta em lote 50 imagens (com o mesmo arquivo de áudio) em 50 vídeos usando FFmpeg

Tenho 50 imagens com nomes diferentes.

Na mesma pasta, eu umnomes.txtarquivo que contém os nomes de todas as imagens nessa pasta, assim:

apples.jpg
oranges.jpg
blackberries.jpg
etc.

E eu tenho um arquivo de áudio,som.wav

Quero misturar cada imagem com o arquivo sound.wav, para gerar 50 vídeos:

apples.mp4
oranges.mp4
blackberries.mp4
etc.

Alguma ideia?

Este é o script que funcionou para mim para converter cada imagem manualmente:

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

Mas eu gostaria de dimensionar isso, talvez ter um script que passe por cada linha donomes.txtarquivo para obter o nome da imagem, converte essa imagem em vídeo e depois passa para a próxima imagem.

Obrigado

Responder1

Você podeiterar pelas linhas de um arquivoem um arquivo em lote do Windows:

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

Aqui, substitua [process]por:

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

Onde %Aestá o nome do arquivo na linha e %%~nAé o nome sem extensão.

informação relacionada