方法一:安装noto-cjk-extra字体
本方法安装字体文件约需300M的磁盘空间,并且如果jellyfin以容器方式加载运行的话,需要在容器环境(不是宿主机)下运行。
apt update -y apt install fonts-noto-cjk-extra
安装完成后,在封面上右键,选择『修改图片』,删除图片后再重启容器、重新扫描媒体即可。
方法二:同名替换支持中文的字体
jellyfin默认采用的字体是DejaVu,DejaVu的6个字体文件(3类字体)是不支持中文的,我们可以进行同名替换。
DejaVuSans-Bold.ttf DejaVuSans.ttf DejaVuSansMono-Bold.ttf DejaVuSansMono.ttf DejaVuSerif-Bold.ttf DejaVuSerif.ttf
下载替换中文字体文件,本文参考开源的字体文件repo如下:
https://github.com/notofonts/noto-cjk/releases
分析上面Jellyfin使用的DejaVu字体文件,分别为Sans、SansMono、Serif的常规(Regular)和加粗(Bold)字体文件。我们可以在noto-cjk仓库中仅下载Sans、SansMono、Serif三类字体。下方可直接点击下载:
找到中文字体下载后解压,每类字体选择2个字体文件,对应修改名称为上文的文件名。例如将NotoSansCJKsc-Regular和NotoSansCJKsc-Bold分别拷贝更名为DejaVuSans和DejaVuSans-Bold。
这样就与DejaVu对应的6个待替换字体文件,替换之前,还需要通过格式转换将otf文件转换为ttf文件。
otf 转 ttf 可以使用在线的字体转换服务,或者是使用开源项目自行转换。这里分享转换后可直接下载使用的「压缩包」。
替换文件我们可以采取最简单的方法,以windterm为例,进入并同步至/usr/share/fonts/truetype/dejavu/目录,通过sftp将文件拖拽进当前目录覆盖、替换掉原字体文件即可。
完成替换后,可重新扫描媒体库、刷新元数据、手动触发计划任务等多种方式,实际耗费的时间基本相同。
正确的操作顺序是在控制台进行操作后,重启jellyfin服务,再通过浏览器打开jellyfin后刷新元数据。完成上述操作后,封面标题显示恢复正常。
字幕中文显示异常
Linux对中文支持不好,arm64 Linux下的jellyfin只会更差。字幕中文字显示异常(口口口)的解决方法相对简单,下载「Noto Sans SC woff2」 字体包,解压后,仅拷贝 NotoSansCJKsc-Medium.woff2 文件至目标文件夹。本文示例为/usr/share/fonts/truetype/dejavu目录。
打开jellyfin控制台。左侧导航栏选择『播放』,勾选『启用备用字体』,上方填入备用woff2文件所在目录。
配置完成后,视频播放过程中的中文乱码问题得到解决。
文中环境为armbian直接安装的jellyfin,存储设备(硬盘柜)的samba访问权限仅向transmission应用开放,jellyfin本地、管理访问媒体文件。个人认为,嵌入式平台如果以媒体服务为主,应避免使用docker,安全性提高了一点,降低、牺牲了易用性、性能等,而家庭媒体串流领域对安全性并没有要求。
文章评论