我正在寻找一个可用于处理音频文件的库。基本上我想做的是:

  1. 加载MP3 / WAV文件

  2. 获取文件的15秒剪辑

  3. 在其上覆盖另一个MP3 / WAV文件

  4. 渲染为新的MP3 / WAV文件

有帮助吗?

解决方案

您可以使用任何常见的MP3编解码器API对流进行解码,使用它并再次保存。例如,您可以对此部分使用 libLAME

至于混音,你可以自己做(例如,天真地,加两个样本并除以两个 - 听起来可能听起来不太好),或找到合适的库。

您可能也对最佳c音频库linux

中的相关Stack Overflow问题感兴趣

其他提示

由于专利原因,它不支持MP3,但 libsndfile 非常好用开源(LGPL)库,用于加载和保存各种其他音频格式的音频,包括WAV。

对于叠加部分,一旦你将样本加载到内存中就很容易了......你只需将文件A中的每个样本与文件B中的相应样本相加(并可能将得到的样本值缩小一点)通过乘以常数,如果你担心裁剪)。

来自sox的图书馆 libsox (而不是 http://libsox.sourceforge.net/ 这是完全不同的东西)似乎有一个可以使用的简单API。文档提供了以下立体声到单声道混音的示例:

  

将样本表示为整数即可   处理时会导致问题   音频。例如,如果有效果   混合左右声道进入   一个单声道通道是使用的   线

    *obuf++ = (*ibuf++ + *ibuf++)/2;
  从那以后可能会发生失真   中间添加可以溢出32   位。这条线

    *obuf++ = *ibuf++/2 + *ibuf++/2;
  

会解决溢出问题   (以牺牲最少为代价   重要的一点)。

您可以尝试一下这个 http://terminatorx.org/ 我正在考虑做类似的事情。

一个非常好的C ++音频/合成器库是 STK 。它有大量的东西,并且在BSD / MIT类型的许可下,即你可以用它来开发商业产品。支持Wav但不支持MP3。对于MP3,你可以使用 irrklang ,这是免费的非商业用途(也是MAD by underbit,被大量人使用。)

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