NAS白群辉,通过三方套件中心部署Jellyfin,之前在手机和PC端使用均正常,近期在电视上安装了TV版的Jellyfin后发现在加载ass格式的字幕后中文乱码,显示为方框,英文正常。

经过查阅资料后基本判断是Jellyfin服务器端没有内置中文字体,且TV客户端也没有可替代字体导致的,大多数现有的文章建议在Jellyfin控制台中设置启用备用字体(本地Client中,在控制台-播放-转码-备用字体文件路径设置一个只包含1种中文字体的文件夹),实际尝试后发现并没有作用,感兴趣的同学也可以自己试一下。

既然备用字体没有用,那么就从Jellyfin的默认字体上想办法,Jellyfin的默认字体名为Dejavu,我们想办法把这个字体替换成一个中文自己就可以了。
首先在NAS的控制面板中开启SSH:

然后通过SSH访问群辉(可以使用MobaXterm这一类的免费SSH软件),使用具有NAS管理员权限的用户名,并且需要知道对应密码:

找到Jellyfin的字体目录(我的在/volume1/@appstore/jellyfin/share/dejavu/fonts中,如果你的NAS使用Docker安装Jellyfin或者没有安装在群辉的存储空间1中,那么地址可能会有变化)
cd /volume1/@appstore/jellyfin/share/dejavu/fonts
里面有这些字体:
/volume1/@appstore/jellyfin/share/dejavu/fonts$ ls
DejaVuMathTeXGyre.ttf DejaVuSansCondensed-BoldOblique.ttf DejaVuSansCondensed.ttf DejaVuSansMono-Bold.ttf DejaVuSans-Oblique.ttf DejaVuSerif-Bold.ttf DejaVuSerifCondensed-Italic.ttf DejaVuSerif.ttf
DejaVuSans-BoldOblique.ttf DejaVuSansCondensed-Bold.ttf DejaVuSans-ExtraLight.ttf DejaVuSansMono-Oblique.ttf DejaVuSans.ttf DejaVuSerifCondensed-BoldItalic.ttf DejaVuSerifCondensed.ttf
DejaVuSans-Bold.ttf DejaVuSansCondensed-Oblique.ttf DejaVuSansMono-BoldOblique.ttf DejaVuSansMono.ttf DejaVuSerif-BoldItalic.ttf DejaVuSerifCondensed-Bold.ttf DejaVuSerif-Italic.ttf
可以看下这些文件的大小,没有超过1M的,肯定不支持中文。
从windows中找到随意一个中文字体(C:\Windows\Fonts),例如微软雅黑,将其改名为DejaVuSans.ttf,然后通过NAS的页面上传至任何一个共享文件夹(例如/volume1/Backup_Phone_SS1/)。

通过sudo命令将原先的DejaVuSans.ttf删除(可以先做个备份),然后将新文件拷贝至字体目录:
sudo rm DejaVuSans.ttf
sudo cp /volume1/Backup_Phone_SS1/DejaVuSans.ttf /volume1/@appstore/jellyfin/share/dejavu/fonts
拷贝过来后ll该目录下,应该是这样的:
drwxr-xr-x 1 sc-jellyfin synocommunity 1086 Jul 20 22:37 .
drwxr-xr-x 1 sc-jellyfin synocommunity 30 May 29 18:16 ..
...
-rw-r--r-- 1 sc-jellyfin synocommunity 251932 May 29 18:16 DejaVuSansMono-Oblique.ttf
-rw-r--r-- 1 sc-jellyfin synocommunity 340712 May 29 18:16 DejaVuSansMono.ttf
-rw-r--r-- 1 sc-jellyfin synocommunity 635416 May 29 18:16 DejaVuSans-Oblique.ttf
-rw------- 1 root root 16093132 Jul 20 22:37 DejaVuSans.ttf
-rw-r--r-- 1 sc-jellyfin synocommunity 347460 May 29 18:16 DejaVuSerif-BoldItalic.ttf
-rw-r--r-- 1 sc-jellyfin synocommunity 356088 May 29 18:16 DejaVuSerif-Bold.ttf
...
新拷贝过来的字体在权限、所属用户和用户组与其他字体不同,Jellyfin无法调用,需要通过以下命令,修改DejaVuSans.ttf的权限和用户组:
sudo chmod 644 DejaVuSans.ttf
sudo chown sc-jellyfin:synocommunity DejaVuSans.ttf
之后就可以打开电视享受有字幕的电影了,如果还不显示,可以逐步将字体目录下的所有文件均替换为中文字体,然后再重启下Jellyfin的NAS服务即可。

1万+

被折叠的 条评论
为什么被折叠?



