2010-03-11 33 views
1

Wav文件支持不同的编码,包括mp3。有没有一个C/C++库,可以从未压缩的wav产生mp3编码的wav文件?如果不是,那么开始实施一个最好的地方是什么?用于WAV文件的MP3编解码器

+0

http://en.wikipedia.org/wiki/Container_format_(digital) – slf 2010-03-11 16:13:49

回答

0
  1. 的最佳方式indead使用拉梅(如果你不怕专利问题)。您可以使用lame和lame_enc.dll这两个来源。使用lame_enc.dll更容易。 至于RIFF-WAV容器:它只是根据RIFF-WAV规范创建RIFF-WAV文件。

  2. 还有另一种可能性。例如使用ACM编解码器。

但是在任何情况下,您都应该能够在RIFF-WAV标头中加入声音流。这可以手工完成(我认为最简单的方法),或者使用一些免费的库(看起来libsnd可以做到这一点)。

+0

实际上,libsnd对于不支持MP3非常明确。 – 2010-03-13 10:38:11

+0

您应该区分支持音频流格式和文件类型(容器)。无需使用allinone工具来制作RIFF-WAV MP3文件。您需要:1)MP3编码引擎(跛脚,ACM编解码器,DirectShow过滤器); 2)将RIFF-WAV标题添加到MP3流的能力。对于第2项,您可以从将纯MP3文件转换为RIFF-WAV MP3文件开始。 参见: MPEGLAYER3WAVEFORMAT(MSDN) RIFF-WAV规范(例如http://www.sonicspot.com/guide/wavefiles.html) http://a-gamyl.hp.infoseek.co.jp/Clang/ dgwriff/driff.cpp http://www.koders.com/cpp/fid1163D7D7C554A5DD192C098EE9918D8B8AD8C618.aspx – VitalyVal 2010-03-13 12:21:40

0
+0

不幸的是,LAME在MPEG容器中生成MP3,而不是RIFF容器。 – 2010-03-11 16:06:20

+0

这是我查过的第一个地方,谢谢。 Ignacio说,它似乎无法创建wav文件。 – 2010-03-11 20:49:00