我正在寻找在服务器上加入多个音频文件的可能性。
示例: audio_01.mp3 / 33sec + audio_02.mp3 / 22sec = audio_03.mp3 / 55sec
服务器 - 基于Linux,我的主要语言是PHP(以防万一)
你能指点我正确的方向吗?
提前致谢!
答案 0 :(得分:0)
使用FFMPEG
这将连接两个mp3文件,结果元数据将是第一个文件:
ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3
这是因为,对于ffmpeg来说,整个" concat:" part是单个"输入文件",其元数据将是第一个连接文件。如果要使用第二个文件中的元数据,则必须将其添加为虚拟输入文件,并将其元数据映射到输出的元数据:
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
转储metadatas并构建新元数据后,可以使用-metadata将其添加到输出文件中,并且可以通过从负输入文件编号设置-map_metadata映射来禁用元数据复制。这将设置名称值而不设置其他元数据:
ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy -metadata "title=Some Song" test.mp3 -map_metadata 0:-1