# FFmpeg 源码与许可证说明

本目录包含本站在 WebAssembly 构建中使用的 FFmpeg 相关源码与许可证全文。

## 使用方式

本站的帧级码流分析功能（QP / 运动矢量导出）由 FFmpeg 7.1 编译为 WebAssembly 提供，
构建产物为站点根目录下的 `block_analyzer.wasm` 与 `block_analyzer.js`。

该 wasm 模块**作为独立文件在运行时通过 fetch() 加载**，未静态链接进本站的 JavaScript 代码包。

## 许可证

FFmpeg 采用 **GNU Lesser General Public License version 3 (LGPLv3)**。

本站的构建配置未启用任何 GPL 组件（`CONFIG_GPL 0`、`CONFIG_LGPLV3 1`），
因此适用 LGPLv3，本站可以闭源分发自有代码。

许可证全文见上级目录 `COPYING.LGPLv3`，或访问 <https://www.gnu.org/licenses/lgpl-3.0.html>。

FFmpeg 项目主页：<https://ffmpeg.org/>

## 本目录包含的修改后源码

依据 LGPLv3 第 4(d)(0) 条的要求，本站公开对 FFmpeg 源码所做的修改。
本目录包含以下三个文件的修改后版本（对应 FFmpeg 7.1 的 `libavcodec/hevc/` 目录）：

| 文件 | 说明 |
|---|---|
| `hevcdec.h` | HEVC 解码器上下文定义 |
| `hevcdec.c` | HEVC 解码器主流程 |
| `refs.c` | HEVC 参考帧管理与输出帧队列 |

这三个文件是为逐帧导出 QP / 运动矢量 side data 所做的适配。具体改动内容以上述文件
与上游 FFmpeg 7.1 的差异为准——依据 LGPLv3，源码本身已完整提供于此，不再另行描述。

## 获取完整源码

完整的 FFmpeg 7.1 源码可从官方获取：

- 发布页：<https://ffmpeg.org/releases/ffmpeg-7.1.tar.xz>
- 镜像：<https://git.ffmpeg.org/ffmpeg.git>

本站构建所用的完整源码即官方 7.1 版本加上上述三个文件的修改。
如需其他文件或有任何疑问，请联系本站。
