cxfksword / jellyfin-plugin-danmu

jellyfin弹幕自动下载插件
GNU General Public License v3.0
344 stars 7 forks source link

Kodi中播放有些ass弹幕文件显示乱码,可能与emoji有关? #57

Closed VickyRain closed 1 month ago

VickyRain commented 1 month ago

TV端和手机端用Kodi,无论是通过jellfin插件同步媒体库后播放,还是直接加载媒体库(webdav)播放,某些ass弹幕都一样显示为乱码(不是全方框那种乱码,见附图),但用Jellyfin手机端或TV端内嵌播放和调用MX Player播放就不会乱码。

不是所有视频的ass弹幕都乱码,做过以下尝试: 1)windows下用Editplus打开ass文件,编码从UTF-8改为带BOM的UTF-8(或者Unicode),不再乱码。 2)通过缩短ass文件内容的方式逐步定位到内容出错的行,目前我可以定位到某个显示乱码的ass弹幕里有emoji会导致乱码,比如🆘,暂时没试过是不是所有emoji都会导致这个问题。 比如用文本工具打开以后看到ass的178行有🆘这个emoji,把文件缩短到这行以上就能正常显示,缩短到这行以下就乱码。 微信图片_20241018111259

UTF-8编码乱码显示如下: Screenshot_20241018_093212_Kodi

带BOM的UTF-8正常显示如下: Screenshot_20241018_093228_Kodi

出现弹幕乱码的视频信息: Screenshot_20241018_095512_Kodi

显示为乱码的ass弹幕文件: 唐朝诡事录.S01.E14.2022.danmu.zip

因为Jellyfin TV端内嵌播放器不太好用,调用MX player播放时间久一点又不定时会出现Jellyfin TV端自动退出导致进度没同步的问题,所以我最近改成了kodi搭配插件来播放的方式,然后突然发现了这个问题,请问后续插件版本是否能支持设置弹幕文件编码格式?可选择生成弹幕文件时忽略emoji?谢谢!

x2rr commented 1 month ago

厉害啊,终于找到问题原因了

cxfksword commented 1 month ago

字幕改为带BOM后,有emoj还会乱码吗

VickyRain commented 1 month ago

字幕改为带BOM后,有emoj还会乱码吗

更正一下最新情况: 为了避免混淆特地另存了一份字幕,kodi通过dav直接挂载远程媒体库播放视频可以正常显示带BOM的UTF-8字幕,用Jellyfin插件同步到kodi中的视频加载的字幕还是乱码,但通过浏览字幕的方式去加载同一个字幕就不乱码了…… 如果把emoji删了肯定就是好了,无论哪种加载方式都ok 我这几天才开始从video station改用jellyfin,昨晚第一次用kodi,不知道是我不太会用媒体库通过插件同步的功能导致的……

刚才看到ass+emoji乱码的处理经验分享:https://www.bilibili.com/read/cv13213589/ 谷歌搜ass+subtitle+emoji看到的讨论也不少,好像主要是彩色emoji的问题?

VickyRain commented 1 month ago

以及,刚才看了下mx player,虽然字幕不乱码,但其实🆘是不展示的…… 所以是否可以在插件里加个选项,生成ass的时候直接把emoji全部忽略? 或者,因为emoji码点集合一直在增长,不如反向筛选,可以选择只保留中英文数字和常用符号?