免费/开放的h.264视频解码库?(非GPL)

16

主要的播放器似乎是x264和xvid,两者都使用GPL协议。这意味着如果我们未经许可将解码功能整合到播放应用程序中,则必须将整个应用程序都许可为GPL,因此我们不能使用任何一个。

首选的目标平台是Linux。任何非病毒式的开放许可证都可以,我们很乐意提供我们对库所做更改的源代码,只是不想公开整个应用程序的源代码。

还有其他选择吗?或者我们现在应该在开发过程中使用GPL作为测试,并计划在出货前用商业许可证的编解码器进行替换?


4
Xvid不是H.264编解码器,它是MPEG-4第2部分编解码器。 - alex strange
10个回答

9

ffmpeg的H.264解码器是LGPL许可证。只有编码器是GPL许可证,而x264不提供解码器。

与Framewave和IPP相比,它还具有实际可用的优点。


现在有一些非GPL编码器:https://dev59.com/A3I-5IYBdhLWcg3wNle1#39338135 - rogerdpack

6

请注意,在编译和分发时,您必须支付MPEG-LA版税。如果可以应用类似于@HUAGHAGUAH所提到的GPL的方案(直接调用),那将是很有趣的。 - Léon Pelletier
请注意,openh264 的缺点是仅支持基本的 h264 视频编码和解码。这意味着您可以使用 libav 进行 h264 解码,而使用 openh264 进行 h264 编码。 - Florent Thiery

3
我不是法律专家,但如果您在任何实施软件专利的地方发货,不仅需要支付MPEG LA的h.264解码版税,而且该许可证可能会阻止您使用开源解码器。我听说其他编解码器也存在类似的烦恼。请参考许可证

3

2
一项源于 AMD 性能库 Framewave 的项目现在具有支持 H.264 解码的视频组件。
该许可证为“Apache 2.0 许可证”。
您可以在 Sourceforge SVN 上查看它。

谢谢,我看到了并跳过了它,以为它只适用于AMD。 - Mark Renouf

2

我不是律师。

如果您发布的是从未经修改的GPL源代码创建的未经修改的二进制文件,并且您的应用程序只是调用它们,我认为您的整个应用程序不必遵守GPL。您可能需要包含GPL文档和/或捆绑的GPL应用程序的源代码,但如果您没有进行任何修改或链接到GPL代码,则您的代码应该不受影响。

至于MPEG标准,那可能是完全不同的问题...


是的,我们现在可以通过简单调用mplayer来实现这一点。未来的目标是将视频与其他内容集成到无缝结果中,可能具有透明度或其他效果。当前的想法是,为了以合理的性能实现这一点,必须进行集成。 - Mark Renouf
3
我不是律师,但我认为在混淆LGPL和GPL方面应该谨慎。你描述的内容对于LGPL代码来说是百分之百正确的,但如果你正在发布+不喜欢的二进制GPL组件是整个应用程序的一部分,则整个应用程序也需要遵守GPL协议。请参考http://www.gnu.org/philosophy/why-not-lgpl.html。 - damian
对于那些不认识这个缩写的人,IANAL代表“我不是律师”。 - Wyatt Ward

1

好的,FFmpeg似乎处理h.264。我相信大部分都是LGPL。

仍然很想听听它的使用经验(好或坏),或其他选项,谢谢。

- - 更正:我刚测试的版本似乎是通过“- - enable-gpl”编译的,这让我相信它正在使用GPL许可的编解码器。唉!


FFMPEG可选择链接到x264,如果这样做,它将受GPL许可。许可选择取决于配置选项,并且我认为h.264需要x264支持。 - greyfade
如果您的应用程序仅通过system()或popen()调用ffmpeg,那么它是否受GPL污染? - mouviciel
我不是律师,但我认为如果您将GPL二进制文件与您的应用程序一起发布,那么可以说是这样。 - damian

1

看看Intel IPP Libraries。它们不是免费的,但价格非常便宜(一次性支付一百美元或者类似数额)。你也可以获取免费评估来测试它。许可证非常开放,据我所知,一旦购买,允许你在应用程序中永久无限制地分发。


0

0

我曾经使用过FFmpeg进行一些工作,不过只限于libavformat(编解码部分称为libavcodec)。我发现API非常直观易用。他们在标准源分发中提供了一些非常有用和启迪性的示例。

通常库具有相当高的质量,但某些模块似乎缺失,因此我不能为h264部分背书。虽然我听说编码器很不错。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接