![合并多个 MP3 文件(无损)](https://linux22.com/image/1254570/%E5%90%88%E5%B9%B6%E5%A4%9A%E4%B8%AA%20MP3%20%E6%96%87%E4%BB%B6%EF%BC%88%E6%97%A0%E6%8D%9F%EF%BC%89.png)
如何将多个 MP3 文件合并为一个?“cat”和“mp3wrap”都不好用,因为它们会生成非标准 MP3 文件。我知道我可以使用 audacity,但是当你需要将 1000 个 MP3 文件合并为一个时,这需要的时间太长了。
有什么建议么?
答案1
使用ffmpeg或者类似的工具将所有 MP3 转换为一致的格式,例如
ffmpeg -i originalA.mp3 -f mp3 -ab 128kb -ar 44100 -ac 2 intermediateA.mp3
ffmpeg -i originalB.mp3 -f mp3 -ab 128kb -ar 44100 -ac 2 intermediateB.mp3
然后,在运行时,将您的文件连接在一起:
cat intermediateA.mp3 intermediateB.mp3 > output.mp3
最后,通过工具运行它们MP3值修复任何流错误而不强制进行完全重新编码:
mp3val output.mp3 -f -nb
(来源)
答案2
您可以使用以下方式以编程方式执行此操作ffmpeg的连接解复用器。
首先创建一个名为inputs.txt的文件,其中包含如下行
file '/path/to/input1.mp3'
file '/path/to/input2.mp3'
file '/path/to/input3.mp3'
...等等。然后运行以下 ffmpeg 命令:
ffmpeg -f concat -i inputs.txt -c copy output.mp3
使用 bash 可以轻松生成inputs.txt为了循环(这可能也可以用 Windows 批处理 for 循环来完成),假设您想按字母顺序合并文件。这将匹配每一个*.mp3 在工作目录中,但可以轻松修改:
for f in ./*.mp3; do echo "file '$f'" >> inputs.txt; done
## Alternatively
printf "file '%s'\n" ./*.mp3 >> inputs.txt
也可以在一行中完成整个操作,避免使用以下命令创建中间列表文件流程替代:
ffmpeg -f concat -i <(printf "file '%s'\n" ./*.mp3) -c copy output.mp3
答案3
您可以使用免费mp3猫:
mp3cat indir - > outfile.mp3
答案4
Freemake 音频转换器非常棒:
http://www.freemake.com/free_audio_converter/
转换和/或合并音频文件。
下载并安装 Freemake 后(注意不要安装 Ad-Aware Web Companion、TuneUp Utilities、Opera,或将 Yahoo! 设置为主页),启动该程序。单击窗口左上角的 +Audio 按钮,然后选择要合并/转换的文件。
单击窗口右上角的“加入文件”开关。
选择您想要的音频类型(可能是无损 FLAC)
它将允许您自定义音频设置和输出文件夹。准备好后,单击转换。