跳至主内容
非官方测试版翻译

本页面由 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 协同工作,构建更灵活的混合转码流水线。

注意

ICL(Ice Lake)/ JSL(Jasper Lake)/ EHL(Elkhart Lake)及更早代次的 GPU 正在逐步失去 Linux 平台的 QSV 支持。由于 Intel 已弃用 MediaSDK 运行时,这些平台可能在几年后完全停止工作,届时您需切换至 VA-API。如需购置新硬件,请选择更新代的型号。

详细信息请参阅弃用公告旧平台支持说明

备注
  • 与 NVIDIA NVENC 不同,Intel 核显和 ARC 独显没有并发编码会话数量限制。

  • QSV 和 VA-API 在 Windows 和 Linux 上均支持无显示器运行(headless 模式),无需连接物理显示器。

色调映射方法

所有支持 HEVC 10-bit 解码的 Intel GPU 均可实现硬件加速的 HDR/DV 转 SDR 色调映射。

在Windows/Linux平台可选用两种方案,优缺点如下:

  1. OpenCL

    • 优点 - 支持杜比视界 P5 格式,提供精细调优选项,硬件兼容性广泛。
    • 缺点 - Linux 平台有时需手动安装 OpenCL 运行时。
  2. 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主机配置步骤

  1. 若从 6 代前 Intel 处理器升级且未重装系统,请使用 DDU 彻底清除旧版显卡驱动

  2. Intel 下载中心 全新安装最新 EXE 或 INF 驱动

  3. 禁止 Windows 远程桌面会话抢占 GPU 资源:

    • 通过 Win+R 快捷键调出运行对话框,输入 gpedit.msc 打开"本地组策略编辑器"
    • 在左侧导航树定位至 [计算机配置 > 管理模板 > Windows 组件]
    • 在此处找到 [远程桌面服务 > 远程桌面会话主机 > 远程会话环境]
    • 双击右侧面板的 [为所有远程桌面服务会话使用硬件图形适配器]
    • 在弹出窗口中选择 [已禁用] 并点击 [确定],随后重启系统 远程桌面GPU设置
  4. 在 Jellyfin 中启用 QSV 加速并取消勾选不支持的编解码器

Windows 环境验证

  1. 在 Jellyfin Web 客户端播放视频,通过降低分辨率或码率触发视频转码。

  2. 打开"任务管理器"并切换到 GPU 页面。

  3. 按以下方式检查引擎占用状态:

    备注

    重复出现的引擎名称表明该 GPU 可能配备多个 MFX 视频引擎

    • 3D - 2D/3D 引擎,处理 QSV VPP 或 GPGPU 工作负载
    • Copy - 位块传输/复制引擎工作负载
    • Video Decode - QSV 解码器/编码器工作负载
    • Video Processing - QSV VPP 处理器工作负载
    • Compute - GPGPU 或 QSV VPP 工作负载(仅 ARC / DG2+ 支持) Windows平台Intel状态验证

Linux 环境配置

需使用 64 位 Linux 发行版。支持的 GPU 型号取决于内核与固件版本。

Linux 平台已知问题与限制

请参阅此章节了解已知问题与限制

Linux 主机配置指南

Debian/Ubuntu 系统

jellyfin-ffmpeg* deb 软件包已包含除 OpenCL 外的所有必需 Intel 媒体驱动(详见下文说明)

备注

