Answers:
这将连接两个mp3文件,结果元数据将是第一个文件的元数据:
ffmpeg -i "concat:file1.mp3|file2.mp3" -acodec copy output.mp3
这是因为,对于ffmpeg,整个“ concat:”部分是单个“输入文件”,并且其元数据将属于第一个串联文件。如果要使用第二个文件中的元数据,则必须将其添加为虚拟输入文件,并将其元数据映射到输出的元数据:
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
-acodec
意味着将使用音频编解码器,并且copy
意味着仅进行混合和解混合,而不会进行编码/转码(即非常快,并且没有质量损失)
Mp3Wrap-命令行实用程序,可将多个MP3文件包装到一个可播放的MP3中,而不会丢失文件名或ID3信息,并且无需重新编码。还支持在MP3内归档非音频数据,例如播放列表,信息文件和封面图像。这些文件可以稍后解压缩(例如使用mp3splt);普通的MP3解码器可以将整个音频流作为一条长轨道播放。
mp3val
-它将报告同步错误。这意味着它将不会在Chrome 64+中的第一个块之后播放(请参见bugs.chromium.org/p/chromium/issues/detail?id=794782和bugschromium.org/p/chromium/issues/detail?id = 806601#c10)
这会将充满MP3的文件夹串联到一个MP3文件中:
1)保存要连接的MP3文件列表,例如,
$ cat mylist.txt
file '/tmp/01.mp3'
file '/tmp/02.mp3'
file '/tmp/03.mp3'
file '/tmp/04.mp3'
file '/tmp/05.mp3'
file '/tmp/06.mp3'
file '/tmp/07.mp3'
2)运行下面的命令(-safe 0
被不需要如果mylist.txt使用相对路径来代替):
$ ffmpeg -f concat -safe 0 -i mylist.txt -c copy output.mp3
如果需要脚本,最好使用ffmpeg解决方案。但是,如果您只需要一个应用程序来完成类似的工作,则可以尝试Audacity。它是开源和跨平台的。我没有用它来加入mp3,但我用它来裁剪掉mp3中的部分并在最后淡出它们。我敢打赌,您也可以加入mp3并相互淡入淡出。