2011-06-02 113 views
5

我已經搜索了高和低,並找不到任何像樣的MP3解碼器=/C++跨平臺MP3解碼器?

我需要一個將在gcc/linux下編譯的。

我能找到的最接近的是libmad,它根本沒有任何文檔,我能找到的唯一例子就是它的主頁上的一個,它非常複雜。

有沒有人知道我在哪裏可以找到一個?

+0

你看着跛腳? http://lame.sourceforge.net/ – 2011-06-02 03:11:41

+0

是的...我的印象是,它只是爲編碼..我再檢查 – bitwise 2011-06-02 03:14:12

+0

看命令行頁面:http://lame.cvs。 sourceforge.net/viewvc/lame/lame/USAGE我可以看到至少有幾個看起來很有前途的選項,比如'--decode'和'--mp3input'。這將暗示底層圖書館有能力做你需要的東西,我會想象的。無論它是否具有很好的,封裝良好的解碼MP3的C++函數,都是另一回事...... – 2011-06-02 03:17:25

回答

4

我以前用過MAD (MPEG Audio Decoder),效果很好,所以我不會這麼快就放棄它。 MAD特別設計用於在沒有浮點運算的情況下在CPU上獲得良好性能,例如,在爲移動設備開發應用程序時,這是理想的。
我想推薦你看看this project (GSPlayer)的源代碼。它是Windows CE/Windows Mobile的音頻播放器,它使用libmad。代碼功能齊全,整潔,不會太大,所以它可以幫助您瞭解如何在您自己的項目中使用libmad。

雖然您可能必須驗證libmad的許可證(GPL),因爲它可能不適合您的需要。

+1

他已經有許可證的痛苦來處理,只是通過擁有該功能。該死的軟件專利。 (他也已經在這個問題中引用了這個) – 2011-06-02 03:30:13

+2

我終於找到了它的工作......但直到我看到一些FMOD的例子,這使得它非常明顯,程序員有責任提供自己的讀取和寫功能。在另一個我用來參考的解碼示例中,ogg vorbis lib從文件中讀取併爲自己填充緩衝區= /但我想這種做法是爲了提高可移植性而完成的?我絕對需要這個。謝謝您的幫助 :) – bitwise 2011-06-02 17:16:10

2

ffmpeg應該能夠毫無困難地處理MP3。實際上訪問這些功能有多容易,但我不能說。

3

你看過Lame

看看它的command-line page,我可以看到至少有幾個看起來很有前途的選項,比如--decode--mp3input。這將暗示底層圖書館有能力做你需要的東西,我會想象的。無論它是否具有很好的,封裝良好的用於解碼mp3的C++函數,都是另一回事。

正如在評論中指出的那樣,您應該仔細檢查許可和專利協議。

+0

+1真正是第一個(也許將是最好的)答案。 – 2011-06-02 03:29:26