Vitamio与FFmpeg、LGPL、GPL的关系
2016-04-25 23:16
260 查看
转自:http://sun.sanniang.me/2014/04/26/the-relationship-vitamio-with-ffmepg-lgp-gpl
Vitamio 使用了 FFmpeg 做为媒体解析器和最主要的解码器,同时开发了针对不同移动平台的硬解码方案,能够完美支持 H.264/AVC、H.263、 MPEG4 等常见的视频编码,覆盖上百种多媒体格式。
有很多开发者错误理解,只要使用FFmpeg库就一定要开源。FFmpeg官方遵循的开源原则
:
Read the license texts to learn how this affects programs built on top of FFmpeg or reusing FFmpeg. You may also wish to have a look at the
GPL FAQ.
FFmpeg 遵循了LGPL 2.1 的标准,同时某些代码库也遵循了GPL 2.0,我们可以在编译的时候选择遵循的许可协议,Vitamio采用的是FFmpeg的LGPL协议, GNU家对LGPL以及GPL的定义:
LGPL:https://www.gnu.org/licenses/lgpl.html
GPL:https://www.gnu.org/copyleft/gpl.html
LPGL内容主要有两点:
LPGL允许商业软件通过动态类库引用(Link)方式适用LGPL类库,如.so,.dll等,而不需要开源商业软件代码,采用LGPL协议的开源代码可以被作为类库引用并发布和销售
如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生代码都必须采用LPGL协议
Vitamio目前完全遵循LPGL协议,通过Link的方法引用FFmpeg,所以可以作为商业软件销售。其涉及到开源代码参见
Vitamio 使用了 FFmpeg 做为媒体解析器和最主要的解码器,同时开发了针对不同移动平台的硬解码方案,能够完美支持 H.264/AVC、H.263、 MPEG4 等常见的视频编码,覆盖上百种多媒体格式。
有很多开发者错误理解,只要使用FFmpeg库就一定要开源。FFmpeg官方遵循的开源原则
:
FFmpeg is licensed under the GNU Lesser General Public License (LGPL) version 2.1 or later. However, FFmpeg incorporates several optional parts and optimizations that are covered by the GNU General Public License (GPL) version 2 or later. If those parts get used the GPL applies to all of FFmpeg.
Read the license texts to learn how this affects programs built on top of FFmpeg or reusing FFmpeg. You may also wish to have a look at the
GPL FAQ.
Note that FFmpeg is not available under any other licensing terms, especially not proprietary/commercial ones, not even in exchange for payment.
FFmpeg 遵循了LGPL 2.1 的标准,同时某些代码库也遵循了GPL 2.0,我们可以在编译的时候选择遵循的许可协议,Vitamio采用的是FFmpeg的LGPL协议, GNU家对LGPL以及GPL的定义:
LGPL:https://www.gnu.org/licenses/lgpl.html
GPL:https://www.gnu.org/copyleft/gpl.html
LPGL内容主要有两点:
LPGL允许商业软件通过动态类库引用(Link)方式适用LGPL类库,如.so,.dll等,而不需要开源商业软件代码,采用LGPL协议的开源代码可以被作为类库引用并发布和销售
如果修改LGPL协议的代码或者衍生,则所有修改的代码,涉及修改部分的额外代码和衍生代码都必须采用LPGL协议
Vitamio目前完全遵循LPGL协议,通过Link的方法引用FFmpeg,所以可以作为商业软件销售。其涉及到开源代码参见
相关文章推荐
- 队列(Queue)
- 【ORACLE】 表空间信息
- 数据库笔记
- 表碎片整理时shrink和move如何选择(转)——写的很好
- 类成员函数返回值的引用
- “The run destination iOS Device is not valid for running the scheme”
- Android-面试题
- jni
- 【6】-BAT面试之操作系统内存详解
- 面试之路(6)-BAT面试之操作系统内存详解
- Linux下搜索文件find、which、whereis、locate
- STM32 use microlib是干什么的
- 面试之路(6)-BAT面试之操作系统内存详解
- 【6】-BAT面试之操作系统内存详解
- 面试之路(6)-BAT面试之操作系统内存详解
- 【6】-BAT面试之操作系统内存详解
- asp.net signalR的组播和广播
- 六数码
- autorelease和autoreleasepool 注意事项优缺点
- Android项目工具类之封装Log工具类