jellyfin 10.8.0 预热,为官方Docker开启VPP色调映射及PGS字幕支持

2021-11-17 15:36:20 132点赞 825收藏 113评论

jellyfin最近放出了10.8.0 alpha测试版,目前已经是第二个版本alpha2了。想尝鲜的小伙伴可能已经安耐不住想感受一下10.8.0带来的更新(一大堆英文改进及修复,英文好的小伙伴们自己去官网围观一下吧)。想试用alpha版本,出现了一个尴尬的情况。Linuxsever/jellyfin版本的docker迟迟不发布,倒是官网的jellyfin/jellyfin版本Docker每次都是第一时间发布。当然,官网也发布各大系统的手动安装的包文件,小伙伴们任意选择。先来看看官网的安装包:

官网安装包官网安装包

是不是很丰富呢,Next Stable Per-Releases(10.8.0)就是最新体验版啦。再看看Docker呢:

Docker版本10.8.0来袭Docker版本10.8.0来袭

Docker更新也是非常的及时。上次我写了一篇文章《为jellyfin开启VPP和openCL色调映射》 ,推荐小伙伴们使用Linuxsever/jellyfin版本的docker来开启intel的QSV视频加速,以及QSV/VAAPI开启VPP色调映射并支持PGS字幕烧录,让我们完美实现实时转码。想不到打脸来得这么快,Linuxsever/jellyfin版本的docker截止今天都还没有10.8.0供我们尝鲜,唉,那么我们今天就换回jellyfin/jellyfin版本的Docker来实现同样的功能吧。

这里我同时要说一下当前的发行版本10.7.7和测试版本10.8.0 alpha2,毕竟10.8.0是测试版,虽然有很多改进和新功能,但也因为变动太多,出现了一些新BUG需要修复,目前仅建议喜欢折腾的小伙伴折腾。

另外一点很重要,之所以要推荐10.8.0 alpha ,是因为官方开发组由10.7.7的Debian内核版本Buster (10),更新为10.8.0的Bullseye (11)了,这个Bullseye的内核是有21.1.1版本的intel驱动可供安装的,这也是我们能够打开VPP色调映射的基础。要实现,其实只需要一步,就是下文第二节安装驱动即可。不过还有些遗留问题需要解决,所以本文包括了其它章节,如果有些小伙伴对这些很熟悉,可以直接跳到第二节去看。

这次我们从全新布置容器开始说,从新建一个Docker容器到完善补丁完美使用,实现的步骤如下:

1 安装设置jellyfin/jellyfin版本的Docker
2 安装/更新 intel 驱动
3 安装/更新 ffmpeg
4 结束,再见的时候

和上次Linuxsever/jellyfin版本的docker介绍类似,这篇文章不是科普jellyfin的Docker基础奶妈级安装教程,如果第一次使用jellyfin的小伙伴请搜索一下其他奶妈级安装教程。我们主要讨论需要动手能力的一些修补和提升,所以基础安装我会快速带过,偶尔会贴图提示下一下,希望小伙伴们理解。

  • 1 安装设置jellyfin/jellyfin版本的Docker

首先我假设你使用并熟悉群辉NAS的docker。我们先通过注册表拉取需要的jellyfin/jellyfin映像,记得选 10.8.0-alpha2 版本。

拉取映像拉取映像

如果你使用界面版本的Docker拉取很缓慢或老是拉取不了,可以快捷使用ssh,使用命令获取,这个速度就快多了,10.8.0 alpha2 测试版:

docker pull jellyfin/jellyfin:10.8.0-alpha2

获取完成后,点击【启动】,新建一个容器:

Docker启动 创建容器Docker启动 创建容器

容器名字,取个好听的名字,容易区分的名字,或者干脆默认。记得勾选权限,可以限制资源,高权限必须选取来实现硬件编解码,然后点击【高级设置】,如图:

创建容器创建容器

