找回密码
 立即注册
查看: 1383|回复: 25

SubtitleFontHelper修改版: 字幕字体全自动按需加载

3

主题

406

回帖

42

VC币

至尊会员

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

积分
205625

活跃达人

shadows 发表于 2026-3-13 00:05:38 | 显示全部楼层 |阅读模式
本帖最后由 shadows 于 2026-3-27 23:40 编辑

首先感谢Apache553大佬之前的开源项目SubtitleFontHelper,十分好用的字体自动加载工具。原帖地址:https://bbs.acgrip.com/thread-6358-1-1.html


下载:

提醒!仅有Windows版,只适用于使用libass的播放器,例如mpv、xy-VSFilter with libass。可能有BUG!
v1.2.0版: SubtitleFontHelper-v1.2.0.zip (3.15 MB, 下载次数: 62) 尝试优化速度、内存,增加一个默认不启用的索引构建进度通知设置

fork开源地址 https://github.com/zhongfly/SubtitleFontHelper

快速介绍:
原版使用前需要手动建立字体索引,然后软件就会根据字幕需要,从索引里自动临时挂载索引里已有的字体,就像字体已经安装到系统里一样流畅。但是原版在新增/删除字体时,也还是需要手动更新字体索引文件、重启应用。
因此我在天才程序员(AI)的帮助下使得整个更新过程自动化了:
1. 使用前不需要手动建立字体索引,只需要在配置文件里设置字体包路径,每次启动时会自动建立/更新索引(会扫一遍字体文件夹,检查相对上次关闭软件时的变化);
2. 软件会监视字体包里面字体文件的变化(增加/删除/修改),自动更新索引,自动使用最新的索引(使用系统接口接收文件更新通知,不需要扫盘);
3. 配置文件也支持热重载了,修改配置后不需要重启软件
4. 增加系统通知,字体索引的建立、更新都有通知

与原版的区别:
1. 使用toml作为配置文件格式,xml仍支持,但是无法使用以上新增的功能,只是用来兼容旧版
2. 日志保存为文件,和程序在同一个文件夹,不需要去事件查看器里看日志
3. 优先使用配置文件里有多个字体索引时,排前面的字体索引 优先级更高,前面没有的才会使用后面索引的字体(看见有人提需求,所以做了,也许这样实现会有问题?)
4. 支持相对路径,字体索引也优先使用相对路径,使得理论上可以与字体包一起便携

图片预览:

PixPin_2026-03-12_22-24-20.png


使用方法:
1. 修改SubtitleFontHelper.example.toml,在monitor_processes里面填入你使用的播放器exe的名称,在[[index_files]]里面填写字体索引的保存位置和字体包的位置,多个索引文件就写多个[[index_files]]。另存为SubtitleFontHelper.toml,也就是删掉文件名里的“example.”
配置示例:
  1. wmi_poll_interval = 1000
  2. lru_size = 100
  3. monitor_processes = [
  4.         'mpv.exe',
  5.         'mpc-hc_nvo.exe',
  6. ]

  7. [[index_files]]
  8. path = 'E:\超级字体整合包 XZ\完整包\FontIndex.xml'
  9. source_folders = [
  10.         'E:\超级字体整合包 XZ\完整包',
  11. ]

  12. [[index_files]]
  13. path = '个人补充\FontIndex.xml'
  14. source_folders = [
  15.         '个人补充',
  16. ]
复制代码
wmi_poll_interval 和lru_size 其实不用设置
对于不会变化的字体包,可以在初次建立索引后,删除它的source_folders 设置,只留下path设置,那么软件就不会自动监控那个字体文件夹的变化
支持相对路径

2. 双击运行SubtitleFontAutoLoaderDaemon.exe


没了,本打算做一个GUI界面的,感觉也不是很需要,很简单的配置……

闲谈:

字幕的字体是字幕正常显示的基础,虽然目前内封字体的资源不在少数,但是分享外挂字幕时主要还是ass+字体包的形式,而且vcb等一些大佬都有分享比较全的字体包。由于把大而全的字体全部安装会对日常使用有影响,一般都推荐使用临时挂载字体的方法,其中比较常用的工具有:FontLoader.exe (这种手动找字体加载的工具真的还有人在用吗?)。之前的yzwduck 大佬的FontLoaderSub也不错,但是每次使用前需要手动选择字幕让软件分析后再自动加载,看完后还要手动关闭。然后就是SubtitleFontHelper,基本实现了自动了。


以下是历史版本,不建议使用






ReleaseBuild.zip

3 MB, 下载次数: 68

ReleaseBuild 2026.3.13 v2.zip

3.02 MB, 下载次数: 66

ReleaseBuild 2026.3.15.zip

3.03 MB, 下载次数: 63

ReleaseBuild 2026.3.21(增加更多日志).zip

3.04 MB, 下载次数: 71

评分

参与人数 1活跃度 +800 收起 理由
lisbt + 800

查看全部评分

回复

使用道具 举报

0

主题

4

回帖

0

VC币

新手上路

Rank: 1

