DYY-Studio / AddSubFontMKV_py

将您的字幕和字体通过mkvmerge快速批量封装到Matroska容器,适用于Windows系统,仅py3.7+
Apache License 2.0
27 stars 1 forks source link

英文字幕子集化后,单词间会多一个空格 #8

Open honeyjuice opened 1 year ago

honeyjuice commented 1 year ago

英文字幕子集化后,使用potplayer播放单词间会多一个空格

子集化后的字幕VLC下播放正常 图片 potplayer下播放不正常,多一个空格 图片

子集化前的字幕,potplayer播放正常(中文字体缺失所以不正常,但不影响英文) 图片

对比文本,也没有发现什么区别 图片

honeyjuice commented 1 year ago

由于字幕文件是一致的,检查字体文件后发现, 子集化后的微软雅黑少了 space字符,使用fontcreator手动加入space字符后恢复正常

下个版本希望修正这个问题

另外观察字体文件后发现,数字标点符号也被精简了。 在potplayer下,即使没有调用到这个数字,也会发生数字字体加载错误的情况,建议数字、英文字符和标点,不要做子集化。 字体子集化应仅对汉字进行处理即可

honeyjuice commented 1 year ago

看了下fonttool的文档,用这个方法先临时解决了 image

DYY-Studio commented 1 year ago

这个纯纯是我的问题,应该是流程中为了防止空格在Arg输入的时候作妖给删掉了

(看起来也是PotPlayer内置字幕滤镜纯纯拉垮)

标点和数字如果字幕中有也会照样喂给fontTools的,这个是没有处理过的,如果被删了那是fontTools的问题了)

只有空格是会直接被删除的

没有对英语字幕和微软雅黑做过测试,我看一下我是哪步删了,之后给怼回去

其他字体从来没发现过这种问题,测试用的是 VSFilterMod 和 xy-SubFilter

honeyjuice commented 1 year ago

除了空格之外,已经测试过数字缺失也会导致渲染异常,对数字请不要做子集化

------------------ 原始邮件 ------------------ 发件人: "DYY-Studio/AddSubFontMKV_py" @.>; 发送时间: 2022年9月9日(星期五) 上午9:04 @.>; @.**@.>; 主题: Re: [DYY-Studio/AddSubFontMKV_py] 英文字幕子集化后,单词间会多一个空格 (Issue #8)

这个纯纯是我的问题,应该是流程中为了防止空格在Arg输入的时候作妖给删掉了

一直没有意识到空格居然还有这种奇妙的情况

我看一下我是哪步删了,之后给怼回去

— Reply to this email directly, view it on GitHub, or unsubscribe. You are receiving this because you authored the thread.Message ID: @.***>

honeyjuice commented 1 year ago

这个纯纯是我的问题,应该是流程中为了防止空格在Arg输入的时候作妖给删掉了

(看起来也是PotPlayer内置字幕滤镜纯纯拉垮)

标点和数字如果字幕中有也会照样喂给fontTools的,这个是没有处理过的,如果被删了那是fontTools的问题了)

只有空格是会直接被删除的

没有对英语字幕和微软雅黑做过测试,我看一下我是哪步删了,之后给怼回去

其他字体从来没发现过这种问题,测试用的是 VSFilterMod 和 xy-SubFilter

我可能没描述清楚,举个例子 如果字幕中有123 但是没有调用其他数字,此时显示123也会出错。

potplayer必须要求0123456789这些数字齐全,否则整个数字字体就会出错。

DYY-Studio commented 1 year ago

我 直 呼 好 家 伙

我个人觉得没有必要对PotPlayer这个拉垮的内置字幕滤镜妥协,因而没有必要做成通用的功能,可能考虑改成一个可选的选项,尽管体积上没有什么大的区别

我先去看一下现有的子集化对数字这方面的处理是怎样的,再考虑是不是要强制

PotPlayer这个到底是什么神奇操作……

honeyjuice commented 1 year ago

关于数字的问题,另外开了一个issue,里面放了供测试的字体和字幕文件

DYY-Studio commented 1 year ago

参考了相关组织的子集化字体,全部数字之后都会强制加)

如果目前这种子集化方式又出了什么问题,欢迎反馈