找回密码
 立即注册
楼主: b8b41e3c

mkvtool:一个ass字幕子集化/mkv文件处理一条龙工具

  • TA的每日心情
    慵懒
    6 小时前
  • 签到天数: 217 天

    [LV.7]常住居民III

    3

    主题

    9

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    22054
    op200 发表于 6 小时前 | 显示全部楼层
    请问mkvtool有将子集化后的字体保留名字的功能吗?
    类似于"字体名.0.随机数"
    这样可以用ListAssFonts进行还原
    回复

    使用道具 举报

    该用户从未签到

    6

    主题

    46

    回帖

    0

    VC币

    注册会员

    Rank: 2

    积分
    882
    QH7B 发表于 6 小时前 | 显示全部楼层
    op200 发表于 2024-10-18 10:01
    请问mkvtool有将子集化后的字体保留名字的功能吗?
    类似于"字体名.0.随机数"
    这样可以用ListAssFonts进行还 ...

    mkvtool是有在ASS文件里记录原字体名信息的,可以用记事本打开查看,但是只能作为参考,字符串替换不一一对应是无法完全还原的。你可以看看这个帖子:

    https://bbs.acgrip.com/forum.php?mod=redirect&goto=findpost&ptid=9897&pid=110584


    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    92

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    30508
    b8b41e3c  楼主| 发表于 5 小时前 | 显示全部楼层
    QH7B 发表于 2024-10-18 10:33
    mkvtool是有在ASS文件里记录原字体名信息的,可以用记事本打开查看,但是只能作为参考,字符串替换不一一 ...

    理论上只要没出现字体名混用问题(从v5.6.3开始这种情况会默认报错罢工),是可以一一对应上的,最多是和原来的字体名不一样,但对应的都是同一个字体文件.直接还原没有问题,但如果有字体名混用的情况,那不好意思了,确实会有概率对应不上.
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-12-11 05:40
  • 签到天数: 151 天

    [LV.7]常住居民III

    3

    主题

    70

    回帖

    56

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    92745
    788也瘋狂 发表于 4 小时前 | 显示全部楼层
    我說其實那不算字體名混用 是本來就可以這樣用 字體名+樣式
    還有一種(可變字體Variable Font 簡稱VF) 要細用 都是 字體名 + 樣式 這樣去選擇他的不同樣式
    我自己寫的工具直接邏輯大改. 現在只對 nameid1 改名 保留樣式資料 並對ASS文件加了判斷 判斷他是不是字體名 + 樣式 這樣命名的 然後 只會針對 字體名 重新定義名稱
    我也不清楚我思路有沒有走對 不過測試下來 還沒發現問題
    mkstool788 一個讓字幕內崁字體並對字體子集化的工具
    獨立開發的伺服器系統 可以用mpv播放器串流 BD 能讀章節訊息 可自選 音軌 字幕 串流支援 杜比 DTS HDR
    有興趣可以進Discord
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    92

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    30508
    b8b41e3c  楼主| 发表于 3 小时前 | 显示全部楼层
    本帖最后由 b8b41e3c 于 2024-10-18 12:59 编辑
    788也瘋狂 发表于 2024-10-18 12:07
    我說其實那不算字體名混用 是本來就可以這樣用 字體名+樣式
    還有一種(可變字體Variable Font 簡稱VF) 要細 ...

    是,如果仅仅从使用上来讲,那确实是正常的使用方式没有任何问题,但为了这种支持使用方式写的ass,工具要花大量的精力去做匹配,根本原因是现在除了隔壁的assfonts,其他的工具子集化的产物,一个字体文件只能包含一个唯一的字体名,除非不合并文件,但这样会引发其他问题.而隔壁的assfonts的方案是,把那些字体用到的所有名字再打进子集化的字体文件里,够简单粗暴,后果也很明显,如果发生了重命名,那么重命名后的字体就有概率还原不回去.

    反正我是准备一刀切了,实在太费神了这种事.而且收益比不太大,如果你硬要用子集化,自己修改一下ass也不是什么问题.

    关于这种情况有个例子:
    比如你在同一份ass里,用到了常规体和粗体的"微软雅黑",你最好是用{\b1\fn微软雅黑}或者在style里把Bold设置成-1来实现粗体,不要有"{\b1\fn微软雅黑}"的同时还有类似{\fn微软雅黑 Bold}的东西来实现粗体,这种对工具来说就是不待见的,我说的字体名混用就是指这种情况,当然放在原版字幕里,它就是合法的,可以正常播放的,但子集化工具为了兼容这种东西,要花很多精力.
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    2022-12-11 05:40
  • 签到天数: 151 天

    [LV.7]常住居民III

    3

    主题

    70

    回帖

    56

    VC币

    荣誉会员

    Rank: 14Rank: 14Rank: 14Rank: 14

    积分
    92745
    788也瘋狂 发表于 2 小时前 | 显示全部楼层
    我在說的是另一種字體 例如 SourceHanSerifSC-VF.otf
    在ASS 中可以定義為 (其實不只限ASS 只要是可以選擇字體的東西好像都支援這樣定義?)
    Source Han Serif SC VF Weight
    Source Han Serif SC VF ExtraLight
    Source Han Serif SC VF Light
    Source Han Serif SC VF Medium
    等等還蠻多的都可以指向它 照我說的只重命名nameid1的話是
    自定義FontName Weight
    自定義FontName ExtraLight
    自定義FontName Light
    自定義FontName Medium
    微軟雅黑那個就不是一個可變字體不同性質

    好吧你懶得改我尊重你的選擇維持現狀就好 反正我只是上來閒聊的mm

    額外話
    還有我覺得字集化是否需要返回成原始字體名的支持是持反對的 因為子集化最終都是要包進mks 或mpv 裡面的... 抽出來字幕每行排序都會被重新排序,根本沒辦法是原始ASS的排序(請叫發布者提供他不提供就是叫你別搞),還會增加屁眼大小的容量,不過照我這思入返回原本字體沒感覺到有BUG.
    mkstool788 一個讓字幕內崁字體並對字體子集化的工具
    獨立開發的伺服器系統 可以用mpv播放器串流 BD 能讀章節訊息 可自選 音軌 字幕 串流支援 杜比 DTS HDR
    有興趣可以進Discord
    回复

    使用道具 举报

    该用户从未签到

    6

    主题

    46

    回帖

    0

    VC币

    注册会员

    Rank: 2

    积分
    882
    QH7B 发表于 2 小时前 | 显示全部楼层
    b8b41e3c 发表于 2024-10-18 11:19
    理论上只要没出现字体名混用问题(从v5.6.3开始这种情况会默认报错罢工),是可以一一对应上的,最多是和原来 ...

    好的,感谢指正!还有一个小问题想请教一下:一个样式要想使用斜体,Italic那里是只能设置为-1,还是-1和1都可以?assfonts和MPC-HC好像两种都会认为是斜体,而mkvtool只有设置-1才会认为是斜体。
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    92

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    30508
    b8b41e3c  楼主| 发表于 半小时前 | 显示全部楼层
    本帖最后由 b8b41e3c 于 2024-10-18 15:40 编辑
    QH7B 发表于 2024-10-18 14:19
    好的,感谢指正!还有一个小问题想请教一下:一个样式要想使用斜体,Italic那里是只能设置为-1,还是-1和 ...

    以ass specs为准

    Field 8:        Bold. This defines whether text is bold (true) or not (false). -1 is True, 0 is False. This is independant of the Italic attribute - you can have have text which is both bold and italic.

    Field 9:        Italic. This defines whether text is italic (true) or not (false). -1 is True, 0 is False. This is independant of the bold attribute - you can have have text which is both bold and italic.


    回复

    使用道具 举报

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

    本版积分规则

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