在jellyfin10.5.5中解决ASS字幕无法正常显示的问题
前言
2019年,经站内大佬们介绍,成功上车星际蜗牛C双版本,并安装了黑群,此后NAS一直稳定运行。
最近经过@阿文菌等大佬孜孜不倦的安利,将NAS升级成i3 8100+矿渣B365主板,并且部署了docker版的jellyfin,想着也体验一把远程串流。
(在此感谢大佬们无私分享经验知识!)
然而,在安装最新的10.5.5版本的jellyfin后,发现使用jellyfin在播放外挂ASS字幕的视频时,字幕无法正常显示,会出现一个个的方框。经过多方查询后并没有得到有效的解决办法,大部分网友们选择将ass字幕替换成scr字幕以规避此问题。
现在NAS上的影音资源大多是这几年慢慢积累起来的,是在懒得挨个检查文件夹并替换字幕,所以只能自力更生,所幸最终找到了一个解决该问题的方法,迫不及待的来分享给大家。
本人是NAS小白,说实话连jellyfin的日志文件都看不懂,在次只是抛砖引玉,给大家提供一个思路,希望大家集思广益,最终找到更有效的解决方案。
解决过程
看到播放时字幕变成了方框,我第一个思路就是,该问题是否类似windows系统中播放视频时字体库不全,引发的字体兼容问题。
用记事本打开ass格式的字幕文件,发现ass字幕格式中自带对字幕字体进行了声明。
考虑jellyfin为linux内核,且为国外开发人员开发,猜测其内置字体库对中文字体支持不佳,所以尝试将相应中文字体挂载到jellyfin字体库中。
查看10.5.5版jellyfin的日志文件,以font为关键字未搜到相关内容。
在10.5.5版字幕显示有问题后我安装过10.5.4版本,在日志文件中偶然搜到几句日志,大意是因字体不兼容,转用/usr/share/fonts的dejavu字体。但是当时未截图,后来调试过程中将10.5.4的映像删除后再也没有下载成功。。。
作为不懂linux的小白,此时只能依靠百度了。。。经查询/usr/share/fonts目录为linux的字体库目录,所以尝试一下将中文字体导入该目录中,看看效果。
下载了字幕文件中声明的几种中文字体后,在File StStation中随意找个文件夹存放。此处我选择了/download/fonts文件夹。
由于jellyfin运行在docker中,所以jellyfin无法直接调用该文件夹中的字体。在docker中将jellyfin停止,将/Download/fonts文件夹挂载到jellyfin的/usr/share/fonts位置。
重新启动,jellyfin,看看效果。
纳尼?!竟然还是不行?
此时又想到,在张大妈查询jellyfin字幕问题时看到一网友的评论:
照着这个设置再来试试:
再来试一次:
666,网页版播放成功了!此时并非直接串流视频,而是播放的转码之后的视频流。
再来测试jellyfin其他客户端的效果:
1.ios客户端
jellyfin的客户端同样需要单独对字幕进行一下设置:
然后再来播放试试:
同样能够正常显示字幕了。
2.安卓客户端
通过百度找到了jellyfin安卓手机客户端的下载地址为:https://repo.jellyfin.org/releases/client/android/,下载realease1.0.0版本安装。
遗憾的是,安卓版本的jellyfin客户端并没有烧录字幕的选项。
尝试播放,没有选择烧录特效字幕的情况下,果然无法播放,又看到了熟悉的方框。
3.安卓手机浏览器
经测试,用安卓手机的浏览器访问jellyfin,是有烧录字幕的设置选项的。
照例进行播放测试,一切正常!
总结
1.在使用jellyfin客户端(包括网页、os客户端、安卓客户端等)进行串流时,请记得检查字幕设置,在没有选择烧录特效字幕的情况下,无法正常显示ass等特效字幕。
2.为了体验ass等特效视频,建议提前下载字幕常用字体库存放到NAS中,临时遇到无法正常显示的问题时候,也可以通过查看ass文件中对字体的声明,下载相应字体。字幕常用字体也就那么多,总比一个个重新找scr字幕来的快捷。
3.使用此方法在jellyfin中显示ass字幕的前提是服务端需将字幕烧录进视频流中,即对播放视频进行转码,所以利用核显能对视频进行硬解是必要前提(软解实在是太痛苦了)。蜗牛星际自带的J1900 CPU对HEVC 10bit视频的解码能力非常堪忧,所以在不更新硬件的前提下,貌似只能将将外挂的ass字幕一个个替换成scr格式了。
4.现在1.0.0版本的jellyfin安卓客户端不提供烧录字幕的设置选项,所以安卓手机可以通过网页访问jellyfin来进行播放。
PS:一点小探索
在终于解决了ass字幕显示的问题后,我参考网络教程,利用SSH登陆群晖,用sudo -i获取root权限后,使用docker ps命令获取容器ID,再通过docker exec -it 容器ID /bin/bash的方式进入了jellyfin的文件目录。
在/usr/share/fontconfig/conf.avail目录下,有很多设置文件。百度上说这个目录里存放的是linux系统的字体设置相关文件。因为自己不懂linux,所以无法进一步进行探索了。不知linux大神们能否从这里入手,从底层层面修改jellyfin对中文字体的配置,达到一劳永逸的效果。
落叶归根1011
校验提示文案
萝卜姓胡
校验提示文案
萝卜姓胡
校验提示文案
secondxufei
校验提示文案
魂归止兮
校验提示文案
SuperNG6
`fc-cache -fv`
校验提示文案
凝木雨
挂载了方…正…字…库
校验提示文案
goldworship
校验提示文案
megumin
校验提示文案
zy511611zy
校验提示文案
昊月寒星
校验提示文案
宴耀
校验提示文案
核子猫
校验提示文案
值友7262950580
校验提示文案
miys
校验提示文案
取名困难君
校验提示文案
欲仙欲死
校验提示文案
鄂北渔夫
校验提示文案
GZ大海
校验提示文案
值友7892860330
校验提示文案
值友1152468306
去看看
校验提示文案
yoyojohn
校验提示文案
昊月寒星
校验提示文案
牛牛也能很坚强
校验提示文案
那个谁886
校验提示文案
宴耀
校验提示文案
Nichlas
按照楼主的提示,目前也没有烧录字幕的选项。
希望有大神来解决EMBY各个客户端ASS等特效字幕时 中文字幕显示方框的问题。
校验提示文案
值友7892860330
校验提示文案
GZ大海
校验提示文案
zy511611zy
校验提示文案
落叶归根1011
校验提示文案
megumin
校验提示文案
鄂北渔夫
校验提示文案
欲仙欲死
校验提示文案
goldworship
校验提示文案
取名困难君
校验提示文案
凝木雨
挂载了方…正…字…库
校验提示文案
miys
校验提示文案
值友7262950580
校验提示文案
SuperNG6
`fc-cache -fv`
校验提示文案