本页面由 PageTurner AI 翻译(测试版)。未经项目官方认可。 发现错误? 报告问题 →
Intel GPU 硬件加速教程
本教程将指导您在 Intel 集成显卡和 ARC 独立显卡上通过 QSV 和 VA-API 实现完整的视频硬件加速。如果您使用的是 macOS,请改用 VideoToolbox。
加速方法
大多数 Intel GPU 均支持硬件加速转码。
在 Windows 系统上,QSV 是唯一可用方法。
在Linux系统中有两种方案:
-
QSV - 主流 GPU 首选方案,性能更优
-
VA-API - Broadwell 之前旧款 GPU 的兼容方案
Linux VA-API 支持几乎所有 Intel GPU。
Linux QSV 的支持平台仅限于 Broadwell(第 5 代酷睿)及更新架构。
Intel OneVPL / MediaSDK 提供的 QSV 接口是基于 Linux VA-API 和 Windows DXVA/D3D11VA 的高层实现,在支持的平台上能提供更优性能和更精细的调优选项。
QSV 可与 VA-API 和 DXVA/D3D11VA 协同工作,构建更灵活的混合转码流水线。
-
与 NVIDIA NVENC 不同,Intel 核显和 ARC 独显没有并发编码会话数量限制。
-
QSV 和 VA-API 在 Windows 和 Linux 上均支持无显示器运行(headless 模式),无需连接物理显示器。
色调映射方法
所有支持 HEVC 10-bit 解码的 Intel GPU 均可实现硬件加速的 HDR/DV 转 SDR 色调映射。
在Windows/Linux平台可选用两种方案,优缺点如下:
-
OpenCL
- 优点 - 支持杜比视界 P5 格式,提供精细调优选项,硬件兼容性广泛。
- 缺点 - Linux 平台有时需手动安装 OpenCL 运行时。
-
QSV VPP
- 优点 - 功耗更低,由 Intel 固定功能 LUT 硬件实现。
- 缺点 - 调优选项有限,支持的 GPU 型号较少,目前仅适用于 Linux。
Prefer OS native DXVA or VA-API hardware decoders功能可在原生解码器与 QSV 解码器之间切换。启用杜比视界支持需勾选此选项。
选择GPU硬件
初学者请参考硬件选择指南获取选购建议,高级用户请继续阅读本节内容。
请勿选用型号后缀为 "F" 的 Intel 处理器——此类产品未集成核显。
购置新显卡前,可通过 Intel ark 网站查询 Quick Sync Video 支持情况。
转码H.264
AVC / H.264 8位格式因其出色的兼容性仍被广泛使用。所有支持QSV的Intel GPU均可对其进行解码和编码。
- 解码与编码 H.264 8位 - 任何支持Quick Sync Video (QSV)的Intel GPU
转码HEVC
HEVC/H.265 仍然是存储4K 10-bit、HDR和杜比视界视频的首选格式。得益于x265成熟的软件编码支持,以及2016年后发布的大多数GPU广泛实现的硬件编码支持。
Intel GPU也不例外:
-
解码与编码 HEVC 8位 - 第9代Skylake(第6代酷睿)及更新版本
-
解码与编码 HEVC 10位 - 第9.5代Kaby Lake(第7代酷睿)、Apollo Lake、Gemini Lake(奔腾和赛扬)及更新版本
请注意,配备HD 5xx核显的第6代酷睿不支持10位编码,建议选择第7代及更新的处理器,它们通常配备HD / UHD 6xx系列核显。
AV1转码支持
AV1是免版税的未来视频编解码器。其更小的文件尺寸能显著节省存储空间和网络带宽,但缺点是编解码对CPU要求极高。硬件加速使得实时转码AV1流成为可能。AV1编码功能在Jellyfin 10.9及以上版本提供支持。
Intel在其最新GPU中增加了对AV1加速的支持:
-
解码 AV1 8/10位 - 第12代Tiger Lake(第11代酷睿)及更新版本
-
编码 AV1 8/10位 - 第12.5代DG2 / ARC A系列、第12.7代Meteor Lake(第14代移动版酷睿 / 第1代酷睿Ultra)及更新版本
请注意,Jasper Lake和Elkhart Lake处理器属于第10代奔腾/赛扬/凌动,不支持AV1加速。
其他编解码器支持
请参考以下资源:
速度与画质表现
Intel在每一代图形架构中都会提升其固定功能编码器的速度和视频质量。
按性能可将其分为4个等级:
-
入门级 - HD / UHD 600、605和61x
提示这些核显通常用于迷你主机或NAS设备,能够转码HEVC 10位并应用色调映射滤镜。受限于性能和功耗,不要期望过高,但对于个人使用仍绰绰有余。
-
主流级 - HD / UHD 620、630、Iris 640、655以及第11代核显
提示这些核显比入门级拥有更强的计算能力,可同时处理多个4k HDR HEVC 10位转码任务。请注意,第11代核显的编码器质量较第9代略有提升。
-
高性能 - UHD 7xx 系列和 Iris Xe 显卡
提示这些 GPU 采用 Gen 12 XeLP 架构,支持 AV1 硬件解码,显著提升了视频质量和速度。UHD 770 和 Iris Xe 等型号配备了第二个 MFX 视频引擎,增强了并发转码能力。
-
发烧级 - ARC A 系列和 B 系列独立显卡及集成显卡
提示ARC A 系列 GPU 采用 Gen 12.5 XeHPG 架构,在 XeLP 的基础上持续改进,支持 AV1 硬件编码以及改进的 H.264 和 HEVC 编码。这使得其编码质量可与 x264 和 x265 软件编码器的 medium 预设相媲美。所有 ARC A 系列 GPU 型号均配备两个 MFX 视频引擎。ARC B 系列的编码质量与上一代相似,但编码速度略有提升。
OneVPL 和 MediaSDK
OneVPL 是一种新的 QSV 实现,旨在取代 MediaSDK。两者均提供 Quick Sync Video (QSV) 运行时。
Intel 在 Gen 12 及以上显卡(第 11 代酷睿及更新处理器,即 Tiger Lake 和 Rocket Lake)上支持 OneVPL。
-
最显著的区别在于 OneVPL 支持 ARC GPU 上的新型 AV1 硬件编码器。
-
FFmpeg 6.0 启用了 OneVPL。对于最终用户而言,这一过程是无缝的。
ARC GPU 支持
Jellyfin 服务器 支持 Intel ARC Alchemist/A 系列独立显卡,适用于 Windows 和 Linux 6.2+ 系统。若要在 Linux 上使用 ARC Battlemage/B 系列独立显卡,需要内核版本 6.12+。Windows 同样支持,只需安装 GPU 驱动程序。
您只需按照 Windows 设置 和 Linux 设置 进行配置和验证即可。
-
Resizable-BAR 仅对 ARC B 系列显卡的硬件加速是强制要求的,否则媒体驱动程序会导致转码器崩溃。对于 ARC A 系列显卡,媒体驱动程序可以容忍未启用该功能,但如果处理器、主板和 BIOS 支持,也建议启用 Resizable-BAR 以获得最佳性能。
-
如果支持,应在 BIOS 中启用 ASPM。这可以大幅降低 ARC GPU 的空闲功耗。
-
ARC GPU 默认使用低功耗编码。较旧的发行版可能缺少 GuC 和 HuC 固件,您可能需要从 内核固件 git 手动下载。
-
旧版内核构建配置 可能未启用 MEI 模块,而这些模块是在 Linux 上使用 ARC GPU 所必需的。
-
从 ARC Battlemage/B 系列独立显卡开始,Intel 已默认在新款 GPU(Xe-2 及更新架构)上启用 xe 内核驱动程序,以取代长期使用的 i915 内核驱动程序。低功耗编码、GuC 和 HuC 固件会自动启用,用户不应再参考
i915.enable_guc=xxx等设置,这些设置已不再相关。
Windows环境配置
推荐使用 Windows 10 64 位或更新版本。QSV 在 Windows Docker 和 WSL/WSL2 中不可用。
Windows平台已知问题与限制
请参阅此章节了解已知问题与限制
Windows主机配置步骤
-
若从 6 代前 Intel 处理器升级且未重装系统,请使用 DDU 彻底清除旧版显卡驱动
-
从 Intel 下载中心 全新安装最新 EXE 或 INF 驱动
-
禁止 Windows 远程桌面会话抢占 GPU 资源:
- 通过 Win+R 快捷键调出运行对话框,输入
gpedit.msc打开"本地组策略编辑器" - 在左侧导航树定位至 [计算机配置 > 管理模板 > Windows 组件]
- 在此处找到 [远程桌面服务 > 远程桌面会话主机 > 远程会话环境]
- 双击右侧面板的 [为所有远程桌面服务会话使用硬件图形适配器]
- 在弹出窗口中选择 [已禁用] 并点击 [确定],随后重启系统

