2011-11-14 48 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年将在美国。简而言之,他们拥有合法权利,但他们的道德权利至多受到污染。这意味着我尊重他们的权利并且不违反它,并不意味着我必须为此而喜欢他们。 –