前言
由于 Jellyfin 的 GPL 协议和 Intel 的 media-driver (iHD) Linux 驱动(部分开源)在协议上不兼容的缘故,Jellyfin 官方的 Docker 镜像:jellyfin/jellyfin 并不包含 Intel Linux 核显驱动。但是 Intel 的 QuickSync QSV 硬件加速依赖于该驱动,并且 Intel 10 代酷睿(Comet Lake)以及更新的处理器需要该驱动才能正常使用硬件加速。另外 VPP/OpenCL 色调映射也需要该驱动才能正常运作。
考虑到手动安装或编译 Intel 核显驱动对于用户来说并不容易,本文在此提供了一个开箱即用的 Docker 镜像,包含最新的驱动、jellyfin-ffmpeg、补丁、CJK 系统字体等。后续硬件加速的第一手修复也会推送到此镜像中。Docker 配置文件和相关选项可以继续沿用 jellyfin/jellyfin 的相关教程。
个人主要负责 Jellyfin 硬件编解码和滤镜相关功能的开发,范畴之外的功能请求可能不会回应。
开发者提供的中国特供版镜像
Docker 镜像: docker pull nyanmisaka/jellyfin:latest
Windows 版:
度云:https://pan.baidu.com/s/1OK6NAtsigq4SUI2DAKDGgw?pwd=q8we
备用:https://hub.docker.com/r/nyanmisaka/jellyfin
Jellyfin 10.8 中的硬件加速改进
先前的 Jellyfin 10.7 中启用了 Intel、AMD、NVIDIA 的硬件 HDR 转 SDR 色调映射,但速度还有很大提升空间,且 Intel 核显的完整支持在 Linux。
这次 10.8 更新主要带来的是完全基于显卡的缩放、反交错、色调映射、字幕烧录,免去使用软件滤镜造成的性能损失。另外添加了测试版 AV1 硬件解码支持。
10.8 正式版中新增了对杜比视界 Profile 5 和 8 的色调映射支持,详情请见文章:
一个很关键的更新是支持了 Windows 10/11 中使用 Intel 核显进行 HDR 色调映射,为了保证理想的速度,请使用诸如 HD/UHD 6xx、UHD 7xx、Xe 系列的显卡,并勾选相应的解码器、硬件编码选项,显卡驱动尽量更新到最新。
NVIDIA 的色调映射切换到 CUDA 内核实现,大幅提升色调映射性能,避免使用 OpenCL 造成的内存拷贝。
AMD 核显支持基于 OpenCL 的滤镜,大幅降低 CPU 占用,此功能仅限 Windows。
修复了 Intel OpenCL 色调映射无法和 PGS 图形字幕同时使用的 BUG,提升了字幕烧录的速度。感谢资深用户 @达文牛 的反馈和发布的一系列教程。
对于硬件转码设置的一些提示
1. Intel、AMD、NVIDIA 三家的显卡/核显均不支持对 H.264 10bit 硬件加速,请使用 HEVC 10bit 替代。
2. 开启 Low-Power 低电压模式可以提升 Intel 的转码和色调映射性能,此功能在 Windows 下可以直接开启,但在 Linux 下需要手动添加内核参数 i915.enable_guc=2 才能使用。11 代之前的处理器仅支持开启 Low-Power H.264。
3. Linux 下,如果 Intel 核显的 VPP 和 OpenCL 色调映射同时开启,则会优先使用 VPP。VPP 色调映射只支持部分 Intel 核显,目前支持的代号如下:DG1/SG1(独显)、TigerLakeX(1135G7, 1165G7…)、IceLake(1065G7…)、GeminiLake/KabyLakeX(J4005, J5005, i3-7100|8100|9100|10100…) 类比到对应处理器代号的赛扬/奔腾/酷睿 i3/i5/i7/i9 版本。诸如 J3455,N5105,N6005 的 ApolloLake/JasperLake 处理器不支持 VPP 色调映射。
4. Linux 下,对于 Intel 核显,建议优先使用 QSV 而非 VAAPI,QSV 通常能提供更高的吞吐量。
对于 Intel 转码核显的选择
1. 用于转码 4K HDR HEVC、VP9 10bit 视频的最低配置为 J4005 类似的代号为 GeminiLake 的处理器,即 UHD 600/605。更低或更旧的核显加速效果非常受限,或者只能加速H.264 8bit。
2. 最近新出的 N5105/N6005 系列 Jasper Lake 处理器,产品定位于取代 J4005 同代的处理器,在转码性能上远超后者 Gemini Lake。N5105 具有 24EU 而 N6005 具有 32EU,更多的 EU(Intel 核显运算单元)有助于加快色调映射。所以 N5095 的 16EU 要比前两者慢一些。实测 N6005 双通道内存转码性能接近 HD630 核显。
3. 用于转码 4K HDR HEVC、VP9 10bit 视频的主流配置为 i3-7100/8100/9100/10100 和同代 i5/i7 中的 HD/UHD630 核显,此类核显可以胜任绝大部分 4K HDR HEVC VP9 10bit 转码,包括 Linux 和 Windows 下的色调映射。
4. 用于转码 4K HDR HEVC、AV1、VP9 10bit 视频的发烧级配置为 Xe 核显或 UHD770 核显。与上面提到的UHD6xx 具有第 9 代图形架构不同的是,此类新核显为 Intel 的第 12 代图形架构,并且辅以 2 个编解码引擎。在转码效能上有很高的提升,几乎是翻倍的速度。选购前可以搜索“处理器名称 ark”来查看核显详细规格,如上图所示“多种格式编解码器引擎”数量为 2 。
结语
感谢大家对 Jellyfin 开源媒体系统的持续关注和使用!
过去的两年里我对 Jellyfin 的硬件加速进行了很多改进和测试,并添加了基于 CUDA 和 OpenCL 的 HDR 色调映射功能,以保证在主流硬件上的运行和不输 Emby 和 Plex 的硬件转码性能。用爱发电不易,购置硬件测试更不易,如果觉得我的作品对你有帮助,欢迎到我的Github主页赞助我。
原文链接:https://www.bilibili.com/read/cv14514123