如何在服务器上加入多个 mp3(wavs)?

How to join several mp3s (wavs) on server?

我正在寻找在服务器上将多个音频文件合二为一的可能性。

示例: audio_01.mp3 / 33sec + audio_02.mp3 / 22sec = audio_03.mp3 / 55sec

服务器 - 基于 Linux,我的主要语言是 PHP(以防万一)

你能给我指明正确的方向吗?

提前致谢!

使用 FFMPEG

这将连接两个 mp3 文件,生成的元数据将是第一个文件的元数据:

ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3

这是因为,对于 ffmpeg,整个 "concat:" 部分是一个单独的 "input file",其元数据将属于第一个串联文件。如果您想改用第二个文件中的元数据,则必须将其添加为虚拟输入文件并将其元数据映射到输出的元数据:

ffmpeg -i "concat:file1.mp3|file2.mp3" -i file2.mp3 -acodec copy test.mp3 -map_metadata 0:1

如果您想从这两个元数据构建您的元数据,则必须手动完成。您可以使用

转储文件的元数据
ffmpeg -i file1.mp3 -f ffmetadata file1.metadata

转储元数据并构建新元数据后,您可以使用 -metadata 将其添加到输出文件中,并且可以通过从负输入文件编号设置 -map_metadata 映射来禁用元数据复制。这设置了一个名称值,没有其他元数据:

ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy -metadata "title=Some Song" test.mp3 -map_metadata 0:-1