我有很多很多 mp3 文件,我想将它们合并到一个文件中。我使用了命令行方法

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

但是当它们很多并且它们的命名不一致时,这是一个痛苦。时间似乎也永远不会到来。

有帮助吗?

解决方案

正如 Thomas Owens 指出的那样,简单地连接文件将使多个 ID3 标头分散在生成的连接文件中 - 因此时间/比特率信息将非常错误。

您将需要使用一个可以为您组合音频数据的工具。

mp3包装 非常适合这种情况 - 它旨在将 MP3 文件连接在一起,无需对数据进行解码和重新编码(这会导致音频质量损失),并且还将智能地处理 ID3 标签。

还可以使用 mp3splt 工具将生成的文件拆分回其组成部分 - mp3wrap 将信息添加到 IDv3 注释中以实现此目的。

其他提示

大卫的回答 正确的是,仅连接文件将使 ID3 标记分散在内部(尽管这通常不会影响播放,因此您可以在 UNIX 上执行“copy /b”或“cat a.mp3 b.mp3 >合并.mp3”捏)。

然而,mp3wrap 并不是将多个 MP3 合并为一个“干净”文件的正确工具。它实际上插入了自己的ID3,而不是使用ID3 自定义数据格式 MP3 帧之间(“换行”部分),这会导致播放问题,尤其是在 iTunes 和 iPod 上。虽然文件 将要 如果您只是让它们从头到尾运行(因为播放器将跳过这些任意非 MPEG 字节),则可以正常播放,文件持续时间和比特率将被错误报告,从而中断查找。此外,mp3wrap 会清除所有 ID3 元数据,包括封面艺术,并且无法使用正确的文件长度更新 VBR 标头。

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

这是一个 很好的解释 这些问题和方法(实际上是两个)组合 MP3 文件并生成原始元数据完整的“干净”最终结果 - 它是命令行,因此适用于 Mac/Linux/BSD 等。它用:

  • mp3猫 将 MPEG 数据帧组合成一个连续的文件,然后
  • id3cp 将所有元数据复制到组合文件中,最后
  • VBRF修复 更新 VBR 标头。

对于 Windows GUI 工具,请查看 合并MP3 ——它会照顾一切。(VBRFix 也以 GUI 形式提供,但它不进行连接。)

使用 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

然后,在运行时,将文件连接在一起:

cat intermediateA.mp3 intermediateB.mp3 > output.mp3

最后,通过该工具运行它们 MP3值 修复任何流错误而不强制完全重新编码:

mp3val output.mp3 -f -nb

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

您是否有一种想要使用的语言可供选择,或者是否不重要?这将影响哪些库可以支持您想要的操作。

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

播放列表制作人 正是这样做的,将它们解码并重新编码为组合的 MP3。它专为创建混合磁带或简单的播客而设计,但您可能会发现它很有用。

(披露:我编写了该软件,如果您购买专业版,我就会获利。Lite 版本是免费版本,有一些限制)。

MP3 文件有您需要尊重的标头。

你可以使用类似的库 开源音频库项目 并围绕它编写一个工具。或者您可以使用能够理解 mp3 文件的工具,例如 大胆.

如果你想要什么 自由的 具有简单的用户界面,使 完全干净 mp3我推荐 MP3连接器.

特征:

  • 剥离 ID3 数据(ID3v1 和 ID3v2.x)并且不添加它自己的数据(与 mp3wrap 不同)
  • 无损连接(不对 .mp3 进行解码和重新编码)。不需要编解码器。
  • 简单的用户界面(见下文)
  • 内存使用率低(使用流)
  • 非常快(与 mp3wrap 相比)
  • 我写的:) - 所以你可以请求功能,我会添加它们。

MP3 Joiner app

链接:

正如大卫所说, mp3包装 是要走的路。但是,我发现它没有修复音频长度标头,因此 iTunes 拒绝播放整个文件,即使所有数据都在那里。(我合并了三个 7 分钟的文件,但它只看到了前 7 分钟。)

我挖出来了 这篇博文, ,其中解释了如何解决此问题以及如何从原始文件复制 ID3 标签(mp3wrap 本身会删除您的 ID3 标签)。或者只是复制标签(使用 id3cp 来自 id3lib), 做:

id3cp original.mp3 new.mp3

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

我以前没听说过 mp3wrap。看起来很棒。我猜有人也在某个地方把它做成了图形用户界面。但是,只是为了回应原来的帖子,我编写了一个执行 COPY /b 方法的 gui。所以,在幕后,阳光下没有什么新鲜事,但是如果您有很多文件需要合并,并且您不想重新编码 AND 每组文件,那么该程序的目的就是让过程变得不那么痛苦。合并的比特率相同。如果您有该软件(并且您使用的是 Windows),请查看 Mp3Merge: http://www.leighweb.com/david/mp3merge 看看这是否是您要找的。

就我个人而言,我会使用类似 mplayer 的音频传递选项,例如 -oac copy

而不是使用命令行来做

复制 /b 1.mp3+2.mp3 3.mp3

你可以改为使用 《重命名》 将所有 MP3 片段重命名为一系列基于某种计数器按顺序排列的名称。然后您可以使用相同的命令行格式,但稍作更改:

复制 /b *.mp3 输出名称.mp3

假设您同时翻录所有这些 MP3 片段,并且它们具有相同的音频设置。当我将 .aa 格式的有声读物转换为单个 .mp3 格式时,效果非常好。我必须将所有 .aa 文件刻录到 9 张 CD,然后翻录所有 9 张 CD,最后只剩下大约 90 个 mp3。a55真的很痛苦。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top