更新

更新

cat两者都不mp3wrap为我工作。他们合并文件,但是在播放生成的文件时,音频长度信息是错误的。也就是说,它显示第一个部分(第一个文件的部分)的长度,然后是第二个......的长度。等等。

其他可能有效的替代方案?过去我很满意,ffmpeg但它已被弃用。

答案1

ffmpeg -i "concat:1.mp3|2.mp3|3.mp3" -acodec copy output.mp3

如果你使用Python,你可以使用子进程

import subprocess

subprocess.call(['ffmpeg', '-i', 'concat:1.mp3|2.mp3|3.mp3', '-acodec', 'copy', 'output.mp3'])

您还可以在文件中包含 mp3 的路径。

# audio-to-process.txt
file '/path/to/mp3-1'
file '/path/to/mp3-2'
file '/path/to/mp3-3'

然后,

ffmpeg -f concat -safe 0 -i audio-to-process.txt -c copy output

如果文件路径是相对的,则不需要 -safe 0 标志。

ffmpeg 连接 api API 页面

答案2

我用sox。为了连接 mp3 文件:

 sox file1.mp3 file2.mp3 file3.mp3 output.mp3

Sox 还可用于执行许多其他声音操作。

更新

为了避免许可证问题,某些 Linux 发行版默认不支持 sox mp3。不过一般都会有一个包...

  • 软呢帽:sudo dnf install sox-plugins-freeworld
  • debian 和朋友sudo apt-get install libsox-fmt-mp3 (未经测试...)

答案3

我可以推荐linux版本吗大胆?非常用户友好,它是针对音频文件构建的

答案4

一个简单的方法:

  1. cd进入文件目录
  2. 跑步ffmpeg -f concat -safe 0 -i <(for f in ./*.mp3; do echo "file '$PWD/$f'"; done) -c copy ./output.mp3

仅当您 cd 进入实际目录而不是其快捷方式时,这才有效。

更多内容请见有关 Concatenate 的 ffmpeg wiki 页面

相关内容