我正在尝试将所有 m4a 转换为 mp3 我的代码如下所示:
find . -name '*.m4a' -print0 | while read -d '' -r file; do
ffmpeg -i "$file" -n -acodec libmp3lame -ab 128k "${file%.m4a}.mp3";
done
但它只适用于第一个 mp3 文件,接下来会显示错误:
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>]
这些文件包含空格和括号。
在此处继续阅读:Bash 常见问题解答 89
所以代码应该是这样的:
为什么不只使用 的
-exec
论点find
?那么find -iname '*.m4a' -exec ffmpeg -i {} -n -acodec libmp3lame -ab 128k {}.mp3 \;
然后运行rename
命令?您的问题是关于将 m4a 转换为 mp3。
这是我已经使用了一段时间的 bash 脚本。
调整
avconv
命令以满足您的需要。