需要 root 权限。

  1. 假设您已将 Jellyfin 仓库添加至 apt 源列表并安装 jellyfin-serverjellyfin-web。若选择使用原生 ffmpeg 而非 jellyfin-ffmpeg,需安装下列 Intel 软件包

    备注

    Debian 用户需在 apt 配置中添加 "non-free" 软件源

  2. 安装 jellyfin-ffmpeg7 软件包。若存在冲突依赖可移除废弃的 jellyfin 元包:

    sudo apt update && sudo apt install -y jellyfin-ffmpeg7
  3. 确保 /dev/dri 目录中至少存在一个 renderD* 设备。否则请升级内核或在 BIOS 中启用核显。

    备注

    注意检查其写入权限和所属用户组(本例中为 render 组):

    $ ls -l /dev/dri

    total 0
    drwxr-xr-x 2 root root 120 Mar 5 05:15 by-path
    crw-rw----+ 1 root video 226, 0 Mar 5 05:15 card0
    crw-rw----+ 1 root video 226, 1 Mar 5 05:15 card1
    crw-rw----+ 1 root render 226, 128 Mar 5 05:15 renderD128
    crw-rw----+ 1 root render 226, 129 Mar 5 05:15 renderD129
  4. jellyfin 用户加入 render 用户组,然后重启 jellyfin 服务:

    备注

    某些发行版中用户组可能为 videoinput 而非 render

    sudo usermod -aG render jellyfin
    sudo systemctl restart jellyfin
  5. 检查 Linux 发行版提供的 intel-opencl-icd 版本:

    备注

    该软件包可能无法在较新的发行版中使用,因为它当前依赖 LLVM 14,而像 Debian Trixie 这样的版本可能不提供该依赖。如果遇到此情况,可改用 Intel compute-runtime 仓库 中的版本。

    $ apt policy intel-opencl-icd

    intel-opencl-icd:
    Installed: (none)
    Candidate: 22.14.22890-1
    ...
  6. 若版本高于 22.xx.xxxxx 直接安装即可。对于 N95/N100 和 Arc A380 等最新产品,需使用 23.xx.xxxxx 及以上版本。否则请从 Intel compute-runtime 仓库 安装。

    sudo apt install -y intel-opencl-icd
  7. 检查支持的 QSV / VA-API 编解码器:

    备注
    • iHD driver 表示支持 QSV 和 VA-API 双接口
    • i965 driver 表示仅支持 VA-API 接口,应仅用于 Broadwell 之前的平台
    sudo /usr/lib/jellyfin-ffmpeg/vainfo --display drm --device /dev/dri/renderD128

    libva info: VA-API version 1.17.0
    libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_17
    libva info: va_openDriver() returns 0
    Trying display: drm
    vainfo: 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
    ...
  8. 检查 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).
    ...
  9. 如需使用第二块 GPU,请在 Jellyfin 控制台中将 renderD128 修改为 renderD129

  10. 在 Jellyfin 中启用 QSV 或 VA-API 并取消勾选不支持的编解码器。

Linux Mint

Linux Mint 基于 Ubuntu 的软件包体系构建

请参照 Debian 和 Ubuntu Linux 的配置步骤,但需手动从 Jellyfin 服务端发布页 安装所有软件包:jellyfin-serverjellyfin-webjellyfin-ffmpeg7。同时根据 官方版本映射表 选择正确的代号。

Arch Linux

备注

需要 root 权限。

  1. 安装 Archlinux/extra 仓库的 jellyfin-ffmpeg 包:

    sudo pacman -Syu jellyfin-ffmpeg
  2. 需手动安装用户态 Intel 媒体驱动和 OpenCL 运行时以启用 QSV / VA-API:

  3. 检查 QSV/VA-API 编解码器及 OpenCL 运行时状态:

    sudo pacman -Syu libva-utils
    sudo vainfo --display drm --device /dev/dri/renderD128
    sudo /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va:/dev/dri/renderD128 -init_hw_device opencl@va
  4. 参考 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,并根据需求修改配置。

  1. 查询宿主机上 render 用户组的 ID,并在 Docker CLI 或 docker-compose 文件中使用:

    备注

    部分发行版中该用户组可能名为 videoinput 而非 render

    getent group render | cut -d: -f3
  2. 使用 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/jellyfin
      user: 1000:1000
      group_add:
      - '122' # Change this to match your "render" host group id and remove this comment
      network_mode: 'host'
      volumes:
      - /path/to/config:/config
      - /path/to/cache:/cache
      - /path/to/media:/media
      devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
  3. 如需使用系统中的第二块 GPU,请将 renderD128 改为 renderD129

  4. 若要试用不稳定版本,请自行承担风险将 jellyfin/jellyfin 替换为 jellyfin/jellyfin:unstable

  5. 验证 QSV 和 VA-API 编解码器支持:

    docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/vainfo
  6. 检查 OpenCL 运行时状态:

    docker exec -it jellyfin /usr/lib/jellyfin-ffmpeg/ffmpeg -v verbose -init_hw_device vaapi=va -init_hw_device opencl@va
  7. 在 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 示例中那样作为独立卷。

  1. Kubernetes(API 版本 1)YAML 配置文件示例:

    # Example of an incomplete deployment spec
    apiVersion: apps/v1
    kind: Deployment
    metadata: ...
    spec:
    template:
    metadata: ...
    spec:
    securityContext:
    runAsUser: 1000 # Similar to "user: 1000:1000" on Docker
    runAsGroup: 1000
    supplementalGroups:
    - 122 # Change this to match your "render" host group id and remove this comment
    containers:
    - name: 'jellyfin'
    image: ...
    ports: ...
    env: ...
    securityContext:
    privileged: true # Container must run as privileged inside of the pod
    volumeMounts:
    - name: 'render-device'
    mountPath: '/dev/dri/renderD128'
    volumes:
    - name: 'render-device'
    hostPath:
    path: '/dev/dri/renderD128'
  2. 容器启动后,可检查 QSV 和 VA-API 编解码器支持状态。

    若出现 error: failed to initialize display 错误,请再次确认 supplementalGroups 配置正确。

    kubectl exec <JELLYFIN_POD_NAME> -- /usr/lib/jellyfin-ffmpeg/vainfo
  3. 在 Jellyfin 中启用 QSV 或 VA-API 加速,并取消勾选不支持的编解码器。

