找回密码
 立即注册
查看: 946|回复: 23

Sub Font Manager:字幕字体子集化和嵌入工具

该用户从未签到

1

主题

11

回帖

0

VC币

高级会员

Rank: 4

积分
25651
jensen 发表于 2025-6-26 22:44:50 | 显示全部楼层 |阅读模式
本帖最后由 jensen 于 2025-6-27 23:18 编辑

简介

Sub Font Manager 用于编辑.ASS或.SSA字幕文件中的字体设置,具体来说,它可以将字幕中所有使用过的字体汇总,
并将字体按照字幕所覆盖的字符集进行子集化并嵌入到字幕文件中。

Sub Font Manager 可以完全自动化地实现以下流程:

  • 汇总出字幕中所有使用过的字体(包括 Style 中的设置和行内覆盖的设置);
  • 在同目录和系统中自动匹配字体源文件;
  • 收集字体在字幕中覆盖的字符集;
  • 将字体子集化并在名表中保留字幕中的引用名字;
  • 将字体编码为文本并写入到字幕文件中。

在 Sub Font Manager 中,你只需通过简单的勾选就可以一键实现字体的子集化和嵌入操作,大大简化内嵌字体的流程。
因为流程的简化,你甚至可以在字体内嵌后放心的再次修改字幕,因为重新内嵌只需一键即可完成。

对于字幕制作者,你可以大大简化发布的文件包,用几乎一样大小的字幕文件在用户端无障碍重现字幕特效。
对于普通观影者,你无需再为了字幕中的几个特效文字而安装一系列字库,字幕会自带字体,而且只带它需要的那几个字,
这种字幕甚至在机顶盒和播放机中也可以重现特效

如何使用

Sub Font Manager 的使用非常简单,嵌入字体的步骤如下:
  • 从“输入文件”框中打开字幕文件,或者将字幕文件拖入窗口中,可以看到字幕中使用的字体和分别覆盖的字符数;
  • 勾选希望内嵌的字体(推荐同时勾选“子集化”);
  • 点击应用;

  • 完成!字幕自动重载入,可以看到勾选的字体已经变成内嵌字体。



兼容性

主流视频播放器中,只要能支持 ASS/SSA 特效字幕的,大多对内嵌字体兼容良好,其中包括但不限于:

  • PotPlayer
  • VLC
  • IINA (MPV)
  • Kodi
  • Infuse

不过也有例外,如 Movist(截至 v2.11.5)。

系统支持

Windows & macOS

语言支持

简体中文 & English

下载

详细介绍请移步Github:
https://github.com/jensenyg/SubFontManager/

下载也来自Github:
https://github.com/jensenyg/SubFontManager/releases/

新人自制软件分享,写这个软件的初衷源于我自己的需求,但我觉得这个功能很具有通用性,希望可以帮到大家。

评分

参与人数 1活跃度 +25600 收起 理由
paul + 25600 赞一个!

查看全部评分

回复

