Estou tentando converter todos os m4a para mp3, meu código fica assim:
find . -name '*.m4a' -print0 | while read -d '' -r file; do
ffmpeg -i "$file" -n -acodec libmp3lame -ab 128k "${file%.m4a}.mp3";
done
mas funciona apenas para o primeiro arquivo mp3 para o próximo, mostra o erro:
Parse error, at least 3 arguments were expected, only 1 given in string '<All files in one line>'
Enter command: <target>|all <time>|-1 <command>[ <argument>]
Os arquivos contêm espaços, e comerciais e parênteses.
Continue lendo aqui: Bash FAQ 89
Então o código deve ficar assim:
Por que não usar apenas o
-exec
argumento defind
? Então,find -iname '*.m4a' -exec ffmpeg -i {} -n -acodec libmp3lame -ab 128k {}.mp3 \;
e execute umrename
comando depois?Sua pergunta foi feita sobre a conversão de m4a para mp3.
Este é um script bash que venho usando há algum tempo.
Ajuste o
avconv
comando para atender às suas necessidades.