You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

咨询在Yocto中编译添加GPL/LGPL版FFmpeg的可行性及许可证问题

关于在Yocto镜像中编译GPL/LGPL版本FFmpeg的问题

当然可以编译GPL/LGPL版本的FFmpeg并将其加入Yocto镜像,而且完全不需要启用商业许可证——下面我来一步步解答你的疑问:

1. 关于PACKAGECONFIG[gpl]的作用

你看到的配方代码PACKAGECONFIG[gpl] = "--enable-gpl,--disable-gpl"正是用来控制FFmpeg是否启用GPL构建的开关:

  • 当你启用这个配置项时(比如在local.conf里添加PACKAGECONFIG:append = " gpl",或者在FFmpeg配方里设置PACKAGECONFIG = "gpl ..."),构建系统会给FFmpeg的configure命令传递--enable-gpl参数,这样FFmpeg就会编译包含GPL许可的组件(比如x264等)。
  • 反之,如果不启用,就会使用--disable-gpl,只编译LGPL许可的基础组件。

2. 处理LICENSE_FLAGS_WHITELIST的提示

你遇到的提示是因为Yocto默认会对带有特定许可证标记的包进行限制,而FFmpeg启用GPL后,配方会将其标记为需要commercial许可证白名单(这里的commercial是Yocto的分类标记,并非指商业许可证,只是因为FFmpeg的GPL组件在Yocto的许可证规则里被归到这个类别)。

要解决这个问题,不需要启用商业许可证,只需要在你的local.conf文件中添加一行:

LICENSE_FLAGS_WHITELIST += "commercial"

这会允许Yocto构建带有该标记的开源GPL/LGPL组件,完全符合你的需求。

3. 额外验证

为了确保你没有启用商业许可证的组件,可以检查FFmpeg配方的LICENSE字段:

  • 当启用GPL时,LICENSE应该包含GPL-2.0-or-laterLGPL-2.1-or-later等开源许可证条目,没有商业相关的许可内容。

内容的提问来源于stack exchange,提问作者ErniBrown

火山引擎 最新活动