本文修改自 解决 Jellyfin 10.6.x 中文字幕方块问题
ASS 字幕显示问题是由于缺少字体导致的。因此需要我们修改 Jellyfin 的前端文件,让Jellyfin向客户端提供中文字体。字体可以选择官方扩展字体: NotoCJK。
PS: 字体中常见的 CJK 后缀表示 Chinese-Japanese-Korean,即表示支持中文、日文和韩文字体。
然后我们进入 Jellyfin Docker 的命令行。Jellyfin Docker 命令行内部我们可以使用 apt
命令来安装 vim, wget 等工具方便我们处理文件(Unraid上没有自带 vim,而其自带的 nano 的一些快捷键和网页冲突,如 nano 的搜索快捷键是 ctrl + W,和关闭网页是重合的)。
1 | $ apt update |
然后进入 /jellyfin/jellyfin-web/plugins/htmlVideoPlayer/
目录,编辑该目录下的 plugin.js
文件
1 | # 编辑前保存一个副本 |
全局搜索找到下面的代码段完成替换
1 | - apiClient=connectionManager.getApiClient(item) |
1 | - fonts:attachments.map(function(i){return apiClient.getUrl(i.DeliveryUrl)}) |
然后下载字体到 /jellyfin/jellyfin-web/libraries/
目录下
1 | $ cd /jellyfin/jellyfin-web/libraries/ |
接下来前往网页端清除浏览器缓存即可。
实际操作中,进入Chrome Console禁用缓存仍然无效,需要同时清理网站的Cookie。
以上方法只对网页端有效,对于 iOS 客户端无效。