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

2021-11-17 15:36:20 133点赞 820收藏 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就会和大家见面。欢迎小伙伴们共同探讨,全文完。



展开 收起
113评论

  • 精彩
  • 最新
  • 小白问一下, docker要更新版本是不是只能删掉重装,不能直接升级?

    校验提示文案

    提交
    另一篇文章开头部分有介绍,docker版本有办法无损升级,配置都还在,不过补丁都要重做。

    校验提示文案

    提交
    收起所有回复
  • 啥时候能更新一下手机客户端,现在快进太麻烦。

    校验提示文案

    提交
    手机现在2.4.1版本了吧,电视端0.12.3了,都是这个月更新的。

    校验提示文案

    提交
    tv端还是太不好用了

    校验提示文案

    提交
    收起所有回复
  • J3355能够硬件解码吗?

    校验提示文案

    提交
    可以,就是4K转码有点吃力。

    校验提示文案

    提交
    应该支持1080p解码,4k就别想多了

    校验提示文案

    提交
    还有3条回复
    收起所有回复
  • 所以,h.265还是无解?

    校验提示文案

    提交
    265?大部分小伙伴的机器都支持265的吧。

    校验提示文案

    提交
    是否支持硬解h265看的是你机器的显卡性能,性能够就可以

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • jellyfin点演员头像就一直转圈圈的bug修复了么

    校验提示文案

    提交
    那个是api.themoviedb.org访问ip的问题。解决靠hosts。

    校验提示文案

    提交
    求大佬细说

    校验提示文案

    提交
    收起所有回复
  • intel的QSV视频加速和Intel Quick Sync有区别吗???

    校验提示文案

    提交
    一个东西,简称。

    校验提示文案

    提交
    Quick Sync Video,简称QSV

    校验提示文案

    提交
    收起所有回复
  • 正在研究封面字体 你的文章就出来了 apt命令直接在ssh root账户输入吗?

    校验提示文案

    提交
    没有特别描述,都是bash窗口,这种apt命令全是bash窗口用的。

    校验提示文案

    提交
    要进到docker里输入

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • 手机网页在线播放,字幕有延迟的问题解决了么?

    校验提示文案

    提交
    试试PGS字幕

    校验提示文案

    提交
    收起所有回复
  • 我觉得很神奇的就是,无论是plex emby还是这个jelly,就是不做手势进退 声音大小和亮度,就像约好了一下,很难实现吗 [皱眉]

    校验提示文案

    提交
    android 版本的 exoplayer 播放器是支持的,目前转码播放码率被屏蔽了,还有些小问题正在完善吧。

    校验提示文案

    提交
    别用他的播放器就行了

    校验提示文案

    提交
    收起所有回复
  • jellyfin追剧还是非常好用的,实现了多个终端断点续播的功能,非常方便。不过电视版只能装到0.12.1 之后的版本都提示安装失败。

    校验提示文案

    提交
    电视系统是什么版本的。Android5以及以下exoplayer支持不够好,Android6,7,9这些版本还好。只有Android11部分盒子装不了,报错。如果你的版本在这些范围,应该没啥问题。有时候卸载原版本再安装会成功的。

    校验提示文案

    提交
    电视看不出是多少版本的 先凑合着用吧

    校验提示文案

    提交
    收起所有回复
  • 大佬,我装了10.8alpha5,直接可以开启vaapi硬解vpp色映,不能开启qsv,按照你的方法更新了Intel驱动之后,vaapi和qsv都不能开启了,用特供版也是无法开启硬解,cpu是N3050,群晖6.23,请大佬看下是哪里的问题

    校验提示文案

    提交
    intel驱动在有些版本和ffmpeg的有些版本配合我也出现过。一般换一个intel驱动或降级版本。只要你找对驱动编号就能指定版本。

    校验提示文案

    提交
    特供版的显卡驱动和ffmpeg是配好的,如果不能硬解应该参考开发者的文章确定你的硬件支持的项目。

    校验提示文案

    提交
    收起所有回复
  • 之前因为中文的问题,折腾好久最后选择了plex

    校验提示文案

    提交
    感觉还是emby好用些

    校验提示文案

    提交
    收起所有回复
  • 移动端外挂字幕一拖进度条就匹配不上,很头疼,不知道这个问题解决了没

    校验提示文案

    提交
  • jellyfin就是半成品,解码plex最好,emby次之,jellyfin硬解就是一坨屎 [喜极而泣]

    校验提示文案

    提交
  • 等linuxserver的10.8正式版docker再折腾,嘿嘿

    校验提示文案

    提交
    还是emby

    校验提示文案

    提交
    收起所有回复
  • 这个东西不好用

    校验提示文案

    提交
  • windows server上装docker版好还是windows版好?

    校验提示文案

    提交
    Docker版本新intel u硬件解码很不好弄

    校验提示文案

    提交
    非常好弄啊 我用的nuc11 硬解妥妥的

    校验提示文案

    提交
    还有1条回复
    收起所有回复
  • qsv比vappi效率更高??但现在qsv支持还不完善?所以大家还是继续用vappi??

    校验提示文案

    提交
  • 大佬知道emby(正版用户)有没有这个功能么,我苦于hdr视频发灰的情况好久了……

    校验提示文案

    提交
    emby在转码设置页最底下也有个颜色映射的选项,选上就行了

    校验提示文案

    提交
    真的么,我找了很久都没找到,我现在再去康康……

    校验提示文案

    提交
    还有2条回复
    收起所有回复
  • 加没加中文字库?

    校验提示文案

    提交
提示信息

取消
确认
评论举报

相关文章推荐

更多精彩文章
更多精彩文章
相关好价
最新文章 热门文章
820
扫一下,分享更方便,购买更轻松