【问题标题】:Free/Open h.264 video decoding libraries? (Non-GPL)免费/开放 h.264 视频解码库? (非 GPL)
【发布时间】:2010-10-14 16:28:47
【问题描述】:

主要玩家似乎是x264和xvid,而且都是GPL。这意味着我们无法将解码功能集成到播放应用程序中,除非将整个内容作为 GPL 许可,因此我们也不能使用。

首选目标平台是 Linux。任何非病毒性开放许可都可以,我们非常乐意提供我们对库所做的任何更改的来源,而不是我们的整个应用程序。

有什么吗?或者我们现在应该在开发过程中使用 GPL 作为测试,并计划在发货前用商业许可的编解码器替换它?

【问题讨论】:

  • xvid 不是 H.264 编解码器,它是 MPEG-4 第 2 部分编解码器。

标签: linux video h.264 decoding codec


【解决方案1】:

源自 AMD 性能库 Framewave 的项目现在具有支持 h.264 解码的视频组件。

许可证是“Apache 2.0 许可证”

您可以通过Sourceforge SVN查看它

【讨论】:

  • 谢谢,我看到并忽略了它,假设它是 AMD 专用的。
【解决方案2】:

好的,FFMpeg 似乎可以处理 h.264。我相信其中大部分是 LGPL。

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

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

【讨论】:

  • FFMPEG 可以选择链接到 x264,如果是,则它属于 GPL。许可证选择取决于配置选项,我相信 x264 是支持 h.264 所必需的。
  • 如果您的应用只通过 system() 或 popen() 调用 ffmpeg,是否受到 GPL 污染?
  • ^^ IANAL,但我认为如果您将 GPL 二进制文件与您的应用程序一起提供,那么可以说是的。
【解决方案3】:

我已经使用 FFmpeg 完成了一些工作,尽管它仅限于 libavformat(编解码器部分称为 libavcodec)。我发现这个 API 出奇地简单易用。它们在标准源代码分发中提供了一些非常有用且具有启发性的示例。

一般来说,这个库的质量相当高,但似乎缺少一些模块,所以我不能保证 h264 部分。不过,我听说过关于编码器的好消息。

【讨论】:

    【解决方案4】:

    IANAL,但是如果您要在任何强制执行软件专利的地方发货,您不仅需要为 h.264 解码支付 MPEG LA 版税,而且license 可能会阻止您无论如何使用开源解码器。我听说过适用于其他编解码器的类似烦恼。

    【讨论】:

      【解决方案5】:

      伊纳尔。

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

      就 MPEG 标准而言,这可能完全是另一包蠕虫......

      【讨论】:

      • 是的,我们现在这样做,只需调用 mplayer。未来的目标是将视频与其他内容整合成一个无缝的结果,可能具有透明度或其他效果。当前的想法是,要以合理的性能做到这一点,就必须对其进行集成。
      • IANAL 也是如此,但我会谨慎地在这里混淆 LGPL 和 GPL。您所描述的对于 LGPL 代码将是 100% 正确的,但可以说,如果您交付的 GPL 组件+不喜欢二进制是整个应用程序的一部分,那么整个应用程序也需要是 GPL。 gnu.org/philosophy/why-not-lgpl.html
      • 对于不认识该首字母缩写词的人来说,IANAL 代表“我不是律师”。
      【解决方案6】:

      PocketVideo 的 OpenCore 现在在 Apache 2.0 许可下开源,作为 Android 操作系统的一部分: https://github.com/android/platform_external_opencore

      【讨论】:

        【解决方案7】:

        看看Intel IPP Libraries。它们不是免费的,但非常便宜(一次性支付一百美元或其他东西)。您还可以获得免费评估以进行测试。许可证是非常开放的,据我所知,一旦您购买它,您就可以在您的应用程序中永久无限分发。

        【讨论】:

          【解决方案8】:

          ffmpeg H.264 解码器是 LGPL。只有编码器是 GPL,x264 不提供解码器。

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

          【讨论】:

          【解决方案9】:

          请注意,VLC 及其大部分库现在都是 LPGL

          VLC 引擎重新授权给 LGPL - http://www.videolan.org/press/lgpl-libvlc.html

          VLC 播放模块重新授权给 LGPL - http://www.videolan.org/press/lgpl-modules.html

          【讨论】:

            【解决方案10】:

            思科发布了用于编码和解码的 BSD 许可 h264 库。

            我希望你只使用 GPL,但当有答案时我不会告诉你这样做。

            http://www.openh264.org/
            和 GitHub 页面:
            https://github.com/cisco/openh264

            【讨论】:

            • 请注意,在编译和分发它时,您必须支付 MPEG-LA 版税。如果与@HUAGHAGUAH 讲述的 GPL 类似的方案适用(直接调用),那将会很有趣。
            • 请注意,openh264 的缺点是仅支持 Baseline h264 配置文件(用于编码和解码)。这意味着您可以使用 libav 进行 h264 解码,使用 openh264 进行 h264 编码。
            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-08-08
            • 2012-11-23
            • 2022-03-24
            • 2011-10-30
            • 2013-06-06
            相关资源
            最近更新 更多