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 标志。
答案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
一个简单的方法:
cd
进入文件目录- 跑步
ffmpeg -f concat -safe 0 -i <(for f in ./*.mp3; do echo "file '$PWD/$f'"; done) -c copy ./output.mp3
仅当您 cd 进入实际目录而不是其快捷方式时,这才有效。