Assumindo o padrão bog Windows cmd.exe (ou seja, não é adorável cygwin , ou Powershell, ou <insert scripting language here> ):
for %f in (*.mp3) do ffmpeg -i %f -loop 1 -i image.png -c:a copy -c:v libx264 -shortest %~nf.mp4
(também assume que não em um arquivo de lote; se for esse o caso, o % s precisa ser dobrado para %% )
Utiliza o fato de que você pode ler no arquivo atual (ou diretório, etc, dependendo de quais argumentos você passar para for ) para uma variável de caractere único; que você pode obter o nome de base de via %~n .
Portanto, supondo que seus mp3s e image.png estejam na sua pasta Downloads , de acordo com seu comentário:
- Inicie um prompt de comando:
<windows key>+r --> cmd --> <enter>
- Alterar para o diretório de downloads:
cd Downloads
- Execute o comando
ffmpeg com loop: for %f in (*.mp3) do ffmpeg -i %f
-loop 1 -i image.png -c:a copy -c:v libx264 -shortest %~nf.mp4
-
(opcional) Aproveite as versões mp4 de seus mp3s com a imagem