开源组件与对应源码
CineX 的媒体处理能力建立在开源软件之上。这一页列出我们内嵌的组件、各自适用的许可证,以及如何取得它们的源代码。
内嵌的开源组件
CineX 以动态框架形式嵌入下列 8 个组件(x264 与 dav1d 静态链入 libavcodec)。版本取自产物本身:FFmpeg 本体是 n6.0;6.0.2 是 CocoaPods 那层的发行包号,不是 FFmpeg 的版本。
| 组件 | 版本 | 许可证 |
|---|---|---|
| ffmpegkit | 6.0 | GPL-3.0 |
| libavcodec | FFmpeg n6.0 | GPL-3.0 |
| libavformat | FFmpeg n6.0 | GPL-3.0 |
| libavfilter | FFmpeg n6.0 | GPL-3.0 |
| libavutil | FFmpeg n6.0 | GPL-3.0 |
| libavdevice | FFmpeg n6.0 | GPL-3.0 |
| libswresample | FFmpeg n6.0 | GPL-3.0 |
| libswscale | FFmpeg n6.0 | GPL-3.0 |
| x264 | ffmpeg-kit 6.0.LTS 内置 | GPL-2.0-or-later |
| dav1d | ffmpeg-kit 6.0.LTS 内置 | BSD-2-Clause |
这些组件分别做什么
ffmpegkit(GPL-3.0)—— FFmpeg 的封装层,提供命令式调用接口。
libavcodec(GPL-3.0)—— 编解码器库(x264 与 dav1d 静态链在这一支里)。
libavformat(GPL-3.0)—— 容器格式的读写与解析。
libavfilter(GPL-3.0)—— 滤镜图处理。
libavutil(GPL-3.0)—— 公共工具函数。
libavdevice(GPL-3.0)—— 设备输入输出。
libswresample(GPL-3.0)—— 音频重采样与声道布局转换。
libswscale(GPL-3.0)—— 视频色彩空间与像素格式转换。
x264(GPL-2.0-or-later)—— H.264 软件编码器,是 full-gpl 构建与 LGPL 构建的关键差别;它的每个源文件都写着 “either version 2 … or (at your option) any later version”,所以可以按 GPL-3.0 与 FFmpeg 合并分发。
dav1d(BSD-2-Clause)—— AV1 解码器。宽松许可,不改变整支的许可身份;因为是静态链入,它的源码属于对应源码的一部分。
取得对应源码(GPLv3 §6)
上面 8 个框架以 GPL-3.0 授权(x264 为 GPL-2.0 或更高版本,dav1d 为 BSD-2-Clause,三者可合并分发)。按 GPL-3.0 第 6 条,以二进制形式分发时必须让接收者能够取得对应的源代码。你可以通过以下途径获取:
对应源码包(推荐,一次取全)
https://zhidu-tech.cn/cinex/cinex-corresponding-source.tar.gz
含 ffmpeg-kit 6.0.LTS、FFmpeg n6.0、x264、dav1d 的完整源码,外加两端构建配方与清单(tar.gz,18.6 MiB)。
ffmpeg-kit(本项目实际使用的封装与构建)
https://github.com/arthenica/ffmpeg-kit
该项目已归档(作者停止维护),但仓库仍可公开访问、可下载全部源码与构建脚本。⚠️ 上游那份源码要约只覆盖它自己发布的二进制;CineX 内嵌的切片由我方自行编译,所以对应源码义务由我方承担,以上方那枚下载为准。
FFmpeg 本体
https://ffmpeg.org/download.html
上游官方源码站,可按版本号下载 n6.0 源码。
x264
https://www.videolan.org/developers/x264.html
VideoLAN 官方源码站。
dav1d
https://code.videolan.org/videolan/dav1d
VideoLAN 官方仓库。
如果你需要与 CineX 内嵌版本完全对应的构建配置或源码包,请写信到 support@getcinex.app,我们会在合理期限内提供。
许可证全文
完整的许可证文本随 App 一起分发:每个内嵌框架的 bundle 内都带有各自的 LICENSE 文件(libavcodec 另带 LICENSE.X264 与 LICENSE.DAV1D)。App 内「账户 → 开源组件与对应源码」那一页会把这些文本原样列出来 —— 它是运行时从你设备上实际那份框架里读的,所以页面与包内文件不可能不一致。
相关说明
服务条款中关于反向工程的限制,不适用于上述按开源许可证获得授权的组件;就该等组件而言,适用的开源许可证条款优先。详见服务条款的「许可范围」一节。
我们如何处理你的数据,见隐私政策。