进入高级设置,我们主要按jellyfin的官网要求,配置config和cache目录,另外指明一个以上的多媒体目录,这我的设置仅供参考,多媒体目录我分类了一个Classic目录来做演示,并设置为只读,今后jellyfin误操作修改和删除,是无法更改我的媒体目录的,安全第一,安全第一。这个只读保护,完全不影响jellyfin的常规使用(你要用jellyfin来编辑删除媒体文件例外),如图:

存储空间配置存储空间配置

配置完成后,再到网络部分勾选 【使用与 Docker Host 相同的网络】,这样避免端口映射,直接使用NAS的8096端口管理即可,这里是简化演示,有需求的小伙伴根据自己需求设定网络模式和端口,如图:

勾选Host勾选Host

这里设置好,就可以直接点击【应用】,一个新容器就设置好了。我假设你不是jellyfin新手,web访问NAS的8096端口,设置好管理员账户密码,设置多媒体目录,就可以进入jellyfin服务了。

10.8.010.8.0

当然,服务器名字你可以自己取,为了便于识别,我在名称上标注了alpha2。我们可以看到版本显示是10.8.0。第一次配置服务器呢,有个基本字体需要设置来解决字幕方框问题(主要针对ASS/SSA字幕),如图:

字幕字体库设置字幕字体库设置

在【控制台】【播放】设置界面中,找到【备用字体文件路径】,指定一个当前容器能够访问的路径,当然该路径里面得预先放入包括中文简体、繁体,日文,韩文的免费字体,比如放到config目录下取名myfont目录:

备用字体备用字体

上图两个字体,我测试了一下,简繁体,韩文日文都是支持的,下伙伴可以网上搜一下,一般都可以找到下载。备用字体设置页面里面把路径选好,【启用备用字体】勾选上,就可以了,如图:

启用备用字体启用备用字体

上面我们解决了视频播放的字体问题,媒体库的字体方框还待我们解决,比如你会看到这个情况:

系统字体字库不全系统字体字库不全

