1. 首页
  2. 科技数码

给Docker安装的Jellyfin开启硬件转码

开篇

自从发现了亚马逊海外购上的好价群晖之后,感觉手中的QNAP 453Dmini就不太香了。但是碍于银子,该用的还得接着用啊。正好这两天在用Jellyfin转码播放的时候,感觉卡顿比较严重,于是就搜了下如何开启硬件转码的功能。虽然不能买新的NAS,但是让手中的NAS更好用还是可以试一试。

Jellyfin设置转码(VAPPI)

前期准备

在用Docker或者Docker-compose安装Jellyfin的时候,需要添加 '/dev/dri/renderD128',并以 'Privileged mode' 运行。

--device=/dev/dri/renderD128:/dev/dri/renderD128

在portainer中设置如下:

portainer中的设置portainer中的设置

设置VAPPI转码

在jellyfin控制台中,选择“播放-硬件加速-Video Acceleration API(VAAPI)“,VA API设备地址:/dev/dri/renderD128

开启VAAPI转码开启VAAPI转码

此时VAPPI转码设置就完成了,播放的时候即可使用VAPPI进行转码播放。

Jellyfin设置转码(Intel Quick Sync)

前期准备

因为我安装Jellyfin的NAS的CPU是J4125,在实际的使用过程中,发现VAPPI转码效率比较低下,体验并不是很理想。经过查阅资料之后,发现使用Intel Quick Sync进行转码,效率可提高2-4倍。在金钱的压力下,只能尽量榨取CPU的性能了。

使用Intel Quick Sync进行转码的准备和VAPPI基本一样,添加设备的时候添加'/dev/dri/'这个就可以了。

--device=/dev/dri:/dev/dri

安装驱动

不同于开源的VAPPI,使用Intel Quick Sync需要安装驱动。打开一个Console进入container中,输入命令:

# Add package repository
sudo apt-get update
sudo apt-get install -y gpg-agent wget
wget -qO - https://repositories.intel.com/graphics/intel-graphics.key | sudo apt-key add -
sudo echo 'deb [arch=amd64] https://repositories.intel.com/graphics/ubuntu focal main' >> /etc/apt/sources.list

# Install run-time packages
sudo apt-get update
sudo apt-get install intel-opencl-icd intel-level-zero-gpu level-zero intel-media-va-driver-non-free libmfx1

# 可选安装: Install developer packages
sudo apt-get install libigc-dev intel-igc-cm libigdfcl-dev libigfxcmrt-dev level-zero-dev

此时驱动安装完成,检查权限是否正确

stat -c "%G" /dev/dri/render*
groups ${USER}

如果不正确需要调整一下:(假设用户组是render)

sudo gpasswd -a ${USER} render
newgrp render

更新jellyfin-ffmpeg版本

在使用docker部署Intel Quick Sync转码的时候,发现总是失败,看了贴子后发现是因为jellyfin-ffmpeg的版本有问题。

使用如下命令查看jellyfin-ffmpeg的版本:

dpkg -l | grep jellyfin-ffmpeg

现在最新的版本应该是jellyfin-ffmpeg-4.3.2-1,可以正常转码。

在用linuxserver.io的container时,可以用如下命令更新jellyfin-ffmpeg的版本:

apt update
TEMP_DEB="$(mktemp)" &&
wget -O "$TEMP_DEB" 'https://repo.jellyfin.org/releases/server/ubuntu/versions/jellyfin-ffmpeg/4.3.2-1/jellyfin-ffmpeg_4.3.2-1-focal_amd64.deb' && dpkg -i "$TEMP_DEB"
rm -f "$TEMP_DEB"

或者可以这样:

wget https://repo.jellyfin.org/releases/server/ubuntu/versions/jellyfin-ffmpeg/4.3.2-1/jellyfin-ffmpeg_4.3.2-1-focal_amd64.deb
apt install /4.3.2-1/jellyfin-ffmpeg_4.3.2-1-focal_amd64.de

到这里,就可以开启Intel Quick Sync进行转码了

设置jellyfin使用Intel Quick Sync转码

在jellyfin控制台中,选择“播放-硬件加速-Intel Quick Sync“

开启Intel Quick Sync转码开启Intel Quick Sync转码

原创文章,作者:夜风博客,如若转载,请注明出处:https://www.homedt.net/47843.html