Você não precisa usar ls
neste caso. Como regra geral, sempre tente usar recursos internos e internos do shell, em vez de confiar em programas externos (por exemplo, ls
) que podem introduzir problemas com soluções alternativas ruins.
Além disso, você não deve 'manualmente' anexar a extensão ao nome do arquivo de entrada (aquele que você dá a -i
) e você deve remover a extensão no arquivo de saída.
Então o comando deve ser:
for f in *.mp4; do ffmpeg -i "$f" "${f%.mp4}".mprg; done