我可以将 mp3 相互附加吗?这会产生音频伪影吗?

问题描述 投票:0回答:1

我想用几个较短的 mp3 创建一个较长的 mp3。

当然,我可以使用

ffmpeg
lame
之类的东西来创建长mp3。但我想知道,既然 mp3 不是框架,我可以简单地将 mp3 相互附加吗?

为什么?我在 Web 应用程序中创建这些文件,只需将它们相互附加就会比任何其他方式更容易、更便宜。

所以我有一个例子,我刚刚这样做了,结果如下:https://drive.proton.me/urls/62WYEEJX88#q5gjZYQLkbd1

所以我注意到:

  • 用Windows Media Player播放这个文件,听起来很完美!
  • 用chrome播放,文件之间有一些奇怪的噪音。

但是为什么它在 chrome 中表现不佳呢? 文件开头是否存在诸如垃圾数据之类的内容导致此问题? 或者这是因为音频不能以这种方式工作,如果只是附加文件,它们之间就没有“平滑”过渡?

mp3
1个回答
0
投票

不幸的是,事情没那么简单。

首先,您的源文件需要具有采样率和通道数。虽然从理论上讲,这可能会从一帧到下一帧发生变化,但我从未听说过有哪个玩家能够做到这一点。请注意,比特率可以任意更改。

下一个问题是大多数 MP3 文件中都包含其他垃圾,例如 ID3 标签。根据版本的不同,这些标签可能位于文件的开头或结尾。

一旦你清理了所有这些东西并准备好切割和拼接,现在你就会遇到钻头储存器的问题。在大多数 MP3 流中,帧实际上并不是独立存在的。它们不可单独解码。比特存储库有点像恒定比特率流中稍微可变的比特率。如果有一个易于编码的段落,编码器可能会为更复杂的不同帧打包附加数据。整个流最终具有恒定的比特率,但这些比特可以更有效地使用以提供更高质量的音频。

最后,请注意,MP3 通常以一两帧开始进行初始化。如果您在曲目的开头/结尾处有静音,那么这不是您的问题,但您可能会阅读有关“无间隙 MP3”问题的信息。

这些问题都不是无法克服的,但我想你会发现让 FFmpeg 来做这项工作是可行的方法,而且比 DIY 更便宜,除非你所有的源材料都提前特别准备好进行拼接。

© www.soinside.com 2019 - 2024. All rights reserved.