找回密码
 立即注册
查看: 396|回复: 9

请教关于部分字体子集化后查看提示无效的问题

该用户从未签到

7

主题

50

回帖

0

VC币

注册会员

Rank: 2

积分
898
QH7B 发表于 2024-8-15 18:36:42 | 显示全部楼层 |阅读模式
例如腾祥嘉丽粗圆、腾祥嘉丽准粗圆,子集化后打开和安装都提示字体无效,ListAssFonts无法识别,但是封装在mkv文件里播放能却能正常显示文字,请问这是什么原理?为什么无效字体封装后能正常加载?怎样才能使ListAssFonts正确识别这些字体?使用fontforge倒是能打开,但是重新生成的字体文字都走形了。
回复

使用道具 举报

  • TA的每日心情
    慵懒
    昨天 00:18
  • 签到天数: 1063 天

    [LV.10]以坛为家III

    21

    主题

    424

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    1357614
    tmdtmdtmdqq 发表于 2024-8-15 19:02:55 | 显示全部楼层
    你应该说出你的需求,你为何要打开子集化后的字体?这种操作本来就没什么意义
    回复

    使用道具 举报

    该用户从未签到

    7

    主题

    50

    回帖

    0

    VC币

    注册会员

    Rank: 2

    积分
    898
    QH7B  楼主| 发表于 2024-8-15 20:21:53 | 显示全部楼层
    只是想检查自己几个月前封装的mkv文件是否存在问题,当时还是刚学习如何封装字幕,有些字体缺字或者不兼容就直接忽略用mkvtoolnix封装进去了,现在观看发现问题有点多,就把字体字幕全部导出然后用ListAssFonts检查,发现有几个字体播放显示正常但工具无法识别,甚至还有的字体没有被子集化,例如AvenirNextW1G-Demi这个字体,所以才在这里请教确认是工具bug或者字体版本不对,还是正常现象不用管。子集化用的assfonts这个工具,AssFontSubset经常蓝屏不敢再用了。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2023-1-26 20:58
  • 签到天数: 77 天

    [LV.6]常住居民II

    13

    主题

    250

    回帖

    456

    VC币

    金牌会员

    Rank: 6Rank: 6

    积分
    36206
    StarRingChild 发表于 2024-8-15 20:31:23 | 显示全部楼层
    不建议把字幕和字体封装进 MKV,可以单独封装成 MKS
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 00:18
  • 签到天数: 1063 天

    [LV.10]以坛为家III

    21

    主题

    424

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    1357614
    tmdtmdtmdqq 发表于 2024-8-15 21:11:59 | 显示全部楼层
    本帖最后由 tmdtmdtmdqq 于 2024-8-15 21:13 编辑

    ListAssFonts如果没报错,那基本是正常的
    ListAssFonts报错,并不代表说一定就是有问题。有可能是误报,或因缺失某些功能导致检测失效报错。
    比如,ListAssFonts不能检测出使用调用Full font name设置的字体,但是播放器是可以识别正常显示的
    以自己实际观看效果才是最准确的。




    关于AvenirNextW1G-Demi这个,我试了一下用assfonts v0.7.1是能正常子集化和改名的,应该属于个别情况,有问题就去assfonts那帖回帖询问(带字幕文件)。


    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有账号?立即注册

    x
    回复

    使用道具 举报

    该用户从未签到

    7

    主题

    50

    回帖

    0

    VC币

    注册会员

    Rank: 2

    积分
    898
    QH7B  楼主| 发表于 2024-8-16 01:16:35 | 显示全部楼层
    感谢解答,目前貌似无法上传附件,所以只能用文字描述。
    例如下面这行,fn后面的字体直接忽略了,没有被子集化也没有改名:



    Dialogue: 0,0:00:05.86,0:00:07.29,Default,,0,0,0,,首先是 {\rSemanian\fnAvenirNextW1G-Demi\fs55}Dāshu·zanna

    但是这行却能够正常识别,就很奇怪:

    Dialogue: 0,0:00:07.77,0:00:10.49,Default,,0,0,0,,{\fnMKUYZZLY\fs50}niiko·zanna{\r} 就是「能不能」
    两行代码来自Cop Craft的SP字幕。
    另外近30T的资源逐个提取字幕字体再检查太消耗时间了,要是能有更高效的办法就好了。。
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 00:18
  • 签到天数: 1063 天

    [LV.10]以坛为家III

    21

    主题

    424

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    1357614
    tmdtmdtmdqq 发表于 2024-8-16 01:46:28 | 显示全部楼层
    本帖最后由 tmdtmdtmdqq 于 2024-8-16 01:58 编辑
    QH7B 发表于 2024-8-16 01:16
    感谢解答,目前貌似无法上传附件,所以只能用文字描述。
    例如下面这行,fn后面的字体直接忽略了,没有被子 ...

    大概看了看,应该是assfonts里的一段tag分析代码逻辑考虑不周:
    1. void AssParser::StyleOverride(const nonstd::string_view code,
    2.                               FontDesc& font_desc,
    3.                               const FontDesc& font_desc_style,
    4.                               const unsigned int line_num,
    5.                               const char* line_beg) {
    6.   ChangeFontname(code, font_desc, font_desc_style, line_num, line_beg);
    7.   ChangeBold(code, font_desc, font_desc_style);
    8.   ChangeItalic(code, font_desc, font_desc_style);
    9.   ChangeStyle(code, font_desc, font_desc_style, line_num);
    10. }
    复制代码
    只是按顺序去判断\fn、\b、\i、\r
    没有考虑到\r后再进行\fn的操作
    因为判断\r的方法ChangeStyle写在最后,所以最后用了\r样式所写的字体
    这样的判断逻辑是有问题的,因为\r跟\fn、\r跟\b、\r跟\i这三对操作是各有交集的,都会对各自的后者有影响,不能直接单次判断就完了
    应该是这三对操作中,哪个tag最后出现就用哪个(\r样式存在的情况下)








    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1377

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2969748

    卓越贡献

    tonyhsie 发表于 2024-8-16 02:44:53 | 显示全部楼层
    tmdtmdtmdqq 发表于 2024-8-15 21:11
    ListAssFonts如果没报错,那基本是正常的
    ListAssFonts报错,并不代表说一定就是有问题。有可能是误报,或 ...


    根據我個人的實驗
    在 .ass 字幕檔案裡,不是所有字型都能用 full font name 的形式來調用

    所以 ListAssFonts 不認 full font name

    回复

    使用道具 举报

    该用户从未签到

    7

    主题

    50

    回帖

    0

    VC币

    注册会员

    Rank: 2

    积分
    898
    QH7B  楼主| 发表于 2024-8-17 16:29:04 | 显示全部楼层
    tonyhsie 发表于 2024-8-16 02:44
    根據我個人的實驗
    在 .ass 字幕檔案裡,不是所有字型都能用 full font name 的形式來調用

    请问Error.txt里full-width chars in override codes错误应该怎样处理?
    回复

    使用道具 举报

  • TA的每日心情
    郁闷
    2016-12-31 01:33
  • 签到天数: 6 天

    [LV.2]偶尔看看I

    69

    主题

    1377

    回帖

    1万

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    2969748

    卓越贡献

    tonyhsie 发表于 2024-8-17 19:39:05 | 显示全部楼层
    QH7B 发表于 2024-8-17 16:29
    请问Error.txt里full-width chars in override codes错误应该怎样处理?

    {\xxxxx} 裡有全型字母或數字,修正回半型即可
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表