2010-03-11 37 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