menu E4b9a6's blog
rss_feed
E4b9a6's blog
有善始者实繁,能克终者盖寡。

Jellyfin开启Intel Quick Sync 硬件加速转码

作者:E4b9a6, 创建:2024-08-17, 字数:3578, 已阅:380, 最后更新:2024-08-17

Quick Sync 是 Intel 的硬件视频编码和解码技术,它提供了更高效的硬件加速性能

与 VAAPI(Video Acceleration API) 相比,VAAPI 是一个开源的 API,允许应用程序使用 GPU 进行视频处理,但它的性能通常是不如 Quick Sync 来的高效

Quick Sync 在低端 Intel 处理器上非常有性价比,实测 Intel J3455 CPU 转码 4K 占用率不到 40%

但由于 Quick Sync 是 Intel 的专属技术,所以需要手动安装其依赖驱动

本文用的是 LinuxServer 制作的 Jellyfin docker 镜像,其他镜像可能不兼容/不通用

LinuxServer 的 Docker 镜像质量通常都是上佳,一般优先考虑他家的镜像

下面是我的 docker-compose.yaml 文件参考:

YAML
services:
  jellyfin:
    image: lscr.io/linuxserver/jellyfin:latest
    container_name: jellyfin
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Asia/Shanghai
      # - JELLYFIN_PublishedServerUrl=192.168.0.5 #optional
    volumes:
      - ./config:/config
      - /dev/dri:/dev/dri
      - ./media:/media
    devices:
      - /dev/dri/renderD128:/dev/dri/renderD128
    ports:
      - 8096:8096
      # - 8920:8920 #optional
      # - 7359:7359/udp #optional
      # - 1900:1900/udp #optional:
    restart: unless-stopped

运行镜像并进入容器内部:

Bash
# 运行容器
sudo docker-compose up -d
# 进入容器
sudo docker exec -it jellyfin /bin/bash

在容器内执行:

Bash
apt update -y
apt install intel-media-va-driver-non-free vainfo -y

使用 vainfo 确认驱动是否安装成功:

Bash
root@278s7h26x:/# vainfo

error: XDG_RUNTIME_DIR is invalid or not set in the environment.
error: can't connect to X server!
libva info: VA-API version 1.20.0
libva info: Trying to open /usr/lib/x86_64-linux-gnu/dri/iHD_drv_video.so
libva info: Found init function __vaDriverInit_1_20
libva info: va_openDriver() returns 0
vainfo: VA-API version: 1.20 (libva 2.12.0)
vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 24.1.0 ()
vainfo: Supported profile and entrypoints
      VAProfileNone                   : VAEntrypointVideoProc
      VAProfileNone                   : VAEntrypointStats
      VAProfileMPEG2Simple            : VAEntrypointVLD
      VAProfileMPEG2Main              : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointVLD
      VAProfileH264Main               : VAEntrypointEncSlice
      VAProfileH264Main               : VAEntrypointFEI
      VAProfileH264Main               : VAEntrypointEncSliceLP
      VAProfileH264High               : VAEntrypointVLD
      VAProfileH264High               : VAEntrypointEncSlice
      VAProfileH264High               : VAEntrypointFEI
      VAProfileH264High               : VAEntrypointEncSliceLP
      VAProfileVC1Simple              : VAEntrypointVLD
      VAProfileVC1Main                : VAEntrypointVLD
      VAProfileVC1Advanced            : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointVLD
      VAProfileJPEGBaseline           : VAEntrypointEncPicture
      VAProfileH264ConstrainedBaseline: VAEntrypointVLD
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSlice
      VAProfileH264ConstrainedBaseline: VAEntrypointFEI
      VAProfileH264ConstrainedBaseline: VAEntrypointEncSliceLP
      VAProfileVP8Version0_3          : VAEntrypointVLD
      VAProfileVP8Version0_3          : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointVLD
      VAProfileHEVCMain               : VAEntrypointEncSlice
      VAProfileHEVCMain               : VAEntrypointFEI
      VAProfileHEVCMain10             : VAEntrypointVLD
      VAProfileVP9Profile0            : VAEntrypointVLD

看到 Driver version: Intel iHD driver for Intel(R) Gen Graphics - 24.1.0 () 表示Intel驱动正常

最后在 Jellyfin 的 Dashboard 中配置:

找一部 HEVC 的片播放并查看转码信息:

观察服务器的后台资源消耗:

参考资料:


[[replyMessage== null?"发表评论":"发表评论 @ " + replyMessage.m_author]]

account_circle
email
web_asset
textsms

评论列表([[messageResponse.total]])

还没有可以显示的留言...
gravatar
[[messageItem.m_author]] [[messageItem.m_author]]
[[messageItem.create_time]]
[[getEnviron(messageItem.m_environ)]]
[[subMessage.m_author]] [[subMessage.m_author]] @ [[subMessage.parent_message.m_author]] [[subMessage.parent_message.m_author]]
[[subMessage.create_time]]
[[getEnviron(messageItem.m_environ)]]