LXC 与 LXD 容器

注意

此方法已在 LXC 3.0 环境测试,旧版本可能不兼容。

  1. 查询宿主机系统 render 组的 GID。

    备注

    某些发行版中,该组可能名为 videoinput 而非 render

    getent group render | cut -d: -f3
  2. 在宿主机安装必需驱动。

  3. 将 GPU 设备添加到容器:

    lxc config device add <CONTAINER_NAME> gpu gpu gid=<GID_OF_HOST_RENDER_GROUP>
  4. 确认容器内已挂载所需设备:

    $ lxc exec jellyfin -- ls -l /dev/dri

    total 0
    crw-rw---- 1 root video 226, 0 Jun 4 02:13 card0
    crw-rw---- 1 root video 226, 0 Jun 4 02:13 controlD64
    crw-rw---- 1 root video 226, 128 Jun 4 02:13 renderD128
  5. 在 Jellyfin 中配置使用 QSV 或 VA-API 加速,如有需要可修改默认 GPU 设备 renderD128

Proxmox 上的 LXC

  1. 确保 GPU 在 Proxmox 宿主机上可作为 DRI 渲染设备访问(如 /dev/dri/renderD128)。 若不存在,请先在宿主机安装必要驱动

  2. Proxmox VE 8 或更新版本

    通过网页界面 Resources 区域设置 Device Passthrough 直通渲染设备。 务必在对话框的高级选项中设置正确的 GID(例如 render 组对应 989)。 可在 LXC 容器的 /etc/group 中查询 GID。

    备注

    必须使用 root 账户登录,其他管理员账户无权限执行此操作。

    Proxmox VE 7 或更早版本

    备注
    • Jellyfin 需在 特权 LXC 容器中运行。

    • 现有非特权容器可通过备份后以特权模式恢复实现转换。

    编辑 /etc/pve/lxc/<CONTAINER_ID>.conf 添加 GPU 设备。 以下示例中的 GID 需根据宿主机实际情况调整。

    注意

    本方案在 Proxmox VE 7.1 测试通过,旧版本需将 cgroup2 改为 cgroup

    lxc.cgroup2.devices.allow: c 226:0 rwm
    lxc.cgroup2.devices.allow: c 226:128 rwm
    lxc.mount.entry: /dev/dri/renderD128 dev/dri/renderD128 none bind,optional,create=file
  3. 重启容器并在容器内安装必需驱动

  4. jellyfin 用户加入第二步选择的组(即容器内拥有 DRI 渲染设备权限的组)。

  5. 在 Jellyfin 中配置使用 QSV 或 VA-API 加速,如有需要可修改默认 GPU 设备 renderD128

Linux 系统验证方法

备注

需要 root 权限。

  1. 宿主机系统上安装 intel-gpu-tools 软件包,该工具用于调试 Linux 平台的 Intel 显卡驱动。软件包名称因发行版而异:

    • Debian & Ubuntu 系统:

      sudo apt update && sudo apt install -y intel-gpu-tools
    • Arch Linux 系统:

      sudo pacman -Syu intel-gpu-tools
  2. 在 Jellyfin Web 客户端中播放视频,并通过设置较低分辨率或比特率触发视频转码

  3. 使用 intel_gpu_top 命令检查各引擎占用情况,示例如下:

    备注

    重复出现的引擎名称表明该 GPU 可能配备多个 MFX 视频引擎。

    • Render/3D - 2D/3D 引擎负载,QSV VPP 或 GPGPU 工作负载
    • Blitter - Blitter/拷贝引擎工作负载
    • Video - QSV 解码器或编码器工作负载
    • VideoEnhance - QSV VPP 处理器工作负载
    • Compute - GPGPU 或 QSV VPP 工作负载(仅限 ARC / DG2+ 架构)
    sudo intel_gpu_top

    intel-gpu-top: Intel Tigerlake (Gen12) @ /dev/dri/card0 - 86/ 349 MHz; 54% RC6
    441 irqs/s

    ENGINES BUSY MI_SEMA MI_WAIT
    Render/3D 19.86% |████████▊ | 0% 0%
    Blitter 0.00% | | 0% 0%
    Video 2.17% |█ | 0% 0%
    VideoEnhance 3.52% |█▋ | 0% 0%

    PID NAME Render/3D Blitter Video VideoEnhance
    ...

低功耗编码

第 9 代及以上架构的英特尔视频编码器支持两种编码模式:

  • 低功耗 / LP 编码(VDEnc + HuC)

  • 非低功耗 / LP 编码(PAK + 媒体内核 + VME)

