当前位置:首页 > 手机资讯 > 正文

Jellyfin 10.7+ 开启VPP色彩映射,核显映射速度也能上天!

Jellyfin 10.7+ 开启VPP色彩映射,核显映射速度也能上天!

创作立场声明:Jellyfin用户,没用过Emby,Plex等。欢迎大家在评论区互相友好交流,谢谢!

大家好呀!
这是我第一篇文章,写的不好请大家多多包涵。

相信大家很多人都升级到了jellyfin 10.7。 我本人也是一直在关注10.7什么时候上市,因为想体验一下浏览器或者jellyfin官方app播放HDR。众所周知Jellyfin 10.6.4是不支持HDR->SDR的颜色映射的。那个效果,用过的都知道,HDR视频都是灰蒙蒙的一片。当我迫不及待的升级到10.7,并且打开了OpenCL颜色映射的时候,我人直接傻了。4K HDR HEVC -> 720p 4Mbps你告诉我只有18fps。这看个毛线啊。Jellyfin控制台里还有一个选项是VPP颜色映射,但我当时是docker里跑的jellyfin/jellyfin镜像生成的容器,打开这个选项就不能播放了。没办法,我当时也懒得折腾,反正大多是情况都是电视上Kodi硬解,或者iOS上用infuse播放,jellyfin只负责一个刮削的功能。等到了10.7.1我又升级了,结果还是十几fps。经过不断地折腾,看官方的documentation和reit上找资料,我终于折腾出来了VPP颜色映射,4K HDR HEVC -> 1080p 20Mbps可以有50+fps,外网播放从此非常的舒服。下面废话不多说,直接开始教程。

设备介绍:
: QNAP TS-453Dmini ( J4125 核显应该是UHD600吧), 开启Container Station的docker,linuxserver/jellyfin:latest镜像,portainer/portainer:latest (可选)。所以本教程适用于大部分x86-64带核显NAS设备。

具体步骤:
1. 首先安装linuxserver/jellyfin。如果你像我一样以前使用的是jellyfin/jellyfin镜像因为linuxserver/jellyfin镜像开启硬件加速转码会花屏,请不要担心,本教程切换到linuxserver/jellyfin后会在打开VPP映射的同时,解决屏幕花屏。这一步有一下两种变式:

a. 如果是使用jellyfin/jellyfin镜像并且有portainer的朋友,并且之前配置了tmdb的host不想重建的可以直接在portainer的edit/duplicate里将镜像改为linuxserver/jellyfin然后deploy。

b. 想重新安装/新安装的方法。
在威联通的Container目录下新建一个叫jellyfin的文件夹。如果这里之前有这个文件夹的话把它清空。使用这段命令安装:

docker run -d --name jfl --add-host=image.tmdb.org:65.8.49.12 --add-host=image.tmdb.org:65.8.49.19 --add-host=image.tmdb.org:65.8.49.49 --add-host=image.tmdb.org:65.8.49.128 --add-host=api.themoviedb.org:54.230.18.34 --add-host=api.themoviedb.org:54.230.18.44 --add-host=api.themoviedb.org:54.230.18.80 --add-host=api.themoviedb.org:54.230.18.129 --device=/dev/dri:/dev/dri --restart always -e PUID=$UID -e PGID=$GID -p 8096:8096 -p 8920:8920 -v /share/Container/jellyfin:/config -v [你资视频资源库的路径]:/media linuxserver/jellyfin:latest

这里我加上了themoviedb最新的ip地址,这样可以使得themoviedb正常刮削。如果设置完成之后发现不能刮削,去ipaddress.com搜索上面两个网址最新的ip地址,将上面的ip进行替换。

2.安装好jellyfin之后,我们需要手动更新intel的核显驱动,解决花屏和打开VPP。

a. 有portainer的朋友按这个方法进入容器的终端:

b. 没有portainer的朋友,先ssh到NAS。输入这个命令去打开这个container的终端:

docker exec -it jfl /bin/bash

如果提示没有权限,请在这句话最前面加上sudo。如果你的容器的名字不是jfl,请将jfl替换成你容器的名字。

这一步之后不管你是portainer还是内置终端都已经到了容器的终端,所以后面的步骤都一样。

一句一句的执行下面的命令(不要输入两行之间的东西,那些是说明这个命令是干嘛的,或者告诉你要等到什么时候)。

echo 'deb http://archive.ubuntu.com/ubuntu hirsute main' > /etc/apt/sources.list.d/hirsute_main.list

echo 'deb http://archive.ubuntu.com/ubuntu hirsute universe multiverse' > /etc/apt/sources.list.d/hirsute_universe.list

这两步是添加两个ubuntu的源,这样才可以下载驱动

apt update

更新源的目录,等更新完再执行下一步

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

下载安装驱动

完成之后输入vainfo,查看是否是这个效果

到这里就已经差不多完成了,接下来进入jellyfin进行设置。新安装jellyfin的用户可以参考其他人的教程把jellyfin的普通设置设置好。

接下来进入控制台->播放。如果你也是J4125的话可以和我一样把这些全部钩上。其他带核显的CPU要自行判断自己的U可以解码那些格式,或者也可以全部钩上,有东西播放不了再勾掉。

其实也可以选择VAAPI,但是国外论坛上说Intel Quick Sync应该是快一些。VAAPI的话不要勾选 启用色调映射, 只勾选 启用VPP色调映射。(不能启用色调映射因为linuxserver/jellyfin镜像缺少两个驱动。在jellyfin/jellyfin镜像下可以开启,但是核显的效果非常的差,720p只能18fps的样子)。

至此,你就可以快乐地在SDR屏幕上通过转码播放HDR视频了,给大家看几张转码效率的图


写在最后:
目前Jellyfin还是有些bug的,比如部分4K视频无法进行转码,

然后每次re-deploy容器(升级jellyfin呀或者themoviedb无法刮削了 更新了host)都需要重新更新那个驱动,一直到linuxserver/jellyin镜像自带21.1.1的驱动为止。

给好奇的人:
为啥要用linuxserver/jellyfin?
linuxserver/jellyfin 基于的是Ubuntu 20.04的环境。目前全网只有Ubuntu源有3个intel-media-va-driver-non-free的驱动。jellyfin/jellyfin的环境是基于某种debian的,debian那边只有两个unstable的intel-media-va-driver-non-free,我安装过都不能正常转码,然后安装ubuntu的也不行,所以除非你能自己编译intel-media-va-driver-non-free,还是建议转到linuxserver/jellyfin。貌似有些什么值得买上的文章使用的是其他的驱动(有一篇基于proxmax的),那个可能也行。

sources:
jellyfin官方教程
reddit

有话要说...