我使用FFmpeg autogen实时(60或30 fps)将从PC上捕获的图像流到一个安卓应用程序中。当我使用FFmpeg autogen提供的h.264编码示例时,一切都很完美。
据我所知,FFmpeg autogen处于LGPL许可之下,如果您使用在LGPL许可下编译的自定义FFmpeg库(例如ffmpeg-win32 32 ),您可以动态链接到FFmpeg autogen库,如果您的项目是封闭的,则可以不违反ffmpeg-win32 32许可。
所以我想一切都会好起来的,但后来我发现h.264编码在美国是专利,MPEG LA代表了AVC/H.264技术的专利持有者。如果您使用它作为免费视频,您可以使用h.264编解码器,而无需支付版税。尽管如此,我使用编码器的Windows程序是免费的,但我的Android应用程序不是免费的,所以我想我必须支付版税。
关于这个问题,我有几个问题:
我知道这不是一个律师论坛,但也许有人已经处理了所有这些问题,或者至少可以回答有关FFmpeg autogen的问题。我已经在网上搜索了一段时间,但不幸的是,h.264的许可机制并不容易理解。
发布于 2018-06-23 14:23:32
我差点忘了这个问题,但我想我现在什么都明白了,所以我会自己回答的。也许这对某人有帮助。如果有不正确的地方,请随时纠正我。
据我所知,FFmpeg autogen处于LGPL许可之下,如果您使用LGPL许可下编译的自定义FFmpeg库(例如ffmpeg-win32 ),如果您的项目是封闭源代码,则可以动态链接到FFmpeg autogen库而不违反LGPL许可。
这确实是正确的。FFmpeg autogen是在LGPL许可下的,但是如果您只是使用泽兰尼提供的FFmpeg库,那么您就不走运了,因为所有这些构建都是在GPL许可下进行的。这意味着,即使FFmpeg autogen在LGPL下,您的项目仍然必须在GPL下发布,因为FFmpeg GPL库。
幸运的是,您可以在LGPL下编译您自己的FFmpeg自定义版本,但是您会遗漏一些特性,比如x264 (基本上所有不适合LGPL的特性)。编译FFmpeg的自定义版本可能非常复杂,但是我在github上找到了一个很好的项目,名为套间。这些脚本基本上为您编译了FFmpeg,并为各种FFmpeg特性(如openh264等)提供了许多定制特性。我贴了一些更多的细节这里。
所以我想一切都会好起来的,但后来我发现h.264编码在美国是专利,MPEG LA代表了AVC/H.264技术的专利持有者。如果您使用它作为免费视频,您可以使用h.264编解码器,而无需支付版税。尽管如此,我使用编码器的Windows程序是免费的,但我的Android应用程序不是免费的,所以我想我必须支付版税。
我联系了MPEG LA,如果您的程序是免费的,如果您想要被许可证覆盖,您必须联系MPEG LA并为您的产品申请许可证。你不需要支付任何费用,但只要你的程序不会被下载超过10万次每年。您必须每年向MPEG LA提供一次报告,其中应该包含有关下载的所有信息。如果您有一些问题,只需联系MPEG LA,他们通常非常有反应,并会很快回答。
FFmpeg autogen将使用x264编码器,如果您只是使用零FFmpeg构建。但一般来说,这取决于您是如何编译FFmpeg的。我用openh264编译了openh264,以便使用openh264编码器与FFmpeg autogen一起加载编码器,如下所示
ffmpeg.avcodec_find_encoder_by_name("libopenh264");我不知道这对于FFmpeg中的任何其他内置编码器来说是否正确,但是如果没有MPEG LA的许可,您就不能使用x264。除了openh264,因为思科会为你支付版税。请记住,您不能将openh264与您的应用程序捆绑在一起,因为否则您将负责向MPEG LA而不是cisco支付版税。您必须在安装程序的过程中下载openh264,或者可以在程序运行时提供一些下载可能性。
是的,您必须在安装过程中或在程序运行时下载它,是的,您需要使用FFmpeg构建自定义openh264。您可以轻松地用FFmpeg编译自己版本的套间。
还有一件事,如果您在LGPL下使用FFmpeg,请记住有一些条件您必须考虑,您可以找到它们这里。这就是目前的情况。我希望这些是一些有用的信息。
https://stackoverflow.com/questions/49342133
复制相似问题