积分
83
枫谷剑仙 发表于 2026-3-13 02:44:38 | 显示全部楼层
本帖最后由 枫谷剑仙 于 2026-3-13 03:52 编辑

你怎么知道刚好要来找




我平时是用 K-Lite Codec Pack 的 MPC-HC,所以我还得把监听进程名改成 mpc-hc64.exe




在同一台电脑上应该是比 FontLoaderSub 更方便,但是绝对路径数据库的话,不方便便携式使用。假设我把视频和字体都放在移动硬盘上,随时找任意电脑观看,就会因为绝对路径改变而出错吧。FontLoaderSub 的数据库好像是相对路径的。

我平时使用 Total Commander 作为文件管理器,可以非常方便的将程序添加为按钮,这样 FontLoaderSub 打开字幕其实会方便很多。当然这里只作为演示,并没有去做成相对路径。

回复

使用道具 举报

3

主题

406

回帖

42

VC币

至尊会员

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

积分
205625

活跃达人

shadows  楼主| 发表于 2026-3-13 11:10:17 | 显示全部楼层
本帖最后由 shadows 于 2026-3-13 11:22 编辑
枫谷剑仙 发表于 2026-3-13 02:44
你怎么知道刚好要来找



这个主要是支持多个字体文件夹的,要是全部用相对路径的话一样有问题,同一台电脑,只是软件移了位置,数据就得重建了,也很奇怪吧


不过我觉得可以支持相对路径,初步想法是假如设置的索引路径都是相对路径,那么生成的字体索引也是相对路径

而且fontloadersub的问题是,软件必须和字体包放一起,相当于只能有一个字体包路径,并且字体变化需要手动全量更新…

另外fontloadersub也支持注册到右键菜单里,但是这多少还是需要手动操作那么一下
回复

使用道具 举报

5

主题

492

回帖

215

VC币

星辰大海

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

积分
368961
苏辰汐 发表于 2026-3-13 19:27:19 | 显示全部楼层
我也一直在用 SubtitleFontHelper 工具,不过 mpv 的话还有一个比较有意思的东西:https://github.com/Koopex/FontInAss_mpv-script
回复

使用道具 举报

3

主题

406

回帖

42

VC币

至尊会员

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

积分
205625

活跃达人

shadows  楼主| 发表于 2026-3-13 20:57:17 | 显示全部楼层
苏辰汐 发表于 2026-3-13 19:27
我也一直在用 SubtitleFontHelper 工具,不过 mpv 的话还有一个比较有意思的东西:https://github.com/Koop ...

FontInAss 普通人用还是有点重了,还要部署docker
回复

使用道具 举报

3

主题

406

回帖

42

VC币

至尊会员

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

积分
205625

活跃达人

shadows  楼主| 发表于 2026-3-14 00:00:04 | 显示全部楼层
枫谷剑仙 发表于 2026-3-13 02:44
你怎么知道刚好要来找



支持相对路径了,对于旧版本的索引,运行新版时会在更改时自动更新为相对路径版。不过还是建议手动删除旧版索引……

字体索引的相对路径,指的是字体文件相对字体索引的路径,所以只要保证字体索引相对字体包的位置不变,可以便携移动的。

配置文件也支持使用相对路径了,所以软件也能和字体包这些一起便携了~


回复

使用道具 举报

4

主题

69

回帖

208

VC币

中级会员

Rank: 3Rank: 3

积分
8455
SAOKiller 发表于 2026-3-14 13:24:51 | 显示全部楼层
话说字体全部安装有什么后遗症吗?有没有能根据我建立的字体索引删除已安装在系统里的字体
回复

使用道具 举报

3

主题

406

回帖

42

VC币

至尊会员

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

积分
205625

活跃达人

shadows  楼主| 发表于 2026-3-14 14:27:46 | 显示全部楼层
SAOKiller 发表于 2026-3-14 13:24
话说字体全部安装有什么后遗症吗?有没有能根据我建立的字体索引删除已安装在系统里的字体 ...

有些支持设置字体的软件,在字体数量多的时候容易卡。你要是用的没问题可以先这样吧

回复

使用道具 举报

3

主题

406

回帖

42

VC币

至尊会员

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

积分
205625

活跃达人

shadows  楼主| 发表于 2026-3-15 21:10:35 | 显示全部楼层
好像没有需要改的了。

像读取http或者nas上的字体,感觉延迟很大,用的人也少

自动下载没有的字体,有点困难,毕竟从我的使用场景来说,本地已经有了vcb的字体包,其余字体没有方便直接下载的地方
回复

使用道具 举报

0

主题

4

回帖

0

VC币

新手上路

Rank: 1

积分
83
枫谷剑仙 发表于 2026-3-20 02:39:04 | 显示全部楼层

这是我的文件结构


配置文件写法是


运行之后只显示这个提示,并不会产生数据库


是不是因为直接传递字符串导致的错误?

我习惯在后面加上 \ 来表示这是文件夹而不是文件,但是命令行里直接输入 \ 会把后面的 " 转义。

点评

最近会看看什么问题,估计是相对路径的处理有些问题  发表于 2026-3-21 11:55
回复

使用道具 举报

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

本版积分规则

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