C# FFmpeg autogen与openh264的结合

C# FFmpeg autogen与openh264的结合,c#,ffmpeg,h.264,openh264,mpeg-la,C#,Ffmpeg,H.264,Openh264,Mpeg La,我正在使用FFmpeg autogen将从PC捕获的图像实时(每秒60或30帧)传输到Android应用程序。当我使用FFmpeg autogen提供的h.264编码示例时,一切都非常正常 据我所知,FFmpeg autogen在LGPL许可证下,如果您使用的是在LGPL许可证下编译的自定义FFmpeg LIB,例如,如果您的项目是封闭源代码,您可以动态链接到FFmpeg autogen库,而不违反LGPL许可证 所以我认为一切都会好起来,但后来我发现h.264编码在美国拥有专利,MPEG LA

我正在使用FFmpeg autogen将从PC捕获的图像实时(每秒60或30帧)传输到Android应用程序。当我使用FFmpeg autogen提供的h.264编码示例时,一切都非常正常

据我所知,FFmpeg autogen在LGPL许可证下,如果您使用的是在LGPL许可证下编译的自定义FFmpeg LIB,例如,如果您的项目是封闭源代码,您可以动态链接到FFmpeg autogen库,而不违反LGPL许可证

所以我认为一切都会好起来,但后来我发现h.264编码在美国拥有专利,MPEG LA代表着AVC/h.264技术的专利持有者。如果您将其用于免费视频,则可以使用h.264编解码器,而无需支付版税。尽管如此,我使用编码器的Windows程序是免费的,但我的Android应用程序不是免费的,所以我想我必须支付版税

关于这个问题,我有几个问题:

  • FFmpeg autogen使用哪种编码器,因为据我所知,x264是GPL许可的。我假设它将使用一些内部FFmpeg软件编码器

  • 在不免费提供编码视频流而不需要支付版税的项目中,您不能使用FFmpeg(x264等)的任何内置标准编码器,对吗

  • 经过一些研究,我发现。此库由cisco创建,他们将支付所有版税,但不允许您将其与应用程序捆绑,必须在安装过程中下载。它也适用于FFmpeg,但如何让它与FFmpeg autogen一起使用?我是否需要使用cisco的openh264库的自定义FFmpeg构建


  • 我知道这不是一个律师论坛,但也许有人已经处理了所有这些问题,或者至少可以回答有关FFmpeg autogen的问题。我已经在互联网上搜索了一段时间,但不幸的是,h.264的许可机制似乎不那么容易理解。

    我几乎忘记了这个问题,但我想我现在已经了解了一切,所以我将自己回答它。也许这对某人有帮助。如果有不正确的地方,请随时纠正我

    据我所知,FFmpeg autogen是在LGPL许可下的 如果您使用的是根据LGPL许可证编译的自定义FFmpeg LIB 例如ffmpeg-win32,您可以动态链接到ffmpeg 如果您的项目是 例如,封闭源代码

    这的确是正确的。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提供一次报告,其中应包含有关下载的所有信息。如果你有什么问题,直接联系他们,他们通常反应很快

  • FFmpeg autogen使用哪种编码器,因为据我所知,x264是GPL许可的。我假设它将使用一些内部 FFmpeg软件编码器
  • 如果您仅使用zeranoe FFmpeg版本,FFmpeg autogen将使用x264编码器。但一般来说,这取决于您是如何编译FFmpeg的。为了使用openh264编码器和FFmpeg autogen,我用openh264编译了FFmpeg,只需像这样加载编码器

    ffmpeg.avcodec_find_encoder_by_name("libopenh264");
    
  • 在不免费提供编码视频流的项目中,不能使用FFmpeg(x264等)的任何内置标准编码器 不需要支付版税,对吗
  • 我不知道这是否适用于FFmpeg中的任何其他内置编码器,但如果不向MPEG LA申请许可证,就不能使用x264。除非思科会为你支付版税。请记住,您不能将openh264与应用程序捆绑在一起,否则您将负责向MPEG LA而不是cisco支付版税。您必须在程序安装过程中下载openh264,或者您可以在程序运行时提供一些下载可能性

  • 经过一些研究,我找到了openh264。这个图书馆是由思科公司建立的,他们将支付所有的版税,但你是不允许的 将其与应用程序捆绑,必须在 安装过程。它也可以与FFmpeg一起使用,但是我如何才能让它实现呢 使用FFmpeg autogen?我需要定制的FFmpeg版本吗 使用cisco的openh264库
  • 是的,您必须在安装过程中下载它,或者