低功耗编码可借助 HuC 固件减轻 GPU 负载

该模式有助于加速基于 OpenCL 的 HDR/DV 色调映射处理

提示

更多英特尔视频硬件技术细节请参阅英特尔媒体驱动仓库

LP 模式硬件支持

备注

第X代指的是Intel图形架构而非CPU代际。(例如:第9代图形架构 ≠ 第9代处理器)

  • Gen 9.x SKL+ 显卡:支持非 LP 和 LP 编码(仅限 H.264)

  • Gen 11 ICL 显卡:支持两种编码模式

  • Gen 11 JSL/EHL 显卡:仅支持 LP 编码模式

  • Gen 12 TGL/DG1+ 显卡:支持两种编码模式

  • Gen 12.5 DG2/ARC A 系列:仅支持 LP 编码模式

  • Gen 12.7 MTL/ARL、Gen 13(或 Gen 20?)LNL/BMG 及更新版本:仅支持 LP 编码模式

LP 模式系统支持

  • Windows 默认支持两种模式,无需额外配置

  • Linux 在 Gen 12 ADL+ 及更新平台上默认支持两种模式

    旧平台需通过向 i915 内核驱动传递参数手动配置 LP 模式

在 Linux 上配置和验证 LP 模式

注意

除非您使用的是 Intel Jasper LakeElkhart Lake 处理器,或者您希望在 Linux 上获得更快的 OpenCL 色调映射速度,否则无需进行此设置。

备注

需要 root 权限。

  1. 宿主机系统上安装最新的 linux-firmware 软件包。软件包名称因发行版而异:

    • Debian 系统:

      sudo apt update && sudo apt install -y firmware-linux-nonfree
    • Ubuntu 系统:

      sudo apt update && sudo apt install -y linux-firmware
    • Arch Linux 系统:

      sudo pacman -Syu linux-firmware
    • 直接从 Linux 仓库获取固件:

      cd ~/
      git clone --depth=1 https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
      sudo mkdir -p /usr/lib/firmware
      sudo cp -r linux-firmware/i915 linux-firmware/xe /usr/lib/firmware
  2. 在宿主机系统添加必要的 i915 内核参数以启用 GuC 和 HuC 固件加载:

    • 检查正在使用的内核模块,若使用 xe 内核驱动则跳至步骤3
    备注

    ARC Battlemage/B系列、Core Ultra 200V系列(Lunar Lake)及更新的 GPU(Xe-2 及更新架构) 已切换使用 xe 内核驱动而非 i915 驱动。此步骤不再适用。

    lspci -knn | grep -E "i915|xe|VGA|Display"

    00:02.0 Display controller [0380]: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] [8086:46a6] (rev 0c)
    Kernel driver in use: i915
    Kernel modules: i915, xe
    03:00.0 VGA compatible controller [0300]: Intel Corporation DG1 [Iris Xe MAX Graphics] [8086:4905] (rev 01)
    Kernel driver in use: i915
    Kernel modules: i915, xe
    • i915 内核驱动中启用 GuC 加载 HuC 固件:
    备注

    DG1、第12代(ADL-P)、13代、14代以及 ARC Alchemist/A系列 GPU 默认已启用 enable_guc=3。这些 GPU 应跳过此步骤,否则将禁用默认启用的功能。

    sudo mkdir -p /etc/modprobe.d
    sudo sh -c "echo 'options i915 enable_guc=2' >> /etc/modprobe.d/i915.conf"
  3. 更新 initramfs 和 grub。具体命令因发行版而异:

    • Debian 和 Ubuntu 系统:
      sudo update-initramfs -u && sudo update-grub
    • Arch Linux 系统:
      sudo mkinitcpio -P && sudo update-grub
  4. 重启系统并通过以下命令检查 GuC 和 HuC 状态,确保输出中没有 FAIL 或 ERROR 错误:

    sudo reboot
    sudo dmesg | grep -E "i915|xe"
    sudo sh -c "cat /sys/kernel/debug/dri/0/gt*/uc/guc_info"
    sudo sh -c "cat /sys/kernel/debug/dri/0/gt*/uc/huc_info"
    • 如果运行最后两个命令时出现 No such file or directory 错误,请尝试查询不同编号的 dri 设备(例如 1):

      sudo sh -c "cat /sys/kernel/debug/dri/1/gt*/uc/guc_info"
      sudo sh -c "cat /sys/kernel/debug/dri/1/gt*/uc/huc_info"
    • 在非常旧的内核(4.16-)中,最后两个命令应改为:

      sudo cat /sys/kernel/debug/dri/0/i915_guc_load_status
      sudo cat /sys/kernel/debug/dri/0/i915_huc_load_status
  5. 现在您可以在 Jellyfin 仪表板中安全启用英特尔低功耗编码器。