【问题标题】:Is MP3 mixing possible?MP3混音可以吗?
【发布时间】:2010-11-23 15:20:15
【问题描述】:

对于 2 个 mp3 流,是否可以在不解压缩和重新压缩的情况下混合具有不同混音值的相同比特率的两个流?

例如,如果我们有两首歌曲已经以 mp3 192 kbit 编码,并且我们想要创建长度为 5 秒的交叉淡入淡出,我们应该将一首歌曲的最后几帧与第二首歌曲的相同帧数混合,进入歌曲的混合率从 0 增加到 100,关闭一首歌曲的混合率从 100 增加到 0。

【问题讨论】:

  • 我猜你不能使用 Audacity 或 Garage Band 来制作最终产品?
  • 不,我说的是以编程方式混合它,看在上帝的份上。这是堆栈溢出,对吧?
  • 除非您使用硬件解码器,否则无论如何它都会作为未压缩样本发送到声卡。只需对其进行解码、混合,然后将其发送到声音缓冲区。

标签: audio mp3


【解决方案1】:

据我所知,mp3 压缩大致是这样的:

  1. 获取一帧样本
  2. 将它们转换为频率范围
  3. 丢弃低于某个阈值(即压缩)的频率

因此,如果您只有 mp3 数据,则应该有频率块/帧(带索引)。要混合流,您必须从每个流中获取相应的帧并构造一个新帧,例如由 f(idx) = fA(idx) + fB(idx) /2 组成。请注意,帧具有不同的长度,因为并非所有索引 (idx) 都存在,这是因为某些频率会因压缩而下降。我希望这对开始有帮助。我知道这不是一个完整的解决方案。

【讨论】:

  • 我的想法正是如此——但有一些问题(其中很多)需要关注。我知道在框架的某个地方有可以混合的频域数据。但是,稍后,新框架的某些部分应该被丢弃,等等......
  • @Daniel M.:我认为您不会想要删除“新框架的一部分”,因为结果应该始终高于阈值。我能想象的唯一方法是,如果由于两个原始文件中相同(!)频率的相位不同而产生干扰。但是如果你能找到一个文档告诉你 MP3 文件的数据结构,你可以很容易地看到你是否有相位信息。如果是这样,您可以利用它,然后可能会降低一些频率。然而,添加也应该在不降低频率的情况下工作。你只会缺少(额外的)压缩。
猜你喜欢
  • 1970-01-01
  • 2011-03-20
  • 1970-01-01
  • 1970-01-01
  • 2013-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多