2011-11-14 79 views
6

是否有庫或簡單的C或C++文件將MP3 解碼爲樣本?開放源代碼或公共領域mp3解碼器?

許可應該是公有領域或更寬鬆的許可之一。 MIT,X11等。

不是GPL或LGPL。 LGPL很好,但在某些情況下(在iOS上),它是in practice useless 。即使在更加開放的平臺,如Win32中,Linux和OSX你必須給信用文檔等,在LGPL 的副本帶來的GPL你的應用程序等


是內部的,我知道mp3格式已獲得專利。最後一項專利將於2017年12月30日到期。13 patents expired, 7 to go

working as intended。這完全是關於視角。

+0

您能否解釋爲什麼LGPL不夠寬容?這將影響我們可以推薦的項目。 –

+0

類似於:http://stackoverflow.com/questions/3963742/good-mp3-or-ogg-decoder-written-in-c – kbyrd

+0

我想將代碼嵌入到應用程序中,這可能會涉及到更改LGPL代碼本身,然後我會分發一個補丁,這是我不想要的。但是,LGPL可能會有用。 LAME,我認爲其他一些人是LGPL。 libmad非常好,但是甚至是GPL。 –

回答

3

嘗試使用LGPL的minimp3 libray。非常小巧,便攜且使用簡單。 http://keyj.emphy.de/minimp3/

+0

當我下載壓縮文件時,我收到了來自chrome的病毒警告 – Erro

1

如果你不自己編輯庫(我知道你說你喜歡編輯代碼,但看看你是否可以在函數調用之外而不是在庫的調用之外進行編輯),並使用直接編譯dll你不需要分發你自己的代碼,你可以將人指向原始項目。

如你在OP的評論中所說的那樣,LAME library工作得很好,只是抵制編輯dll的誘惑,只編輯調用dll的代碼,你應該可以使用它完全像你想要的。


UPDATE:

正如Hasturkun LAME is LGPL for encoding, but is GPL for decoding指出。因此,LAME並不是一個很好的工具,但您的代碼中的修改代替LGPL庫的原始聲明仍然不錯。

+0

我知道,+1是爲了努力,但不是我所追求的。我會考慮它。 –

+0

你是說你不想讓你的程序有單獨的exe和dll嗎?如果您使用安裝程序,用戶沒有任何額外的工作要做,它會將您的主exe文件和LAME編碼器解壓到安裝路徑。爲了遵守LGPL,您只需在程序中的某處提供版權聲明。 –

+1

我寧願沒有安裝程序是的。 :-)但我們會看到,現實可能會干擾計劃。 :-) –

3

你應該能夠使用libmpg123,這下LGPL 2.1可用。只要您將其用作外部庫,您應該可以獲得許可。

從LGPL 摘錄2.1

「5不包含所述 庫的任何部分的衍生物,但通過被編譯或 與鏈接設計爲與庫工作的程序它被稱爲「使用圖書館的作品」,這種孤立的作品不是圖書館的衍生作品,因此 不屬於本許可證的範圍。「

+0

最新版本的LGPL,* 3.0 *,似乎要求信用總是顯示,如果我正確地閱讀。但是,libmpg123在更早版本的2.1 –

+1

下獲得許可。另外,據我瞭解,如果我*包括* DLL與我的程序,那麼我的程序是一項衍生工作。所以DLL必須已經存在於機器上。 –

+0

幾乎所有上述許可證都要求保留版權聲明,這歸結爲「不得不在手冊中加入某些內容」。另外,有些人聲稱,因爲iOS應用程序不允許用戶替換他們自己的實現,所以你不能遵循iOS上的LGPL。 –

1

Fluendo MP3 decoder是MIT許可的。 (作爲對用戶的服務,他們還向Fraunhofer和Thomson支付了專利勒索費,因此您可以從他們的Fluendo網站獲得Fluendo mp3解碼器二進制文件。)

+0

它是如何敲詐勒索?他們有沒有從專利中獲利的權利? – g33kz0r

+11

@ g33kz0r,除了關於軟件專利有效性的整個辯論之外,弗勞恩霍夫還玩過誘餌轉換遊戲,他們一直等到mp3獲得引力,然後纔開始向每個人和他們的狗要求費用。我鄙視他們。好的一件事是,自2012年12月以來,大多數國家的專利都過期了,2017年將在美國。簡而言之,他們擁有合法權利,但他們的道德權利至多受到污染。這意味着我尊重他們的權利並且不違反它,並不意味着我必須爲此而喜歡他們。 –