10.2 开源协议:LGPL、GPL 与专利税


10.2 开源协议:LGPL、GPL 与专利税

本节摘要:FFmpeg 采用 LGPL 与 GPL 双许可,加上 H.264/HEVC 的专利授权,构成了商用前必须搞清的两层规则。本节讲清动态链接与静态链接的区别、GPL 传染性的边界,以及编码专利的规避思路。

学习目标

阅读完本节,你应当能够:

  1. 区分 LGPL 与 GPL 在「商业闭源产品」里的使用边界
  2. 说清动态链接与静态链接在合规上的含义
  3. 理解 H.264/HEVC 专利授权逻辑,知道 AV1 的免专利价值

一、一个反例开场

某团队用 FFmpeg 做了一款闭源商业播放器,打包时图省事,把 libavcodec 静态编译进可执行文件,还开启了 --enable-gpl 的 x264。产品上线三个月后收到权利方函件——两份麻烦同时找上门:一是 GPL 组件被静态链接进闭源软件,违反了传染条款;二是 H.264 编码涉及专利授权。

这个例子的两个层面,正是本节要拆解的全部内容:开源协议条款编码专利授权。前者管「你怎么用别人的代码」,后者管「你的产品里能不能带 H.264 这类技术」。

二、核心原理:两层规则

第一层:LGPL 与 GPL

FFmpeg 采用双许可。默认(不开 --enable-gpl 时)是 LGPL;开了 GPL 组件(x264、x265 等)后整体偏向 GPL。

  • LGPL(宽松):允许你把库动态链接进闭源商业软件,只要满足:修改了库本身要开源、允许用户更换库、保留版权声明
  • GPL(传染):任何与你「形成一体」的代码都要按 GPL 开源——静态链接必传染,动态链接是否传染取决于边界,但开 --enable-gpl 后整份 FFmpeg 都是 GPL

关键区分就是第 8 章的「编译与链接」:

使用方式 LGPL 组件 GPL 组件
动态链接 可以,闭源商业可用 有传染风险
静态链接 需开放修改的库源码 基本等于整体开源

第二层:编码专利

开源协议管代码,专利管技术本身。H.264/HEVC 的专利掌握在专利池(MPEG LA 等)手里,即使代码是免费的,商用分发含 H.264/HEVC 编码也可能需要授权费。FFmpeg 无法替你付这笔钱。

规避思路:VP9 与 AV1 是免专利的开放编码(第 5 章讲过)。选择它们就绕开了专利池,代价是兼容性与编码速度。

三、工程实践要点

合规自检三步

  1. 编了什么ffmpeg -version 看配置,--enable-gpl--enable-libx264 开没开
  2. 怎么链的:动态还是静态?动态链接 LGPL 组件相对安全
  3. 编不编进产品:你的产品是否包含 H.264/HEVC 编码功能、是否商用

实操建议

  • 只想用解码/转码做内部工具:动态链接 + 不开 GPL 组件,最省心
  • 闭源商业软件内嵌 FFmpeg:优先动态链接、避开 GPL 组件、产品里含编码先确认专利授权
  • 不想碰专利:考虑 AV1 编码 + 明确标注能力边界

协议与专利一图流

协议与专利一图流

图说明:两条线分别查

协议层查「代码怎么用」,专利层查「技术带不带」。自查顺序固定:先 ffmpeg -version 看配置,再确认链接方式,最后问产品边界。两个层面都过了,才叫真合规。

⚠️ 常见坑:以为「开源=免费随便用」;静态链接了 GPL 组件还发布闭源二进制;产品里带了 H.264 编码就上线商用——这三条是 FFmpeg 合规事故的最高发区。拿不准时,找法律意见而不是凭感觉。

💡 关键直觉:FFmpeg 的许可规则可以浓缩成一句话——「动态链接 LGPL 组件最安全,别碰 GPL 静态链接,商用带编码先问专利」。把这句话印在脑子里,能避开 90% 的坑。

一个合规自查的实操模板

把合规检查变成自动化的一部分,比每次人工判断可靠得多。可以写一个简单的检查清单脚本,在每次发布前跑一遍:

# 检查你即将分发的 FFmpeg 是怎么编译的 ffmpeg -version 2>&1 | grep -E "configuration|enable-gpl|libx264" # 检查你的产物用了哪些编码器(如果有 h264/hevc 编码器,商用要留意) ffprobe -v error -show_entries stream=codec_name -of csv=p=0 output.mp4

把这些命令固化到 CI 的发布流程里,每次发版自动跑一遍,把结果存档。真到被问询的那一天,你有据可查;更重要的是,强制自动化会倒逼团队在选型时就把合规考虑进去——比如优先 AV1 免专利方案、动态链接库而不是静态编译。合规不是一次性的法务审查,而是一个持续的过程约束。

一些经常被问到的边界情形

协议问题最容易在「边界情形」上含糊,这里澄清三个高频疑问。

第一,FFmpeg 用在内部工具里,不对外分发,算违规吗? 大多数情况下内部使用不构成「分发」,合规压力小很多。但如果你的内部工具是卖给别的公司的软件,那依然属于分发。

第二,只解码不编码,专利问题还存在吗? H.264 的专利池主要针对编码器,解码端也有授权安排但通常由设备制造商承担。商用产品里集成解码器,仍然建议确认授权链条,尤其是进入欧美市场。

第三,开源了自己写的部分,是不是就没事了? 开源不等于合规。GPL 传染性看的是「链接方式」和「是否分发」,你把自己的代码开源了,但静态链接了 GPL 组件再分发闭源二进制,问题依然在。

这些边界情形不需要你现在就搞透,但知道「问题存在、边界在哪」,等真的遇到时就不会抓瞎。

要点回顾

  • 双许可:默认 LGPL,开 GPL 组件后整体 GPL
  • 链接方式:动态链接 LGPL 相对安全,静态链接 GPL 基本等于整体开源
  • 专利独立:H.264/HEVC 专利在专利池,代码免费不等于技术免费
  • 规避思路:AV1/VP9 免专利,兼容性与速度是代价
  • 自查三步:看配置 → 看链接 → 看产品边界

最后一节,看管线往哪演化——技术趋势与投入判断。


作者与出处
原作者: 灏天文库
来源:灏天文库
整理: 灏天文库整理
由灏天文库平台收录,内容或由平台用户上传,仅供学习交流
发布者: 作者: 灏天文库 转发
评论区 (0)
U