为 jellyfin 开启 VPP 和 openCL 色调映射
本文主要对 Docker 中常用的 jellyfin/jellyfin 和 linuxserver/jellyfin ,简单比较两个版本并进一步探讨在10.7.7和10.8.0测试版中顺利实现 QSV/VAAPI 硬解,VPP/openCL 色调映射的方法,以下经验纯属个人意见,如有异议,欢迎指正。
其实在硬件满足的情况下(说人话就是你的NAS的CPU是intel的,带264/265硬件编解码,系统嘛就默认群晖就好了),实现完整支持 QSV/VAAPI 硬解,VPP/openCL 色调映射以及解决中文方框问题只需下面三个步骤:
(1)安装/更新 intel 驱动
(2)安装/更新 ffmpeg
(3)安装字库补丁
如果你熟悉docker和linux,你可以忽略下面的介绍,直接跳到安装步骤。
jellyfin 原开发者更新了 ffmpeg4.4-1,解决了部分 VPP 转 HDR 视频文件缺元数据而报错的问题,修复了一些转码方面的细节,并支持 openCL 色调映射中实现 HDR 视频的 PGS 字幕烧录(可惜直到目前最新的10.8.0的jellyfin 测试版仍然还没支持调用,该实现还得等待 jellyfin 服务器端更新)。
以上安装将涉及一些liunx的命令,我试着介绍相对便于操作的方法来实现。同时有些比如10.8.0测试版缺乏一些依赖包,安装步骤需要更多,如果你不需要折腾,你只需按照每个步骤的前面几步执行。
在正式解决这几个问题之前,我们要先确定我们使用的jellyfin版本。目前docker中最常用的就是jellyfin/jellyfin和linuxserver/jellyfin。
jellyfin/jellyfin 内核是基于 debian(buster) 的,原生自带 VAAPI 的 openCL 色调映射支持,只是在转码 HDR 视频的时候,无法显示 PGS 字幕,即使可以升级最新的 ffmpeg4.4-1也需要 jellyfin 服务器端升级后支持。而且该内核的 intel 驱动更新非常缓慢,现在应该还在 21.1.1 版本按兵不动。
linuxserver/jellyfin 内核基于 ubuntu(focal),正式版原生 intel 驱动和 ffmpeg 已经配置好源,可以直接通过命令行升级最新版本。而且 ubuntu 内核的 intel 驱动更新比较积极,所以我们就来折腾 linuxserver/jellyfin 好了。
选择 linuxserver/jellyfin 最好直接选 latest 版本,当然你也可以选择需要的版本。推荐选择 latest 版本是为了今后方便免配置更新(此处严重敲黑板,睡觉的同学注意一下)。如果你想试试最新的 10.8.0 的测试版,那么这里是没有的,你可以在我介绍 SSH 命令的部分找到下载的方法。
这不是一篇基础的 jellyfin 架设安装教程,我假设你在这方面已经顺利安装完成(如果不顺利,请不要扔砖头,你可以查询很多保姆级安装教程)。
不过这里我还是补充几句,jellyfin/jellyfin 的配置目录一般我们指定 config、cache,而 linuxserver/jellyfin 的我们通常只用指定 config 目录就可以了,他们的目录结构有一小点差别,如果你想共同使用,那么&(#&¥,算了吧,我还没研究,我要说的是应该没什么必要。。。。那么你配置的用户,媒体库,网络端口什么的呢,基本上都在这个 config 目录里面了。如果有新的版本,你直接下载更新注册表里面的 latest 版本,然后到 Docker 页面里面找到你的容器实例:容器 -> 操作 -> 重置(群晖最近升级了一次 Docker ,我记得以前这里好像叫 清除),那么你的 Docker 容器实例不仅部署了最新版本,还跟以前配置的一样:你 config 配置的东西都在。就是,就是,我们需要的补丁都得重新打过。据我估计,怎么的也减少了我们键盘输入几十秒的时间,这就是我前面敲黑板的地方,几十秒有没有,真的有没有?如果你敲键盘很快,算了吧,下次我不敲黑板了。
如果你注册表下载遇到超时,无响应,或者你极度不耐烦,那么请用 SSH 来解决。来个 SSH 命令行吧,记得 sudo -i 命令先提升权限。
docker pull linuxserver/jellyfin:latest
这个初次拉取或后继更新都可以用这个命令。不知道为什么,这个拉取比图形界面选的顺当得多,不知道是不是我的网络卡,机器卡,脑壳卡?
对了,刚才说到 10.8.0 测试版,好的,拉这个版本:
docker pull linuxserver/jellyfin:nightly
这个 nightly 呢,好像叫隔夜版,就是开发者夜夜更新的意思,……(&)*¥#),目前的隔夜版,都是 10.8.0 的。
在开始安装前,最后一个准备工作,在 docker中 打开 bash。具体地方 容器实例 -> 详情 -> 终端机 -> 新增 -> bash 。
这里我们可能用到的查询命令:
查看 ffmpeg 版本
/usr/lib/jellyfin-ffmpeg/ffmpeg
查看 内核(ubuntu)的版本
cat /etc/lsb-release
查看 CPU 架构
uname -a
查看 intel 驱动
vainfo
到这里,我们已经准备得差不多,下面可以开始我们的更新步骤了:
(1)安装/更新 intel 驱动
标准 latest 版本的源是指定好了的,所以我们安装前更新一下源就可以了,如果第一次更新,需要一点点时间,可以泡杯咖啡。
在 bash 里面执行:
apt update
等你咖啡还没泡好的时候,应该就可以执行安装 intel 驱动 并配置查询语句 vainfo了:
apt install intel-media-va-driver-non-free vainfo -y
如果要打开openCL色调映射,还需要装下面这个驱动(再次敲黑板,手有点疼)
apt install intel-opencl-icd
安装完成后,你可以通过 vainfo 命令查询安装好的驱动的版本。今天安装好,应该是21.3.3,真的好快,前两天还是21.3.1来着。看着 ubuntu 驱动的更新速度,不得不叹气 debian 万年不变的21.1.1。
当然,你觉得兼容性有问题或你是个怀旧的人,你可以指定安装版本:
apt install intel-media-va-driver-non-free=21.2.2+i593~u20.04
这个版本好像很多人在用,前几天21.3.1配合ffmpeg4.3.2-1硬解是有问题的,你可以随便降级,想用什么版本呢,随便选一个吧:
apt install intel-media-va-driver-non-free=21.3.1+i611~u20.04
apt install intel-media-va-driver-non-free=21.2.1+i571~u20.04
apt install intel-media-va-driver-non-free=21.2.0+i557~u20.04
apt install intel-media-va-driver-non-free=21.1.3+i538~u20.04
黑板敲得手疼了,我弱弱的提示一下安装nightly 10.8.0测试版尝鲜的朋友吧,官方原包下来是没有指定源的,下载不了驱动,我们得先把源指定好,安装两个依赖包才能完成上面的驱动安装:
先添加 intel key
wget -qO - https://repositories.intel.com/graphics/intel-graphics.key | apt-key add -
添加 intel 源
echo 'deb [arch=amd64] https://repositories.intel.com/graphics/ubuntu focal main' >> /etc/apt/sources.list
添加源之后记得用 apt udpate 更新一下源。另外,jellyfin/jellyfin 基于debian 内核可能还会提示缺少依赖包,先装依赖包的依赖包 libz3-4 (版本>=4.8.7)
dpkg -i libz3-4_4.8.7-4build1_amd64.deb
安装这个依赖包自己网上找一下吧,我的电脑了不知道怎么就有一个,顺手拿来就用了。wget获取或者本地目录安装,你可以跳到下一节去看ffmpeg4.4-1xxx.deb的安装方式,这里就不重复了,估计要用测试版的人很少吧,用的人也得勤快点吧~
现在可以直接从源升级安装驱动的依赖包 libigdfcl1 了
apt install libigdfcl1
觉得上面的 bash 命令难得输入容易出错吗,Ctrl C/V 不能用吗。群晖 Docker 有帮助提示你,在 bash 窗口,要用 Ctrl C/V,你先按 Ctrl A 激活再接着使用 Ctrl C/V。每次都要用Ctrl A这个招式哦,不用不行哦,记得哦。
(2)安装/更新 ffmpeg
去开发者代码库查到对应的最新版本
https://repo.jellyfin.org/releases/server/ubuntu/versions/jellyfin-ffmpeg/
目前应该找到对应最新的是 jellyfin-ffmpeg_4.3.2-1-focal_amd64.deb
如果直接网络拉取,还得安装一个wget命令:
apt install wget -y
这是一个合并命令,进入home目录把拉取的ffmpeg放在home目录下:
cd /home && wget 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 jellyfin-ffmpeg_4.3.2-1-focal_amd64.deb
安装到这步,你的 jellyfin 应该可以任意选择 QSV/VAAPI 硬解码了。QSV硬解模式下,可以选 VPP 色调映射,而 VAAPI 硬解模式下 VPP 和 openCL 色调映射都可以工作。但我说的工作,不是正常工作,有点遗憾。在这个几个驱动配合下,选择 VPP 色调映射,QSV 硬解在部分转码视频转码锁定在18-19帧,VAAPI/QSV 硬解在部分 HDR 视频转换时报错(报缺元数据)。选 openCL 色调映射,只能选 VAAPI 硬解,虽然不会因为 HDR 视频缺元数据而报错,但是转换所有 HDR 视频的时候都无法烧录 PGS 字幕。
好消息是开发者听见了群众的呼声,2021年9月15日更新了 ffmpeg4.4-1 ,解决了 VPP 色调映射模式下部分 HDR 视频缺元数据的问题。10月10日,开发者再次更新 ffmpeg4.4-1,修复更多细节,并加入 openCL 色调映射模式下烧录 PGS 字幕的支持,遗憾的是截止目前的jellyfin 10.8.0 测试版,都还没在服务端更新这个支持,只能继续等待了。
那么我们还是要更新 ffmpeg4.4-1 的,这个版本至少让 VAAPI 硬解配合 VPP 色调映射实现了完整的 HDR,PGS字幕实时转码。我们先去开发网站找到10月10日的 ffmpeg4.4-1 更新:https://github.com/jellyfin/jellyfin-ffmpeg/pull/76 ,这个页面里开发者已经帮我们编译好了,找到中间 Checks 标签,然后右上角 Artifacts 里面找到我们需要的打包文件,如图,应该是19MB的 focal amd64 package。
解开这个压缩包,找到里面的 jellyfin-ffmpeg_4.4-1-focal_amd64.deb 。怎么安装到 docker 里面呢,本来应该拷贝到 home 目录下面去的,这里我简化一下吧。我们不是给 jellyfin 配置了 config 目录吗,把 jellyfin-ffmpeg_4.4-1-focal_amd64.deb 丢 config 目录里面吧(真的要丢吗),然后就可以在 bash 里面升级安装了。
dpkg -i /config/jellyfin-ffmpeg_4.4-1-focal_amd64.deb
(3)安装字库补丁
每次都这样,每次都要这样,唉。真的每次更新都要安装一次耶。
我假设你的字幕中文方框问题随着新版本的推出已经知道怎么设置了,我只告诉你媒体库标题方框的解决办法(别扔砖头...)。来串命令吧:
apt install fonts-noto-cjk-extra
对了,字库安装过后,jellyfin要重启字库才能生效,不像前两步的驱动更新,你一更新就能用。
好了,全文结束了。如果你是一个爱折腾的人,那么 jellyfin 绝对可以让你折腾个够,哈哈。
Dragon-One
校验提示文案
风中林立
校验提示文案
风中林立
校验提示文案
五五五
校验提示文案
海蓝水
校验提示文案
NyanMisaka
去看看
去看看
校验提示文案
telanx
校验提示文案
海蓝水
校验提示文案
值友5683657981
校验提示文案
zhpjy
校验提示文案
zhpjy
校验提示文案
Augenster丶
我服务端在群晖Docker装的N大Jellyfin,客户端用的安卓Jellyfin。
之前安卓客户端上用的网页播放器1080p 20mbps码率解码一直不卡。昨天看的好好的突然app突然卡死,退出重开app以后播放画面卡顿,但音频流畅。后来尝试电脑客户端观影正常,手机调用内部播放器和第三方播放器都正常,唯独网页播放器卡顿,请问大佬知道原因吗?
手机app软件删除重装也没用。
校验提示文案
值友7993975956
校验提示文案
值友7993975956
校验提示文案
Augenster丶
我服务端在群晖Docker装的N大Jellyfin,客户端用的安卓Jellyfin。
之前安卓客户端上用的网页播放器1080p 20mbps码率解码一直不卡。昨天看的好好的突然app突然卡死,退出重开app以后播放画面卡顿,但音频流畅。后来尝试电脑客户端观影正常,手机调用内部播放器和第三方播放器都正常,唯独网页播放器卡顿,请问大佬知道原因吗?
手机app软件删除重装也没用。
校验提示文案
zhpjy
校验提示文案
zhpjy
校验提示文案
NyanMisaka
去看看
去看看
校验提示文案
值友5683657981
校验提示文案
海蓝水
校验提示文案
海蓝水
校验提示文案
五五五
校验提示文案
风中林立
校验提示文案
风中林立
校验提示文案
Dragon-One
校验提示文案
telanx
校验提示文案