gpt4 book ai didi

c# - FFmpeg autogen 结合 openh264

转载 作者:行者123 更新时间:2023-12-04 22:53:16 27 4
gpt4 key购买 nike

我正在使用 FFmpeg autogen 将从 PC 实时(60 或 30 fps)捕获的图像流式传输到 Android 应用程序。当我使用 FFmpeg autogen 提供的 h.264 编码示例时,一切都运行良好。

据我了解,FFmpeg autogen 受 LGPL 许可,如果您使用的是在 LGPL 许可下编译的自定义 FFmpeg 库,例如 ffmpeg-win32如果您的项目是封闭源代码,您可以动态链接到 FFmpeg autogen 库而不会违反 LGPL 许可证。

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

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

  • FFmpeg autogen 使用哪个编码器,因为据我所知 x264 受 GPL 许可。我假设它将使用一些内部 FFmpeg 软件编码器?
  • 您不能在不免费提供其编码视频流且无需支付版税的项目中使用任何来自 FFmpeg(x264 等)的内置标准编码器,对吗?
  • 经过一些研究,我发现openh264 .该库由 cisco 构建,他们将支付所有版税,但您不能将其与您的应用程序捆绑在一起,必须在安装过程中下载。它也适用于 FFmpeg,但我如何让它与 FFmpeg autogen 一起使用?我是否需要使用来自 cisco 的 openh264 库的自定义 FFmpeg 构建?

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

    最佳答案

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

    As far as I have understood FFmpeg autogen is under the LGPL licence and if you are using custom FFmpeg libs compiled under LGPL licence like for example ffmpeg-win32 you can dynamically link to the FFmpeg autogen library without violating the LGPL licence if your project is for example closed source.



    这确实是正确的。 FFmpeg autogen 受 LGPL 许可,但如果您只是使用 zeranoe 提供的 FFmpeg 库你不走运,因为所有这些构建都在 GPL 许可下。这意味着即使 FFmpeg autogen 在 LGPL 下,由于 FFmpeg GPL 库,您的项目仍然必须在 GPL 下发布。

    幸运的是,您可以在 LGPL 下编译自己的自定义 FFmpeg 版本,但您会错过一些功能,例如 x264(基本上所有不适合 LGPL 的功能)。编译自定义版本的 FFmpeg 可能非常复杂,但是我在 github 上找到了一个不错的项目,名为 media-autobuild_suite。 .这些脚本基本上为您编译 FFmpeg,并为各种 FFmpeg 功能(如 openh264 等)提供许多自定义功能。我发布了更多细节 here .

    So I thought everything would be okay but then I figured out the the h.264 coded is patented in the US and MPEG LA represents the patent holders of AVC/H.264 technologies. If you are using it for free videos you can use h.264 codecs without paying royalties. Nevertheless, my Windows program which is using the encoder is free but my Android application is not free so I guess I have to pay royalties.



    我联系了 MPEG LA,如果您想获得许可,您的程序是否免费并不重要,您必须联系 MPEG LA 并为您的产品申请许可。只要您的程序每年下载次数不超过 100 000 次,您就不必支付任何费用。您必须每年向 MPEG LA 提供一些报告,其中应包含有关下载的所有信息。如果您有任何问题,请联系 MPEG LA他们通常 react 迅速,并且会很快回复。

    1. Which encoder does the FFmpeg autogen use, because as far as I know x264 is under GPL licence. I assume that it will use some internal FFmpeg software encoder?


    如果您只是使用 zeranoe FFmpeg 构建,FFmpeg autogen 将使用 x264 编码器。但总的来说,这取决于您如何编译 FFmpeg。我用openh264编译了FFmpeg,以便将openh264编码器与FFmpeg autogen一起使用,只需像这样加载编码器
    ffmpeg.avcodec_find_encoder_by_name("libopenh264");

    1. You can't use any built in standard encoder from FFmpeg (x264 etc.) in projects which don't offer their encoded video stream for free without the need of paying royalties, right?


    我不知道这对于 FFmpeg 中的任何其他内置编码器是否正确,但如果不向 MPEG LA 请求许可,您就不能使用 x264。除了 openh264因为思科会为你支付版税。请记住,您不能将 openh264 与您的应用程序捆绑在一起,否则您有责任向 MPEG LA 而不是 cisco 支付版税。您必须在程序安装过程中下载 openh264,或者您可以在程序运行时提供一些下载可能性。

    1. After some researches I found openh264. This library is built by cisco and they will pay all the royalties but you are not allowed to bundle it with your application, it must be downloaded during the installation process. It also works with FFmpeg but how to I get it to work with FFmpeg autogen? Do I need a custom FFmpeg build which are using the openh264 lib from cisco?


    是的,您必须在安装过程或程序运行期间下载它,是的,您需要使用 openh264 构建的自定义 FFmpeg LGPL。您可以使用 media-autobuild_suite 轻松编译您自己的 FFmpeg 版本。 .

    还有一件事,如果您在 LGPL 下使用 FFmpeg,请记住,您必须考虑一些条件,您可以找到它们 here .目前为止就这样了。我希望这些是一些有用的信息。

    关于c# - FFmpeg autogen 结合 openh264,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49342133/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com