2008-09-15 67 views
52

我有很多很多的mp3文件,我想合并成一个文件。我用命令行方式什么是合并mp3文件的最佳方式?

copy /b 1.mp3+2.mp3 3.mp3 

,但它是一个痛苦时,有很多他们和他们的namings不一致。时间似乎永远也不会出现。

+1

阿使用的音乐文件在dos二进制合并工具是不建议所有。音乐文件附带标题,指示有关音乐的信息。这是不一致的原因。 – 2012-12-28 15:14:27

+0

只需使用以下命令即可完成此操作:`rm -f all.mp3 && cat * .mp3> temp_file.dat;睡1; mv temp_file.dat all.mp3 && echo && echo“您的mp3文件已合并为一个文件 - all.mp3”&& echo`。如果你觉得很难在这里阅读,你可以从这个链接获取它(https://gist.github.com/bradparks/12444ff9926824decbc9) – 2015-12-04 03:38:34

+0

如果你不关心重新编码,你可以使用类似`ffmpeg -f concat -i <(printf“文件'%s'\ n”/absolute/path/to/*.mp3)-aq 2 concatenated.mp3`。 `-aq 2`对应``lame`中的`-V2`。 – user4669748 2016-05-03 11:58:27

回答

46

正如托马斯·欧文斯指出,简单地串联文件会留下散落整个所得连结文件ID3多个头 - 所以时间/比特率信息将大错特错。

您将需要使用一种工具,它可以为您合并音频数据。

mp3wrap将是理想的选择 - 它旨在将MP3文件连接在一起,无需对数据进行解码+重新编码(这会导致音频质量的损失),并且还会智能处理ID3标签。

生成的文件也可以使用mp3splt工具拆分回其组成部分 - mp3wrap将信息添加到IDv3注释中以允许此操作。

+0

我真正想要的是一个GUI来对它们进行重新排序并将它们输出为一个带有正确标题的文件。 我结束了重命名文件,让他们以正确的顺序和使用 mp3wrap FullDisk.mp3 * .MP3 – 2008-09-15 14:40:32

+2

@DanWilliams然后检查MP3乔伊纳:http://mp3joiner.net/或低于:) – James 2013-07-02 10:39:37

5

时间问题与MP3文件的ID3标题有关,这是您的方法在整个文件被复制时未考虑到的问题。

你有选择的语言,你想使用或没有关系?这将影响支持所需操作的库。

+0

这只是一个个人项目,所以我不在乎语言。简单是最好的,我最大的问题是,这似乎是我不应该花太多时间,但有。 在回答你的问题VB.NET。 谢谢 – 2008-09-15 13:09:06

0

个人而言,我会使用类似的mplayer与音频通不过的选择如-oac复制

3

MP3文件包含您需要尊重的标题。

你可以使用类似Open Source Audio Library Project的库并在其周围编写一个工具。 或者你可以使用一个工具来理解mp3文件,如Audacity

1

我会用Winamp来做到这一点。创建一个你想合并到一个文件的播放列表,选择Disk Writer输出插件,选择文件名,你就完成了。你将得到的文件将是正确的MP3文件,你可以设置比特率等。

2

正如大卫所说,mp3wrap是要走的路。但是,我发现它没有修复音频长度标题,所以即使所有数据都存在,iTunes仍然拒绝播放整个文件。 (我合并了三个7分钟的文件,但它只看到了最初的7分钟。)

我挖起this blog post,它解释了如何解决这个问题以及如何从原始文件复制ID3标签本身,mp3wrap会删除你的ID3标签)。或只复制标记(使用id3cp从id3lib),这样做:

id3cp original.mp3 new.mp3 
1

我没有听说过mp3wrap之前。看起来很棒。我猜测有人把它变成了一个gui。但是,为了回应原来的帖子,我写了一个支持COPY/b方法的gui。因此,在封面下,太阳下没有什么新东西,但是如果你有很多文件需要合并,那么这个程序就是让这个过程变得不那么痛苦......并且你不想重新编码和每一组文件合并是相同的比特率。如果你有(并且你在Windows上),请查看Mp3Merge:http://www.leighweb.com/david/mp3merge,看看你是否在寻找。

18

使用ffmpeg或类似工具将所有MP3转换为一致的格式,例如,

ffmpeg -i originalA.mp3 -f mp3 -ab 128kb -ar 44100 -ac 2 intermediateA.mp3 
ffmpeg -i originalB.mp3 -f mp3 -ab 128kb -ar 44100 -ac 2 intermediateB.mp3 

然后,在运行时,Concat的文件一起:

cat intermediateA.mp3 intermediateB.mp3 > output.mp3 

最后,运行他们通过工具MP3Val修复任何流错误,而不强迫一个完整的重新编码:

mp3val output.mp3 -f -nb 
0

而不是使用命令行来做

copy /b 1.mp3+2.mp3 3.mp3

您可以改为使用"The Rename"将所有MP3片段重命名为基于某种计数器的一系列名称。然后,你可以只使用相同的命令行格式,但它改变一点点:

copy /b *.mp3 output_name.mp3

这是假设你撕开所有这些片段的MP3的同时,他们具有相同的音频设置。当我将.aa中的音频书籍转换为单个.mp3时,我工作得非常好。我必须将所有.aa文件刻录到9张CD上,然后再刻录所有9张CD,然后剩下大约90张mp3。在a55真的很痛苦。

4

我真正想要的是一个GUI来重新排序并输出它们作为一个文件

Playlist Producer正是这么做的,解码和重新编码它们为组合MP3。它专为制作混音磁带或简单的播客而设计,但您可能会发现它很有用。 (披露:我写了这个软件,如果你购买了专业版,我就会获利),Lite版是一个免费版本,但有一些限制)。

51

我知道这是一个老问题,但我对你有一个更好的答案。大卫的答案是正确的,只是连接文件将ID3标签分散在内部(尽管这通常不影响播放,所以你可以做“copy/b”或在UNIX上“cat a.mp3 b.mp3> combined.mp3”在捏)。

但是,mp3wrap并不完全是将多个MP3合并为一个“干净”文件的正确工具。实际上,它并没有使用ID3,而是将其自己的custom data format插入到MP3帧(“换行”部分)中,这会导致回放问题,特别是在iTunes和iPod上。虽然文件播放的很好,如果你让它们从头到尾运行(因为播放器会跳过这些是任意非MPEG字节),文件持续时间和比特率将不正确地报告,这会中断搜索。另外,mp3wrap会清除所有ID3元数据,包括封面,并且无法使用正确的文件长度更新VBR标题。

mp3cat本身会产生一个很好的连接数据文件(因此,比mp3wrap更好),但它也会剥离ID3标签,并且无法用正确长度的连接文件更新VBR标头。

这里有一个good explanation这些问题和方法(实际上是两个)结合MP3文件,并产生一个“干净”的最终结果与原始的元数据完好无损 - 它的命令行,所以适用于Mac/Linux/BSD等。它使用:

  • mp3cat到MPEG数据帧只合成为连续文件,然后
  • id3cp超过复制所有元数据,以将合并的文件,最后
  • VBRFix更新VBR报头。

对于Windows GUI工具,请看Merge MP3 - 它需要处理所有事情。 (VBRFix还配备在图形用户界面的形式,但它不会做加盟。)

3

如果你想要的东西免费用一个简单的用户界面,使一个完全干净 MP3我建议MP3 Joiner

特点:

  • 条ID3数据(ID3v1和ID3v2.x),不添加它自己的(不像mp3wrap)
  • 无损连接(不解码和重新编码.mp3s)。不需要编解码器。
  • 简单的用户界面(见下文)
  • 低内存占用(使用流)
  • 非常快(比mp3wrap)
  • 我写的:) - 所以你可以请求的功能,我将它们添加。

MP3 Joiner app

链接:

  • MP3乔伊纳网站:Here
  • 最新的安装程序:Here
相关问题