这是因为jellyfin自带的系统字体缺乏扩展字库支持引起的不适,我们可以通过覆盖jellyfin的dejavu目录下的.ttf文件来实现(要动用ssh大法),不过现在有更简单的办法,通过安装包来解决:(最近外网抽风,访问很慢啊,以下更新或许耗费几分钟到几十分钟,如果大家没有耐心,可以跳过字体修复,先看后面几节,我们不需要更新资源就能完成后面几节的补丁
安装之前,我们必须先更新源,否则可能....会提示找不到............
apt update
如果你网络够通畅的话,很快就更新完了,然后再安装字体:
apt install fonts-noto-cjk-extra

安装完成后,记得需要重启一下容器,字体才会生效。进入媒体管理,选择【刷新元数据】,模式选择【覆盖所有元数据】,如下图:

刷新元数据刷新元数据

等待媒体库更新一次,这样界面图片就会重新刷新,字体也不再显示方框了:

字体后字体后

如果你是intel的3345以上的cpu(我测试演示使用的是一个8代i5),那么默认开启硬解就应该可以正常工作了,【控制台】选择【播放】,硬件加速按照下图选择,这是官方配置可支持硬解的配置状态:

默认支持的硬解状态默认支持的硬解状态

如图所示,当你开启转码播放的时候,是启动硬件加速的,如果遇到HDR视频,会调用OpenCL方式映射SDR,让你的HDR视频画面看上去不再泛白而趋于正常。

默认使用openCL映射SDR默认使用openCL映射SDR

上图是正常启动硬件加速,HDR视频转换SDR视频的截图,如果你不勾选【启动色调映射】,那么你将会看到下面这种画面:

硬解,关闭色调映射硬解,关闭色调映射

上图应该是大多数小伙伴关闭色调映射能看到的。因为我的显示器支持HDR,不巧我的操作系统也升级了Windows11,win11对于HDR支持更灵活,就算我不开启HDR,偶尔,浏览器播放器在检查到HDR视频流后还是进入了一个比较尴尬的状态,没有完整启动显示器的HDR,又不同于普通SDR显示器,或win10状态下不启动HDR的模样,如果你遇到了,参看下图,HDR启动了,但是亮度没处理好.....HDR普及看来还有很长的路要走啊。

HDR显示器显示不开启色调映射偶尔出现的截图HDR显示器显示不开启色调映射偶尔出现的截图

回到我们的诉求,我们在需要转码到不支持或没开启HDR的设备上的时候,我们需要HDR转SDR映射,官方默认的色调映射已经工作了,我们为什么还要折腾呢?因为openCL色调映射现在还不支持PGS字幕!如果你的视频是PGS字幕的话,你选了字幕,它也是不显示的。当然,你关闭色调映射,PGS字幕就可以看到了,但是颜色亮度就惨不忍睹了...........jellyfin的开发者,正在抓紧修补openCL的PGS字幕烧录问题,开发人员一度更新了ffmpeg做了预先支持。但是要完全工作,还需要jellyfin的服务器端支持,可惜到10.8.0alpha2仍然还没实现。

所以我们回到老路,启动VPP色调映射。参考linuxserver/jellyfin,我们知道VPP色调映射目前是支持PGS字幕的。那么我们直接开启VPP色调映射不可以吗:

启用VPP启用VPP

很遗憾,你会得到以下结果:

播放错误播放错误

是的,太残暴了,竟然直接不支持!下一节,进入我们今天的主题,10.8.0 alpha2给了我们机会,只要我们给它打上补丁,它就能支持VPP色调映射了。

  • 2 安装/更新 intel 驱动

前面我们提到,大概,我猜,或许是因为Debian内核,intel不给提供开源驱动的原因,所以jellyfin官方没有集成驱动。10.7.7基于Buster,10.8.0基于Bullseye,网上能找到Debian(Buster)的intel驱动只有18.4.1,这个驱动有点过时了,依赖包版本也比较低,我测试了升级部分依赖包,还是没办法升级Buster的intel驱动。但是,Debian(Bullseye)的intel驱动我们能找到到21.1.1版本,这个版本可是配合ffmpeg实现过QSV/VAAPI开启VPP色调映射的。先来个驱动包下载链接:
http://ftp.br.debian.org/debian/pool/non-free/i/intel-media-driver-non-free/intel-media-va-driver-non-free_21.1.1+ds1-1_amd64.deb

下载的.deb文件,为了方便使用和演示,请小伙伴放到我们配置容器时候挂载的config目录里。打开Docker的【容器】【详情】,到【终端机】新增一个 bash:

打开bash打开bash

执行安装命令:
dpkg -i /config/intel-media-va-driver-non-free_21.1.1+ds1-1_amd64.deb
提示错误:

dpkg -i /config/intel-media-va-driver-non-free_21.1.1+ds1-1_amd64.deb
Selecting previously unselected package intel-media-va-driver-non-free:amd64. (Reading database ... 8687 files and directories currently installed.)
Preparing to unpack .../intel-media-va-driver-non-free_21.1.1+ds1-1_amd64.deb ...
Unpacking intel-media-va-driver-non-free:amd64 (21.1.1+ds1-1) ...
dpkg: dependency problems prevent configuration of intel-media-va-driver-non-free:amd64:
intel-media-va-driver-non-free:amd64 depends on libva-driver-abi-1.10; however:
Package libva-driver-abi-1.10 is not installed.
intel-media-va-driver-non-free:amd64 depends on libigdgmm11 (>= 20.4.1+ds1); ho
wever:
Package libigdgmm11 is not installed.
dpkg: error processing package intel-media-va-driver-non-free:amd64 (--install):
dependency problems - leaving unconfigured
Errors were encountered while processing:
intel-media-va-driver-non-free:amd64

以上提示我们缺乏依赖包或依赖包的版本太低,那我们先升级一下上文提到的两个依赖包,
libigdgmm11:
http://ftp.br.debian.org/debian/pool/main/i/intel-gmmlib/libigdgmm11_20.4.1+ds1-1_amd64.deb
libva-driver-abi-1.10:
http://ftp.br.debian.org/debian/pool/main/libv/libva/libva2_2.10.0-1_amd64.deb

同样,下载的两个.deb,我们放到config目录,执行下面两个命令:
dpkg -i /config/libigdgmm11_20.4.1+ds1-1_amd64.deb
dpkg -i /config/libva2_2.10.0-1_amd64.deb

执行上面两个安装包,应该不会再报错了,然后执行驱动安装:
dpkg -i /config/intel-media-va-driver-non-free_21.1.1+ds1-1_amd64.deb

是不是瞬间就安装成功了呢。我们来打开VPP映射看看效果:

开启VPP色调映射,PGS字幕出现开启VPP色调映射,PGS字幕出现

是的,没有报错,画面中也出现了我们选中的PGS字幕。有的小伙伴可能还遇到点小问题,仍然提示播放错误,不要着急,如果你仔细看看jellyfin的服务器端日志的话,你会发现这个情况:

错误提示错误提示

这个错误,跟安装驱动之前报的无法解码错误是不同的。据很久很久以前(就是上个月,2021年10月啦)开发者解释说,是部分HDR视频缺乏HDR元数据导致。在我以前文章 《为jellyfin开启VPP和openCL色调映射》 ,也说过这个问题。开发者已经更新了ffmpeg来修复这个BUG,我们需要到下一节去打上ffmpeg补丁。我也不知道为什么jellyfin开发团队已经确认并修复了这个BUG,但还是没有随10.8.0的jellyfin一起更新。总之,我们还是自己动手打上补丁吧。

  • 3 安装/更新 ffmpeg

关于这个更新,小伙伴可以参考 《为jellyfin开启VPP和openCL色调映射》 ,在这里我就简单粗暴一点了。

为了解决部分HDR视频报错的问题,我们需要去开发者的开源网站上下载更新ffmpeg,开发页面:https://github.com/jellyfin/jellyfin-ffmpeg/pull/76/checks 这个网站是国外开源网站(你没听说过??)可能访问有点慢,有时候还打不开,耐心点,多点几次应该是可以访问的。开发页面里面右边的Artifacts,找到并下载bullseye amd64 package,如图箭头位置:

下载ffmpeg4.4.1-1下载ffmpeg4.4.1-1

下载后,是一个zip文件,解压我们得到我们需要的.deb文件。我们仍然把它放到config目录里面,执行命令更新:
dpkg -i /config/jellyfin-ffmpeg_4.4.1-1-bullseye_amd64.deb

见证奇迹的时候到了,我们再打开刚才报错的HDR视频,应该可以顺利播放了吧。我们再回顾一下前后画面的不同:

关闭映射关闭映射

开启映射,默认openCL映射不支持PGS字幕开启映射,默认openCL映射不支持PGS字幕

补丁后,开启VPP色调映射支持PGS字幕补丁后,开启VPP色调映射支持PGS字幕

从上到下,分别是 1 不开启色调映射的画面,2 默认容器初始状态开启opengCL启动映射但不支持PGS字幕,3 补丁后,开启VPP色调映射已经支持PGS字幕。小伙伴是不是看到除了字幕,是不是渲染颜色也更丰富了呢。

  • 4 结束,再见的时候

非常感谢jellyfin团队,他们坚持免费并持续得更新。jellyfin现在扩展了更多的项目,其客户端涵盖windows,linux,android,androidTV,ios等,还有众多控件及相关产品在开发,更重要的是他们都是开源的。

10.8.0 目前还是 alpha2 测试版,有一些遗留问题,比如openCL 的PGS字幕支持问题。同时因为改进较多,也出现了一些新bug,期待10.8.0正式版能修复它们。

一些彩蛋供大家分享:

安装完补丁后,我们还可以启动intel 的QSV硬件解码配合VPP色调映射

QSV色调映射QSV色调映射

细心的小伙伴可能看到了,如上图,同样条件下转码速度从60FPS提升到了84FPS,足足提升了40%。QSV解码可是最直接的硬解,不像VAAPI还通过了内存拷贝环节,加上这么可观的的提升为什么我们不用QSV呢?呃,那是因为QSV目前还有点小BUG,开发者正在修复过程中。那就是部分视频,包括不带HDR的视频,解码会被锁定在13-19FPS左右,也是PGS字幕烧录背的锅,关闭PGS字幕,转码速度就是100多甚至300多。所以,BUG消除以前,为了更好的兼容我们还只能继续用VAAPI硬解,如下图1 BUG锁帧,图2 关闭PGS速度起飞:

锁帧19FPS锁帧19FPS

关闭PGS字幕,速度直接飞起关闭PGS字幕,速度直接飞起

10.8.0 播放界面控制按钮更多了:

更多的控制按钮更多的控制按钮

新BUG排序方式在刷新后失效:

选择不同排序刷新后自动恢复默认选择不同排序刷新后自动恢复默认

按照jellyfin开发组的速度,相信很快10.8.0就会和大家见面。欢迎小伙伴们共同探讨,全文完。



展开 收起

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

UGREEN 绿联 DX4600 Pro 4盘位NAS(奔腾N6005、8GB)

1849元起

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

ZSpace 极空间 私有云 Z4Pro 8G版 4盘位NAS存储(N97、8GB)

2599元起

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

UGREEN 绿联 DX4600 四盘位NAS存储 (赛扬N5105、8GB)

1796元起

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

ZSpace 极空间 私有云 Z4Pro 性能版 NAS存储(N305、16GB)

3549元起

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

UGREEN 绿联 DX4600+ 4盘位NAS(赛扬N5105、8GB)

1999元起

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

QNAP 威联通 TS-464C2 四盘位 NAS网络存储(赛扬N5095、8GB)黑色

2599元起

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

ZSpace 极空间 私有云 Z423 旗舰版 8盘位NAS存储(锐龙R7-5825U、64GB)

5999元起

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

ZSpace 极空间 私有云 Z4Pro 16G版 4盘位NAS存储(N97、16GB)

2899元起

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

Synology 群晖 DS220+ 2盘位NAS (赛扬J4025、2GB)

2179元起

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

Synology 群晖 DS224+ 双盘位NAS(赛扬J4125、2GB)

2849元起

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

UGREEN 绿联 DH2600 双盘位NAS (N5105、4GB)

1349元起

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

QNAP 威联通 TS-466C 四盘位NAS(奔腾N6005、8GB)

3199元起

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

TERRAMASTER 铁威马 F4-424 Pro 四盘位NAS(Intel Core i3、32GB)黑色

3899元起

ZSpace 极空间 私有云 T2 2盘位NAS存储(RK 3568、4GB)

ZSpace 极空间 私有云 T2 2盘位NAS存储(RK 3568、4GB)

1799元起

sgwbox 拾光坞 N3 星光版V(瑞芯微RK3566,2G,支持docker)

sgwbox 拾光坞 N3 星光版V(瑞芯微RK3566,2G,支持docker)

387.8元起

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

ZSpace 极空间 私有云Z2Pro 四核2盘位NAS家庭个人云网络存储服务器手机平板扩容适用iPhone15 水

1299元起
113评论

  • 精彩
  • 最新
提示信息

取消
确认
评论举报

相关好价推荐
查看更多好价

相关文章推荐

更多精彩文章
更多精彩文章
最新文章 热门文章
825
扫一下,分享更方便,购买更轻松