使用 ffmpeg 将 wav 文件批量转换为 m4a 文件
Batch convert wav to m4a files using ffmpeg
我正在尝试在 Mac OS Mojave 上使用终端中的 ffmpeg 将数千个 wav 文件批量转换为 96k m4a 文件。
我正在尝试使用以下代码:
for f in *.wav; do ffmpeg -i "$f" -c:a libfdk_aac -b:a 96k “${f%.wav}.m4a”; done
我收到以下错误:
无法为“file.m4a”找到合适的输出格式
“file.m4a”:参数无效
有人可以帮忙吗?
智能引号被视为文件名的一部分。
请改用普通引号:
for f in *.wav; do ffmpeg -i "$f" -c:a libfdk_aac -b:a 96k "${f%.wav}.m4a"; done
如果您有很多文件要转换,您可能希望同时进行:
find . -name '*. wav' -type f -print0 | parallel -0 ffmpeg -i {} -c:a libfdk_aac -b:a 96k {.}.m4a
查看 this doc 了解如何使用 parallel
。如果您没有该工具,请使用 brew install parallel
.
安装它
Scott 的回答也很好。我喜欢 parallel
因为它也让我很容易,例如修改输出文件的名称。
我正在尝试在 Mac OS Mojave 上使用终端中的 ffmpeg 将数千个 wav 文件批量转换为 96k m4a 文件。
我正在尝试使用以下代码:
for f in *.wav; do ffmpeg -i "$f" -c:a libfdk_aac -b:a 96k “${f%.wav}.m4a”; done
我收到以下错误:
无法为“file.m4a”找到合适的输出格式
“file.m4a”:参数无效
有人可以帮忙吗?
智能引号被视为文件名的一部分。 请改用普通引号:
for f in *.wav; do ffmpeg -i "$f" -c:a libfdk_aac -b:a 96k "${f%.wav}.m4a"; done
如果您有很多文件要转换,您可能希望同时进行:
find . -name '*. wav' -type f -print0 | parallel -0 ffmpeg -i {} -c:a libfdk_aac -b:a 96k {.}.m4a
查看 this doc 了解如何使用 parallel
。如果您没有该工具,请使用 brew install parallel
.
Scott 的回答也很好。我喜欢 parallel
因为它也让我很容易,例如修改输出文件的名称。