MEDIALOOKS

在商业软件中使用 LGPL

我们的一些产品使用 FFmpeg 的 LGPL 构建——主要用于各种压缩标准、文件格式和网络流的拆分、包装、解码和编码。 如果您在商业软件中使用这些功能,这篇文章将详细解释如何遵守 LGPL。

本摘要旨在为我们的客户提供便利。 它不构成法律意见或法律建议,您不应依赖它。 我们建议您咨询您自己的法律顾问。

本文中的评论仅基于 LGPL 2.1 版。 在准备本摘要时,我们使用了 FFMPEG 自己的合规检查表作为起点。
什么是 LGPL?
LGPL,正如许可证文本在序言中明确指出的那样,专门设计用于允许在非自由应用程序中使用 LGPL 许可的库:

“大多数 GNU 软件,包括一些库,都包含在普通的 GNU 通用公共许可证中。这个许可证,即 GNU 宽通用公共许可证,适用于某些指定的库,与普通的通用公共许可证有很大不同。我们使用这个许可证 对于某些库,以便允许将这些库链接到非自由程序。

当一个程序与一个库链接时,无论是静态链接还是使用共享库,两者的结合在法律上都是一个结合的作品,是原始库的派生。 因此,只有当整个组合符合其自由标准时,普通通用公共许可证才允许这种链接。 较小的通用公共许可证允许将其他代码与库链接的标准更宽松。”
FFmpeg 在我们的软件中究竟是如何使用的?
1.我们不修改FFmpeg的库。 由于我们的产品只是设计为与 FFmpeg 的库动态链接,因此我们相信我们所有的产品都属于“使用该库的作品”的定义 ,而不是“基于库的作品” .

2. 并非所有 FFmpeg 都在 LGPL 下获得许可。 我们创建了自己的 FFmpeg LGPL 版本(这就是我们的版本不包含 x264 编解码器的原因)。
使您的应用程序符合 LGPL
为了使您的产品符合 LGPL 的要求,我们建议您执行以下所有操作:

1.关于FFmpeg的再分发:

  • 如果您重新分发未经修改的 FFmpeg,则必须随附相应的版权声明和免责声明; 您必须保留所有通知; 并且您必须随文件分发 LGPL 的副本。
  • 如果您分发由您修改的 FFmpeg 版本,您必须遵守上一段中提供的所有步骤。 此外,您必须确保您修改的文件也是一个库,您必须包含详细的更改日志,并且您不得为修改的文件收取版税。
  • 无论哪种情况,您都必须在您的发行版中包含 LGPL 许可文件的所有源代码。 如果您通过电子下载方式分发 LGPL 许可文件,那么您可以提议从您的应用程序分发的同一位置下载源代码。 LGPL v.2.1 要求源代码托管在同一台服务器上。 或者,您可以提供书面报价(必须在分发之日起至少三年内有效)以提供完整的源代码。 您不得为提供源代码收取任何费用,但提供源代码的合理费用(例如邮寄费用)除外。
  • 为方便起见,我们产品的 setup 文件夹中的文件夹包括: a) FFmpeg 的源代码(以用于编译我们产品中的 DLL 的形式); b) LGPL 许可证 2.1 版的文本; c) 编译细节(在包含源代码的存档中)。

2. 将以下文本添加到您网站的每个页面中,其中包含指向您的应用程序的下载链接:

该软件使用 LGPL 2.1 版许可的 FFmpeg 代码,其源代码可在此处下载。

以我们自己的网页为例。

3. 提及“此软件使用 LGPL 2.1 版下的 FFmpeg 项目中的库。” 在软件的“关于框”中。

4. 在您的 EULA 中提及您的程序在 LGPL 2.1 版下使用 FFmpeg。

5. 如果您的 EULA 声明对代码的所有权,您必须明确提及您不拥有 FFmpeg,以及在哪里可以找到相关所有者。

6. 从您的 EULA 中删除任何逆向工程禁令。

其他重要说明:

  • 其他重要说明:
  • 不要重命名 FFmpeg 的 DLL。

另请注意,虽然我们会不时测试我们的产品是否可以与更新版本的 FFmpeg 一起使用(此要求是 LGPL 许可证的重要组成部分),但我们不建议仅仅因为我们的 正在对自己的构建进行更彻底的测试。