- 通过 Win+R 快捷键调出运行对话框,输入
-
在 Jellyfin 中启用 QSV 加速并取消勾选不支持的编解码器
Windows 环境验证
-
在 Jellyfin Web 客户端播放视频,通过降低分辨率或码率触发视频转码。
-
打开"任务管理器"并切换到 GPU 页面。
-
按以下方式检查引擎占用状态:
备注重复出现的引擎名称表明该 GPU 可能配备多个 MFX 视频引擎
- 3D - 2D/3D 引擎,处理 QSV VPP 或 GPGPU 工作负载
- Copy - 位块传输/复制引擎工作负载
- Video Decode - QSV 解码器/编码器工作负载
- Video Processing - QSV VPP 处理器工作负载
- Compute - GPGPU 或 QSV VPP 工作负载(仅 ARC / DG2+ 支持)

Linux 环境配置
需使用 64 位 Linux 发行版。支持的 GPU 型号取决于内核与固件版本。
Linux 平台已知问题与限制
请参阅此章节了解已知问题与限制
Linux 主机配置指南
Debian/Ubuntu 系统
jellyfin-ffmpeg* deb 软件包已包含除 OpenCL 外的所有必需 Intel 媒体驱动(详见下文说明)
需要 root 权限。
-
假设您已将 Jellyfin 仓库添加至 apt 源列表并安装
jellyfin-server和jellyfin-web。若选择使用原生 ffmpeg 而非 jellyfin-ffmpeg,需安装下列 Intel 软件包备注Debian 用户需在 apt 配置中添加 "non-free" 软件源
-
安装
jellyfin-ffmpeg7软件包。若存在冲突依赖可移除废弃的jellyfin元包:sudo apt update && sudo apt install -y jellyfin-ffmpeg7 -
确保
/dev/dri目录中至少存在一个renderD*设备。否则请升级内核或在 BIOS 中启用核显。备注注意检查其写入权限和所属用户组(本例中为
render组):$ ls -l /dev/dritotal 0drwxr-xr-x 2 root root 120 Mar 5 05:15 by-pathcrw-rw----+ 1 root video 226, 0 Mar 5 05:15 card0crw-rw----+ 1 root video 226, 1 Mar 5 05:15 card1crw-rw----+ 1 root render 226, 128 Mar 5 05:15 renderD128crw-rw----+ 1 root render 226, 129 Mar 5 05:15 renderD129 -
将
jellyfin用户加入render用户组,然后重启jellyfin服务:备注某些发行版中用户组可能为
video或input而非render。sudo usermod -aG render jellyfinsudo systemctl restart jellyfin -
检查 Linux 发行版提供的
intel-opencl-icd版本:备注该软件包可能无法在较新的发行版中使用,因为它当前依赖 LLVM 14,而像 Debian Trixie 这样的版本可能不提供该依赖。如果遇到此情况,可改用 Intel compute-runtime 仓库 中的版本。
$ apt policy intel-opencl-icdintel-opencl-icd:Installed: (none)Candidate: 22.14.22890-1... -
若版本高于
22.xx.xxxxx直接安装即可。对于 N95/N100 和 Arc A380 等最新产品,需使用23.xx.xxxxx及以上版本。否则请从 Intel compute-runtime 仓库 安装。sudo apt install -y intel-opencl-icd -
检查支持的 QSV / VA-API 编解码器:
备注iHD driver表示支持 QSV 和 VA-API 双接口i965 driver表示仅支持 VA-API 接口,应仅用于 Broadwell 之前的平台
sudo /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128libva info: VA-API version 1.17.0libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.solibva info: Found init function __vaDriverInit_1_17libva info: va_openDriver() returns 0Trying display: drmvainfo: VA-API version: 1.17 (libva 2.17.0)vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 23.1.2 (xxxxxxx)vainfo: Supported profile and entrypoints... -
检查 OpenCL 运行时状态:
sudo /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va[AVHWDeviceContext @ 0x55cc8ac21a80] 0.0: Intel(R) OpenCL HD Graphics / Intel(R) Iris(R) Xe Graphics [0x9a49][AVHWDeviceContext @ 0x55cc8ac21a80] Intel QSV to OpenCL mapping function found (clCreateFromVA_APIMediaSurfaceINTEL).[AVHWDeviceContext @ 0x55cc8ac21a80] Intel QSV in OpenCL acquire function found (clEnqueueAcquireVA_APIMediaSurfacesINTEL).[AVHWDeviceContext @ 0x55cc8ac21a80] Intel QSV in OpenCL release function found (clEnqueueReleaseVA_APIMediaSurfacesINTEL).... -
如需使用第二块 GPU,请在 Jellyfin 控制台中将
renderD128修改为renderD129。 -
在 Jellyfin 中启用 QSV 或 VA-API 并取消勾选不支持的编解码器。
Linux Mint
Linux Mint 基于 Ubuntu 的软件包体系构建
请参照 Debian 和 Ubuntu Linux 的配置步骤,但需手动从 Jellyfin 服务端发布页 安装所有软件包:jellyfin-server、jellyfin-web 和 jellyfin-ffmpeg7。同时根据 官方版本映射表 选择正确的代号。
Arch Linux
需要 root 权限。
-
安装 Archlinux/extra 仓库的
jellyfin-ffmpeg包:sudo pacman -Syu jellyfin-ffmpeg -
需手动安装用户态 Intel 媒体驱动和 OpenCL 运行时以启用 QSV / VA-API:
-
检查 QSV/VA-API 编解码器及 OpenCL 运行时状态:
sudo pacman -Syu libva-utilssudo vainfo --display drm --device /dev/dri/renderD128sudo /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va -
参考 Debian 和 Ubuntu Linux 的剩余配置步骤。
其他发行版
对于缺乏常规维护的发行版,我们提供便携式 jellyfin-ffmpeg 二进制文件。
可通过以下链接下载:
glibc 和 Linux 内核最低要求:
- x86_64 / amd64 架构 - glibc >= 2.28, Linux 内核 >= 4.18 (2018 年及之后发布的主流发行版)
解压后安装到正确路径,并在 Jellyfin 控制台修改 FFmpeg 路径使其匹配:
需要 root 权限。
cd ~/
mkdir -p jellyfin-ffmpeg
wget https://repo.jellyfin.org/releases/ffmpeg/<VERSION>/jellyfin-ffmpeg_<VERSION>_portable_linux64-gpl.tar.xz
tar -xvf jellyfin-ffmpeg_<VERSION>_portable_linux64-gpl.tar.xz -C jellyfin-ffmpeg
sudo mv jellyfin-ffmpeg /usr/lib
sudo ldd -v /usr/lib/jellyfin-ffmpeg/ffmpeg
安装其他必要的 Intel 驱动软件包及其依赖项(包含以下关键词):
-
Intel 媒体驱动 - iHD
-
Intel vaapi 驱动 - i965
-
Intel 媒体 SDK - MFX
-
Intel oneVPL-intel-gpu —— VPL
-
Intel 计算运行时 - OpenCL
Linux 虚拟化环境配置
官方 Docker 镜像
官方 Docker 镜像已包含所有必要的用户态 Intel 媒体驱动和 OpenCL 运行时。
您只需将主机的 render 组 ID 传递给 Docker,并根据需求修改配置。
-
查询宿主机上
render用户组的 ID,并在 Docker CLI 或 docker-compose 文件中使用:备注部分发行版中该用户组可能名为
video或input而非render。getent group render | cut -d: -f3 -
使用 docker 命令行 或 docker compose:
-
命令行示例:
docker run -d \--name=jellyfin \--volume /path/to/config:/config \--volume /path/to/cache:/cache \--volume /path/to/media:/media \--user 1000:1000 \--group-add="122" \ # Change this to match your "render" host group id and remove this comment--net=host \--restart=unless-stopped \--device /dev/dri/renderD128:/dev/dri/renderD128 \jellyfin/jellyfin -
docker-compose YAML 配置文件示例:
services:jellyfin:image: jellyfin/jellyfinuser: 1000:1000group_add:- '122' # Change this to match your "render" host group id and remove this commentnetwork_mode: 'host'volumes:- /path/to/config:/config- /path/to/cache:/cache- /path/to/media:/mediadevices:- /dev/dri/renderD128:/dev/dri/renderD128
-
-
如需使用系统中的第二块 GPU,请将
renderD128改为renderD129。 -
若要试用不稳定版本,请自行承担风险将
jellyfin/jellyfin替换为jellyfin/jellyfin:unstable。 -
验证 QSV 和 VA-API 编解码器支持:
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo -
检查 OpenCL 运行时状态:
docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va -
在 Jellyfin 中启用 QSV 或 VA-API 并取消勾选不支持的编解码器。
Linuxserver.io Docker 方案
LSIO Docker 镜像由 linuxserver.io 维护,请参考其 GitHub 文档:linuxserver/docker-jellyfin。
官方 Docker 镜像与 LSIO Docker 镜像中 Jellyfin 配置文件和数据的存储路径不同,因此无法直接互换使用。
Kubernetes 方案
配置原理与 Docker 相同,但需注意:Pod 中的容器必须以 privileged 权限运行。
Kubernetes 中设备通过主机路径挂载添加,而非像 Docker 示例中那样作为独立卷。
-
Kubernetes(API 版本 1)YAML 配置文件示例:
# Example of an incomplete deployment specapiVersion: apps/v1kind: Deploymentmetadata: ...spec:template:metadata: ...spec:securityContext:runAsUser: 1000 # Similar to "user: 1000:1000" on DockerrunAsGroup: 1000supplementalGroups:- 122 # Change this to match your "render" host group id and remove this commentcontainers:- name: 'jellyfin'image: ...ports: ...env: ...securityContext:privileged: true # Container must run as privileged inside of the podvolumeMounts:- name: 'render-device'mountPath: '/dev/dri/renderD128'volumes:- name: 'render-device'hostPath:path: '/dev/dri/renderD128' -
容器启动后,可检查 QSV 和 VA-API 编解码器支持状态。
若出现
error: failed to initialize display错误,请再次确认supplementalGroups配置正确。kubectl exec <JELLYFIN_POD_NAME> -- /usr/lib/jellyfin-ffmpeg/vainfo -
在 Jellyfin 中启用 QSV 或 VA-API 加速,并取消勾选不支持的编解码器。
LXC 与 LXD 容器
此方法已在 LXC 3.0 环境测试,旧版本可能不兼容。
-
查询宿主机系 统
render组的 GID。备注某些发行版中,该组可能名为
video或input而非render。getent group render | cut -d: -f3 -
在宿主机安装必需驱动。
-
将 GPU 设备添加到容器:
lxc config device add <CONTAINER_NAME> gpu gpu gid=<GID_OF_HOST_RENDER_GROUP> -
确认容器内已挂载所需设备:
$ lxc exec jellyfin -- ls -l /dev/dritotal 0crw-rw---- 1 root video 226, 0 Jun 4 02:13 card0crw-rw---- 1 root video 226, 0 Jun 4 02:13 controlD64crw-rw---- 1 root video 226, 128 Jun 4 02:13 renderD128 -
在 Jellyfin 中配置使用 QSV 或 VA-API 加速,如有需要可修改默认 GPU 设备
renderD128。
Proxmox 上的 LXC
-
确保 GPU 在 Proxmox 宿主机上可作为 DRI 渲染设备访问(如
/dev/dri/renderD128)。 若不存在,请先在宿主机安装必要驱动。 -
Proxmox VE 8 或更新版本:
通过网页界面
Resources区域设置Device Passthrough直通渲染设备。 务必在对话框的高级选项中设置正确的 GID(例如render组对应989)。 可在 LXC 容器的/etc/group中查询 GID。备注必须使用
root账户登录,其他管理员账户无权限执行此操作。Proxmox VE 7 或更早版本:
备注-
Jellyfin 需在
-