使用道具 举报

  • TA的每日心情
    开心
    2025-5-28 12:42
  • 签到天数: 50 天

    [LV.5]常住居民I

    2

    主题

    12

    回帖

    0

    VC币

    中级会员

    Rank: 3Rank: 3

    积分
    3681
    newyorker 发表于 2025-6-27 09:12:00 | 显示全部楼层
    感谢制作,试了一下,用起来非常方便。

    提个FR,除了当前目录和系统,能不能让用户自行设定其他的字体包根目录。因为我之前下了VCB的字体精简包,之后所有的字体我都存放在一个根目录下面。希望搜索字体的时候可以自动在该目录下进行寻找。
    回复

    使用道具 举报

  • TA的每日心情
    开心
    12 小时前
  • 签到天数: 750 天

    [LV.10]以坛为家III

    3

    主题

    58

    回帖

    2997

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    154882
    paul 发表于 2025-6-27 10:42:36 | 显示全部楼层
    软件总体来说还可以的,有几个建议

    1.增加批量处理字幕,目前我试了下只能一次处理一个字幕,一个一个来,这个也太不方便了

    2.能识别字体文件夹,这个应该可以设置一个字体文件夹路径,现在默认是字幕同路径或系统字体,但是一般都是有一个Fonts文件夹用来放字体,而不是字幕同路径下放字体,当然可以手动设置某一个字体的路径我觉得也挺好的,有时用的字体不规范,软件不一定能识别正确。

    3.批量选择内嵌,选择内嵌好像只能一个一个来,这个不太方便,还有我遇到字数为零的字体,如果可以一键全选,请注意智能不要选择。

    4.输出文件时,空白时输出文件会把源文件替换,应该是新增一个文件,然后在文件名加上后缀而不是替换原文件,选择新的路径,又要自己输入文件名,文件名应该默认和原文件相同

    5.考虑新增.mks的子集化字幕,如果是一个视频有多个字幕的话,我会优先选择mks的子集化字幕,当然mks字幕兼容性也有各种各样的问题
    回复

    使用道具 举报

  • TA的每日心情
    开心
    2 小时前
  • 签到天数: 736 天

    [LV.9]以坛为家II

    6

    主题

    162

    回帖

    1311

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    188945

    崭露头角

    偷懒的小蜜蜂 发表于 2025-6-27 11:18:35 | 显示全部楼层
    部分子集化吗,非常有趣的想法
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    6

    回帖

    0

    VC币

    新手上路

    Rank: 1

    积分
    69
    JamHsueh 发表于 2025-6-27 11:23:05 | 显示全部楼层
    感谢分享。
    楼主是否可以考虑一下支持封装的子集化字幕mks以及内封mkv中的子集化字幕呢?
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-12-4 12:48
  • 签到天数: 42 天

    [LV.5]常住居民I

    47

    主题

    2769

    回帖

    2020

    VC币

    星辰大海

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

    积分
    430489

    崭露头角活跃达人CD!BD!坚持不懈灌水之王日积月累

    孤雨独火 发表于 2025-6-27 21:06:04 | 显示全部楼层
    虽然但是你这个名字起的为什么叫manager....功能上看好像只是个editor
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    11

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    25651
    jensen  楼主| 发表于 2025-6-27 22:46:46 | 显示全部楼层
    newyorker 发表于 2025-6-27 09:12
    感谢制作,试了一下,用起来非常方便。

    提个FR,除了当前目录和系统,能不能让用户自行设定其他的字体包根 ...

    我建议你还是把字体都放在C:\Windows\Fonts文件夹下,系统会自动扫描所有字体并建立缓存,这样软件查找起来很快的,你放在其他路径,不管什么软件,要在里面找字体都得遍历所有,这很慢的。例如几百个字体扫描一遍差不多要好几秒,要是几千个,我这软件启动就卡住了……虽然我可以建立缓存,但这样又增加了复杂度。


    如果你的字体太多C盘装不下,那就有些麻烦了,只有通过注册表一个个将字体注册到系统,这样可以不拷贝地安装字体,可以用powershell脚本来实现批量自动化注册,具体代码可以问问大模型。
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    11

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    25651
    jensen  楼主| 发表于 2025-6-27 22:55:41 | 显示全部楼层
    本帖最后由 jensen 于 2025-6-27 23:26 编辑
    paul 发表于 2025-6-27 10:42
    软件总体来说还可以的,有几个建议

    1.增加批量处理字幕,目前我试了下只能一次处理一个字幕,一个一个来, ...


    讲真我设计这东西的时候并没有考虑过批处理,可以看我的使用须知里,我不认为把覆盖大量对白的字体内嵌是个好主意,那样会显著增大字幕文件体积(至多1M多,似乎不少人也可以接受),而且会造成大量的冗余(每个字幕存一套字体),普通对白真没必要内嵌,它是雅黑还是细黑还是兰亭黑区别真不大,如果真是喜欢某种字体作为日常使用,建议还是安装到系统,而不是内嵌。

    识别自定义文件夹这一点,如果你路径下真的很多字体,那会严重影响启动性能,虽然我可以做缓存,不过那真的挺麻烦的,看看需要的人是否多吧。

    mks本质上还是封包嘛,里面还是ass/ssa,而且里面可能不止一条字幕,当然这个GUI没法处理,建议还是直接抽出ass/ssa文件使用。
    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    11

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    25651
    jensen  楼主| 发表于 2025-6-27 22:57:46 | 显示全部楼层
    孤雨独火 发表于 2025-6-27 21:06
    虽然但是你这个名字起的为什么叫manager....功能上看好像只是个editor

    editor比manager更高级好吧……



    editor暗示着我可以编辑字体,修改字形等信息,可是我不能啊,我只能管理它们,嵌入或删除,所以叫manager喽。

    回复

    使用道具 举报

    该用户从未签到

    1

    主题

    11

    回帖

    0

    VC币

    高级会员

    Rank: 4

    积分
    25651
    jensen  楼主| 发表于 2025-6-27 23:02:42 | 显示全部楼层
    JamHsueh 发表于 2025-6-27 11:23
    感谢分享。
    楼主是否可以考虑一下支持封装的子集化字幕mks以及内封mkv中的子集化字幕呢? ...

    一个mkv或mks中可能包含多条字幕,当前这个GUI无法满足这样的需求。

    我建议你还是把里面的字幕抽出来,一个个编辑……
    另外,不建议把字幕嵌入到mkv,这第一会修改源文件哈希值,不利于P2P分享,第二给未来编辑造成了很大的麻烦,例如你现在的情况……

    有一点要注意:mkvmerge在遇到字幕内嵌字体时有一个特殊的处理,它会把内嵌字体抽出来,还原成ttf文件,再以附件的方式嵌入到mkv,这对播放毫无影响,甚至效率更高,但如果你把那字幕再抽出来,里面的内嵌字体就没了。
    回复

    使用道具 举报

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

    本版积分规则

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