ray-goldman/ffmpeg-jellyfix
GitHub: ray-goldman/ffmpeg-jellyfix
为 Jellyfin 用户提供的非官方 FFmpeg 8.1.2 Windows 定制构建,用于修补 MagicYUV 解码器中的 CVE-2026-8461 漏洞。
Stars: 0 | Forks: 0
# ffmpeg-jellyfix
非官方的 Windows FFmpeg 8.1.2 构建版本,专为需要解决 [CVE-2026-8461](https://nvd.nist.gov/vuln/detail/CVE-2026-8461) 的 Jellyfin 用户打造。NVD 表示此 MagicYUV 解码器问题影响 8.1.2 之前的 FFmpeg 版本。
## 二进制文件
本仓库有意不提交 `libfdk_aac` 二进制文件。经核实的本地构建版本使用了 `build/testested-local/SHA256SUMS.txt` 中的哈希值,但上游 FFmpeg 将此配置标记为 `nonfree and unredistributable`(非自由且不可分发),因此更安全的公共信任模型是:检查配方,自行构建,并将 Jellyfin 指向您的本地输出文件。
## Jellyfin 用法
1. Clone 此仓库。
2. 运行 `.\build\build.ps1`。
3. 将 out\ffmpeg.exe 和 out\ffprobe.exe 复制到您的 Jellyfin Server 目录中,并在备份后替换原有的捆绑二进制文件。
4. 重启 Jellyfin。
5. 检查 Jellyfin 播放/转码日志中报告的版本:
```
ffmpeg version 8.1.2-Jellyfin
```
## 此构建版本是什么
- 来自 `https://ffmpeg.org/releases/ffmpeg-8.1.2.tar.xz` 的上游 FFmpeg 8.1.2 源码
- Windows x64 命令行工具:`ffmpeg.exe` 和 `ffprobe.exe`
- 版本后缀:`Jellyfin`
- 具备足够的静态/便携性,无需在其旁边放置 MSYS2 编解码器 DLL 即可运行
- 包含 `libfdk_aac`、`libx264`、`libx265`、`libsvtav1`、`dav1d`、`zimg`、CUDA/NVENC/NVDEC、AMF、QSV/oneVPL、DXVA2、D3D11VA 和 D3D12VA
## 此构建版本不是什么
- 不是官方的 Jellyfin 发行版
- 不是基于官方的 `jellyfin-ffmpeg` 分支构建的
- 不包含仅用于 Jellyfin 的补丁(例如 `tonemapx`)
- 由于启用了 `libfdk_aac`,因此无法在上游 FFmpeg 的常规 GPL 条款下重新分发
## 许可证警告
配置命令行使用了 `--enable-nonfree --enable-libfdk-aac` 以匹配正常工作的 Jellyfin 捆绑二进制文件。上游 FFmpeg 将此报告为:
```
License: nonfree and unredistributable
```
## 自行重新构建
这些步骤假设 Windows 和 MSYS2 安装在 `C:\msys64`。
安装 `build/msys2-packages.txt` 中列出的 MSYS2 软件包:
```
$packages = Get-Content .\build\msys2-packages.txt
& C:\msys64\usr\bin\pacman.exe -S --needed $packages
```
构建:
```
.\build\build.ps1
```
该脚本会下载 FFmpeg 8.1.2,检查源码的 SHA256,应用 `patches/ffmpeg-8.1.2-windows-static-jellyfin.patch`,使用 `BUILD-INFO.txt` 中记录的相同选项进行配置,然后构建并将输出写入 `out/`。
验证您构建的二进制文件:
```
.\build\verify.ps1 -BinDir .\out
```
## 构建说明
请参阅 `BUILD-INFO.txt` 以了解确切的源码哈希值、主要配置选项以及少量的本地补丁说明。
标签:AI合规, FFmpeg, Jellyfin, Libemu, 多媒体处理, 媒体服务器, 漏洞补丁, 视频转码