Jellyfin中使用QSV替代VAAPI转码

作者 胡萝虎 日期 2022-11-17
Jellyfin中使用QSV替代VAAPI转码

使用过Jellyfin的应该都会遇到转码的问题,默认情况下都是使用VAAPI进行转码,这种方式兼容性比较好,但是转码的性能比较一般。如果使用的是Intel平台J4125及更早的CPU的话,建议切换为QSV(Intel Quick Sync )进行转码,效率会比VAAPI快很多,并且CPU也会更低。

一、 环境

  • 使用docker部署的Jellyfin
  • 镜像推荐使用 linuxserver/jellyfin的版本,其他镜像有可能环境不一样
  • 建议使用高权限允许Jellyfin,否则需要手工映射/dev/dri
  • 建议使用host模式启动Jellyfin,减少其他异常情况

二、 操作

  1. 首先登入Jellyfin容器

    docker exec -it jellyfin /bin/bash
  2. 由于Quick Sync 是 Intel 的专有技术,开源软件包一般是不会预装的,所以要自己动手安装的

    #更新软件包
    apt update

    #安装QSV驱动
    apt install -y intel-media-va-driver-non-free vainfo
  3. 安装完以后查看驱动安装情况

    # 执行/usr/lib/jellyfin-ffmpeg/vainfo

    root@jellyfin:/# /usr/lib/jellyfin-ffmpeg/vainfo
    libva info: VA-API version 1.16.0
    libva info: Trying to open /usr/lib/jellyfin-ffmpeg/lib/dri/iHD_drv_video.so
    libva info: Found init function __vaDriverInit_1_16
    libva info: va_openDriver() returns 0
    vainfo: Driver version: Intel iHD driver for Intel(R) Gen Graphics - 22.5.4 (e461c05)
    ainfo: 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
    VAProfileHEVCMain : VAEntrypointVLD
    VAProfileHEVCMain : VAEntrypointEncSlice
    VAProfileHEVCMain : VAEntrypointFEI
    VAProfileHEVCMain10 : VAEntrypointVLD
    VAProfileVP9Profile0 : VAEntrypointVLD

    看到Intel iHD driver驱动版本为高于21.1.1就可以了,下面会列出支持的编码格式。

  4. 驱动安装完成后,开始设置Jellyfin

    控制面板-播放页面,将硬件加速改为Intel QuickSync(QSV)

    设置硬件加速

    启用硬件解码项中,勾选需要启用的编码类型,然后保存即可。

  5. 接下来就播放一个以上编码类型的1080p以上的视频,转码看看效果吧。

image-20221117212300564

​ 可以看到,CPU占用很低

CPU占用率

“扫一扫接着看”