OttoLi 的胡言乱语

  • 账户
    • 登录
    • 注册
    • 个人中心
head

ass字幕加载字体的那些事

2020年5月14日 18857点热度 9人点赞 8条评论

ass字幕简介

ass [æs] n. 屁股;蠢货;驴子

ass (Advanced SubStation Alpha),是一种比SSA更先进的字幕脚本格式。基于SSA 4.00+编码构建。ass 和 srt 是目前最流行的字幕文件格式

ass 与 srt 的区别在于,srt 为纯文本字幕,ass 则能够定义字幕的字体、大小、颜色、位置、阴影、透明度等诸多参数,常用来制作特效字幕

对比图(左ass 右srt):

ass 调用字体的方式

上文提到 ass 字幕可以设置文字的字体,但是事实上 ass 只是对字体文件进行调用,如果计算机上安装有对应字体,才能够正常显示

ass 字幕文件可以用记事本直接打开,下面以动漫国字幕组的《刀剑神域 序列之争》字幕(节选)为例,对 ass 字幕加载字体的方式加以说明:

[Script Info]
Title: [Sword_Art_Online:Ordinal_Scale]
Original Script: DMG
ScriptType: v4.00+
WrapStyle: 0
PlayResX: 1280
PlayResY: 720
YCbCr Matrix: TV.709
ScaledBorderAndShadow: yes

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Default,方正准圆_GBK,50,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,0,2,10,10,13,1
Style: Comment,方正准圆_GBK,39,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,-1,0,0,0,100,100,0,0,1,2,0,8,10,10,10,1
Style: Staff,方正准圆_GBK,35,&H20FFFFFF,&HF0000000,&H20000000,&H000F0F0F,0,0,0,0,100,100,0,0,1,1.7,0,8,30,30,10,1
Style: Title,黑体,55,&H00E2BA4F,&H00FFFFFF,&H00FFFFFF,&H00FFFFFF,-1,0,0,0,100,100,7,0,1,0,0,2,10,10,10,1
Style: EDJP,A-OTF Gothic MB101 Pr6N M,48,&H00FDFDFD,&H00FFFFFF,&H00FFFFFF,&H00FFFFFF,-1,0,0,0,100,100,0,0,1,0,0,3,10,15,10,1
Style: EDCN,Droid Sans Fallback,42,&H00FDFDFD,&H00FFFFFF,&H00FFFFFF,&H00FFFFFF,-1,0,0,0,100,100,0,0,1,0,0,9,10,15,10,1
Style: Insert_JP,A-OTF Jun Pro 34,45,&H00FFFFFF,&H000000FF,&H00BA909B,&H0004124E,0,0,0,0,100,100,0,0,1,1.5,0,9,10,10,3,1
Style: Insert_CN,方正准圆_GBK,37,&H00FFFFFF,&H000000FF,&H00BA909B,&H0004124E,-1,0,0,0,100,100,0,0,1,1.5,0,9,10,10,6,1
Style: TCMS-TX,Reishoreiryu,42,&H00FFFFFF,&HF0FFFFFF,&H00FFFFFF,&HF0FFFFFF,0,0,0,0,100,100,0,0,1,2,0,5,15,15,10,1
Style: Insert_CN-TX,方正隶变_GBK,37,&H00664157,&H000000FF,&H00FFFFFF,&H0004124E,-1,0,0,0,100,100,0,0,1,1,0,8,35,10,60,1

[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: 0,0:00:00.00,0:00:00.00,Comment,,0,0,0,,——OP——
Comment: 0,0:00:00.00,0:00:00.00,Comment,,0,0,0,,——Insert 1——
Dialogue: 0,0:06:26.30,0:06:29.47,Insert_JP,,0,0,0,,{\blur3\fad(100,100)}だから「会いたい」なんてナンセンス
Dialogue: 0,0:06:29.69,0:06:33.49,Insert_JP,,0,0,0,,{\blur3\fad(100,100)}ユビキタするよ君のメモリーに
Dialogue: 0,0:06:34.05,0:06:42.45,Insert_JP,,0,0,0,,{\blur3\fad(100,100)}ほら君が私を呼ぶのなら 耳すまして
Dialogue: 0,0:06:26.30,0:06:29.47,Insert_CN,,0,0,0,,{\blur3\fad(100,100)}只有想念根本没意义
Dialogue: 0,0:06:29.69,0:06:33.49,Insert_CN,,0,0,0,,{\blur3\fad(100,100)}要让歌声渗透在你的每一分记忆
Dialogue: 0,0:06:34.05,0:06:42.45,Insert_CN,,0,0,0,,{\blur3\fad(100,100)}如果你想找到我的声音 最好侧耳聆听
Comment: 0,0:00:17.53,0:00:17.53,Comment,,0,0,0,,——HMZ——
Dialogue: 0,0:04:10.14,0:04:17.11,Comment,,0,0,0,,{\fn方正兰亭黑_GBK\fs25\c&H000000&\bord1.5\3c&HFFFFFF&\pos(1067,18)}成为话题的装置是什么呢?
Dialogue: 0,0:04:10.14,0:04:17.11,Comment,,0,0,0,,{\fn方正兰亭黑_GBK\fs25\c&HFFFFFF&\bord1\3c&H1C97EC&\pos(1073,161)\b1}把现实扩张是什么意思?
Dialogue: 0,0:04:13.14,0:04:14.81,Default,,0,0,0,,{\fn方正兰亭黑_GBK\fs40\c&HFFFFFF&\bord2\3c&H3734B2&\b1\pos(640,615)}嗯、是这个吗?
Dialogue: 0,0:04:16.02,0:04:17.11,Default,,0,0,0,,{\fn方正兰亭中黑_GBK\fs50\c&HFFFFFF&\bord2.5\3c&HB7501A&\b1\pos(640,595)}这是AUGMA!!
Dialogue: 0,0:05:11.95,0:05:12.25,Default,,0,0,0,,{\fn微软雅黑\fs25\c&H958B7E&\bord0\b0\pos(640,290)}每天都是冒险
Dialogue: 0,0:05:12.25,0:05:13.75,Default,,0,0,0,,{\fn微软雅黑\fs75\c&H866E50&\bord0\b0\pos(640,500)}每天都是冒险
Dialogue: 0,0:06:43.54,0:06:45.05,Comment,,0,0,0,,{\fn萝莉体 第二版\fs30\bord0\c&HF8A4AC&\an8\pos(141,30)}Yuna首次演唱会\N新国立竞技场
Dialogue: 0,0:06:43.75,0:06:45.05,Comment,,0,0,0,,{\fn萝莉体 第二版\fs30\bord0\c&H999891&\an8\pos(142,100)}各位 等你们哦

字幕主要分三部分:

  • [Script Info] 记录了字幕的一些基本信息
  • [V4+ Styles] 设定了一系列字幕样式预设方案
  • [Events] 字幕文本的主体部分——时间轴

容易看出,在两个地方调用了字体:

  1. 调用字体在样式预设中,第一个参数是样式名,第二个参数就是指定的字体名称
  2. 在 [Events] 中,每行文本的 text 之前可以用 { } 声明该行的样式,可以用 \fn+字体名 的方式调用字体

同时也可以看出:ass 字幕是通过字体名称调用字体文件的

我用到了哪些字体——ListAssFonts

1.引子

我们经常遇到这样的情况,下载了 ass 字幕,却没有安装对应的字体文件。为了使字幕正常显示,我们不得不用记事本打开 ass 字幕文件,找到需要安装的字体名称,然后一个一个去百度、下载、安装。这个过程真是要多烦人有多烦人

ListAssFonts 是 VCB-S 论坛网友 tonyhsie 开发的一个小程序,它可以帮你列出字幕文件中到底用了哪些字体

软件发布页:https://bbs.vcb-s.com/thread-1894-1-1.html

值得注意的是,ListAssFonts 并不只是简单的列出 ass 字幕调用的字体文件列表而已,它的强大主要体现在三点:

1.可以判断字幕中实际使用到的的字体,比如字幕中列出了某款字体,但之后并没有使用,这样 ListAssFonts 就不会把字体列出来

2.ListAssFonts 能够精确地判断字幕所调用的是某一种字重的字体,而不会把整个字体系列都列出来

3.除了检查字体有没有安装,还能进一步检查字幕有没有问题、字体有没有错误,可以起到“在播放前提早检查出可能出现的错误”的功能

通过 ListAssFonts,可以方便地对字幕进行优化,更精确地导出或安装实际使用到的字体文件,可以一劳永逸地做好每个字幕匹配字体的工作

2.功能简介

1. 列出.ass/.ssa字幕檔裡實際用到的字型,並以紅黑顏色來表示未安裝(紅/粉紅) 及已安裝字型(黑/藍)
    黑色 - 已安裝字型
    藍色 - 已安裝的特殊字型
    紅色 - 未安裝字型
    粉紅 - 未安裝的特殊字型
    特殊字型的定義是,在 .ass/.ssa 裡正常定義也正常安裝,卻可能仍然沒有正常顯示出來的字型,發生的原因未知
2. 列出系統裡已安裝的所有字型,包含英文/繁中/簡中/日文字型名
3. 可選擇是否自動存成文字檔 (勾選右下 Save .txt)
4. 可選擇是否導出字型文件 (勾選下方 Save Fonts)
5. 按F12/Menu鍵可導出 debug 用的純文字文件,方便報錯/除錯
6. 將字幕有缺字的部分,另外生成 "*.NeedVerify.txt",方便檢視修改
不需要產生 "*.NeedVerify.txt" 時,可使用捷徑 "ListAssFonts.exe -nnv" 的方式來執行
7. 另外產生完整去除字型子集 "; Font Subset: " 的字幕
8. 另外產生內嵌字型/圖型檔案、以及,去除內嵌字型 [Fonts] / 圖形[Graphics] 區段的字幕

3.操作方式

1. 可直接拖曳字幕檔案或目錄到其上,或用 Select 按鈕選目錄、或手動輸入目錄 enter 皆可
2. 點 Installed Fonts 鈕,則列出系統已安裝字型
3. fonts.txt 會存於字幕目錄下,installedFonts.txt 則存於程式本身目錄下,若有勾選 Save Fonts,則會存到 字幕\Fonts\目錄下
4. 字型會存到字幕目錄\Fonts\ 下,不管複製成功或失敗,結果都會顯示於字型後面,copied 代表字型複製成功,not installed 代表系統未安裝此字幕,not found 代表在註冊表裡或系統字型文件夾裡找不到此字型

4.软件下载

目前最新版本是 v210428 版本,我把所有版本在蓝奏云分流了一份:

蓝奏云

我该怎么找字体——超级字体整合包 XZ

在上一章,我们已经解决了“如何知道缺少了哪些字体”的问题。那么下一步,该怎么找到缺少的字体?

当然,百度上一搜一大把免费的字体下载网站,但对于一个经常看动漫、电影的人来说,每次都要在网上找很久的字体文件,是不现实的。所以我推荐——超级字体整合包 XZ

超级字体整合包 XZ 是 VCB-Studio 大佬 littlepox 整合的字体包,包含了 17000+ 的字体文件,能满足绝大多数字幕的播放需求

在 dmhy 的发布页为:https://share.dmhy.org/topics/view/516705_XZ.html

超级字体整合包 XZ 包含 完整包 和 精简包 两部分。完整包 中共有 17509 个文件 精简包 中共有 444 个文件。总体积 53.8GB

超级字体整合包 XZ
├───完整包
│   ├───Adobe
│   ├───Arphic(文鼎)
│   ├───DynaFont(华康)
│   ├───Fontworks
│   ├───Founder Type(方正)
│   ├───Google(谷歌)
│   ├───Hanyi Fonts(汉仪)
│   ├───Microsoft(微软)
│   ├───Monotype(蒙纳)
│   ├───Morisawa(森泽)
│   ├───SinoType(华文)
│   ├───TensenType(腾祥)
│   ├───其他
│   └───慎用
└───精简包
    ├───日文
    │   ├───Adobe
    │   ├───DynaFont(华康)
    │   ├───EPSON(爱普生)
    │   ├───Fontworks
    │   └───Morisawa(森泽)
    ├───简体
    │   ├───DynaFont(华康)
    │   └───Monotype(蒙纳)
    ├───简繁
    │   ├───Adobe
    │   ├───DynaFont(华康)
    │   ├───Founder Type(方正)
    │   └───SolidZORO
    └───繁体
        ├───Adobe
        ├───DynaFont(华康)
        └───Monotype(蒙纳)

食用指南:

  1. 按需下载所需字体文件,仅能省去搜索的过程(不过从17000个文件中找你要的文件,也并非易事)
  2. 下载精简包,解决大部分情况找字体的问题
  3. 下载整个字体包,一劳永逸地解决找字体的问题
超级字体整合包 X 虽然能满足绝大多数字幕的播放需求,但是体积过于庞大,不适合全部安装,实际上 90% 的字幕只用到了其中 10% 的字体。因此,此次更新我们添加了精简包。精简包在限制体积的前提下,根据字体在字幕中出现的频率和各字幕组后期的选字习惯制作,并同时考虑了简、繁用户和字幕后期的需求,足以应对大多数情况,推荐全部安装。
精简包要求以尽可能少的字体满足尽可能多的需求,而完整包则力求满足全部需求。此次更新,我们进一步扩充了主流厂商的字体,并根据厂商和语言以及不同厂商字体体系的特点进行了分类。完整包推荐作为仓库,配合附带的三个小工具使用,而不是全部安装。
FontLoader 是一个字体临时载入工具,把字体拖上去就会载入,关闭程序就会自动卸载字体。
ListAssFonts 是 VCB-Studio 论坛网友 tonyhsie 制作的一个小工具,可以列出 ass/ssa 字幕中用到的字体,并用颜色区分是否已安装,也可以列出系统已安装的所有字体和导出字体文件,在繁中系统下还能导出可能缺字的字幕部分。详情请查看原作者的发布帖。
FontLoaderSub 是 VCB-Studio 论坛网友 yzwduck 制作的一个小工具,将程序放到字体所在的文件夹,再将 ass/ssa 字幕或者字幕所在文件夹拖到程序上,就会自动加载字幕中所用到的字体,关闭程序就会卸载临时加载的字体。详情请查看原作者的发布帖。
以上三个小工具可能会被杀毒软件报毒,请添加信任。
如何选择合适的字体对于字幕后期来说是一件十分头疼的事情,因此,我们还附带了一份《中日字体匹配推荐表》和多家厂商的字体样张,供字幕后期参考。
感谢软件作者、字体和表格提供者以及在整理过程中提供帮助的大佬们。
---------------------------------------------------------------------
Windows 10 1809 版本以后的用户安装字体时推荐选择“为所有用户安装”。
如果系统提示已安装,最好不要覆盖,以免出现问题。
此字体包仅供学习参考,商业使用请购买正版授权。
---------------------------------------------------------------------
Q&A
01. 为什么安装字体时如果系统提示已安装,最好不要覆盖?
系统字体和某些软件的界面字体对版本是有要求的,如果将其替换为另一个版本,可能导致系统或软件界面错位,甚至是崩溃。
02. 为什么安装字体时推荐选择“为所有用户安装”?
Windows 10 从 1809 版本开始允许用户安装字体到自己的使用者账户里,并将默认的“安装”选项替换为了这种新的安装方式,而把旧的安装方式改为了“为所有用户安装”(选项在右键菜单中),但是很多软件(例如 Aegisub)并不支持这种新的安装方式,无法识别通过新方式安装的字体。
03. 字体装得太多会有什么影响?
某些软件在启动时需要预读字体,它们的启动时间可能会变长,在选字体时可能会卡顿,比如 Aegisub 和 Office。
04. 为什么安装字体后某些网页显示不正常了?
有些网站给了某些字体更高的优先级,这就会出现两种情况,一是这些字体在 Windows 和 Mac 上渲染效果不同,可能在 Mac 上看起来更好,但是在 Windows 上就发虚了;还有一种情况是缺字,比如网站给了一个日文字体更高优先级,而你选择的语言是中文,那么中文和日文都有的字就会用这种字体显示,中文有而日文没有的字的就是另一种字体或者无法显示。解决这个问题的方法就是给浏览器安装一个字体管理插件来调整网页字体的优先级,或者卸载导致这个问题的字体。最常见的导致这个问题的字体是 Hiragino Sans GB(也称冬青黑体、苹果丽黑)。
05. 为什么有些字体无法安装?
如果你用的是 Windows 7/8/8.1,可能是字体文件出错了;如果你用的是 Windows 10,且是大部分字体都无法安装,可能是相关服务没打开,具体解决方法请自行百度/Google,如果只是少数字体无法安装,很可能是这些字体与 Windows 10 不兼容,文鼎就有很多字体都与 Windows 10 不兼容。
06. 我的系统盘空间紧张,不想把字体装在系统盘里怎么办?
你还可以选择“作为快捷方式安装”。须在“控制面板\外观和个性化\字体\字体设置\”中勾选“允许使用快捷方式安装字体”。这样在系统盘安装的就只是一个快捷方式,字体还是在原来的位置,但是开机之后系统可能还会再扫描一遍你的那些字体文件,所以开机之后的十几秒钟也许会有点卡,而且你存放字体的路径也不能更改了(你如果想改,系统会提示文件夹正在使用中)。
07. OTF、TTF、TTC 字体有什么区别?
TTC 字体就是多个字体(可以是 TTF 或 OTF)的集合。OTF 字体具有理论上更好的曲线和一些高级特性,但是目前已知完整支持 OTF 高级特性的软件就只有 Adobe 系列和 C4D、Maya 等专业设计软件。此外,OTF 字体在目前 Windows 上仍被大量使用的 GDI(包括 ClearType)渲染的显示效果远不如 TTF 字体。我们常用的字幕渲染器 libass 和 VSFilter 不支持 OTF 字体的加粗,就算你在字幕中设置了加粗,如果你装的是 OTF 字体,显示效果也是不加粗的,只有少数字体(如思源黑体、思源宋体、方正雅士黑等)在字幕中设置加粗时会自动调用 Bold 字重的字体,这些字体的特点是 Regular 字重和 Bold 字重在字体下拉列表中同名,在 Aegisub 中需选择 Regular 字重的名称再勾选加粗才能调用 Bold 字重,当然你也可以通过手动输入 Bold 字重的名称来调用,例如“思源宋体 Bold”。同一个字号的 OTF 字体会比 TTF 字体小。所以我们推荐在一个字体同时具有 OTF 和 TTF 两个版本时,优先安装和使用 TTF 版本。(注:虽然名称上 TTF 和 OTF 确实分别对应 TrueType 和 OpenType,但实际上现在常见的 TTF 字体是 OpenType Layout 的 TrueType Outline 字体,而一般说 OTF 字体指的实际上是 OpenType Layout 的 PostScript Outline 字体。)
08. CJK 版和地区版有什么区别?
同一个汉字,大陆、台湾、香港、日本、韩国等不同地区的写法可能是不一样的。CJK 版本就是包含了简、繁、日、韩全部字符,但是碰到不同地区写法不同的汉字的时候会优先显示其中一个地区的字形的版本,地区版就是只包含这个地区的字符的版本。另外,香港繁体的字形标准是有过修订的,所以在字体包中还分了新字形和旧字形。因此,我们推荐在制作字幕时优先使用目标地区的 CJK 版本或地区版,而不是任意一个 CJK 版本,尽管它已经包含了全部字符。
09. Pro-6(N)、Pro-5(N)、Std(N)、GB18030、GBK、GB2312-80、GB12345-90、BIG5 是什么?
这些都是字符集标准,用于规定字体中应包含哪些字符。Pro-6(N)、Pro-5(N)、Std(N) 是日文标准,GB18030、GBK、GB2312-80、GB12345-90 是简体中文标准,其中 GB12345-90 是输简得繁,BIG5 是繁体中文标准。在包含的字符数量上 Pro-6(N) > Pro-5(N) > Std(N),GB18030 > GBK > GB2312-80。一般认为 GB18030 和 GBK 同时包含了足够多的简体字符和繁体字符,是可以简繁通用的。
10. “伪 GBK”是什么?
“伪 GBK”是那些宣称简繁通用,但是实际上远未达到 GBK 标准规定的字符数的字体,这些字体缺少大量的繁体字形,甚至是常用字,所以我们不推荐在繁体字幕中使用这些字体。
11. 一个字体同时具有 Pro-6(N)、Pro-5(N)、Std(N) 版本,我可以只安装其中一个版本吗?
如果你是用来制作字幕,只需要装字符数最多的那个版本就行了,但是如果你是用来播放别人做好的字幕,只有字幕中写的那个版本可以被调用,因为 ass/ssa 字幕是根据字体名加载字体的,而不同字符集版本的字体名称是不一样的。GB18030、GBK、GB2312-80、GB12345-90、BIG5 等也适用此规则。字体包中同时保留了造字工房的新版字体和旧版字体以及思源黑体的 Bold 字重的 1.004 版本和 2.001 版本也是因为他们的名称不一样。另外,Google 的 Noto 系列字体就是 Adobe 的思源系列字体 ,但是它们名称不一样,也都保留了。
12. 华康的“ビブロス外字”和“人名記号外字”是什么?
“ビブロス外字”收录的是一些图形、符号、生僻汉字、组合汉字等字符,这些字符已经包含在 Pro-6(N) 标准里了。“人名記号外字”收录的是日本汉字的不同变体,主要用于人名。
13. 森泽的 A-OTF、G-OTF、U-OTF、AP-OTF 有什么区别?
A-OTF 是日本标准字形;G-OTF 是学参字体,字形与标准字形不一样,多见于子供向动画和一些教育类节目;U-OTF 是报社的印刷字形标准,与 A-OTF 的差别主要在于人名和地名中出现的异体字;AP-OTF 是通过调整字符间距优化了显示效果的字体。
14. 《慎用》文件夹下的字体为什么要慎用?
这些字体都是第三方魔改的字体,且存在着一些问题,我们也建议尽量不要使用这类字体,例如:“方正晶黑”是第三方伪造的字体,由几个字体拼凑而成,而且有些字的字形是错误的,并非方正出品的字体;“熊兔流星体”的 Family 属性为“Heiti SC”,安装后,网页中原本应以“黑体”显示的字可能会以“熊兔流星体”显示。
15. “冬青黑体简体中文”为什么放在了《简繁》文件夹内?
“冬青黑体简体中文”确实是符合 GB18030 标准的,可以简繁通用。
---------------------------------------------------------------------
百度网盘:https://pan.baidu.com/s/11Ugb_YkG6BSGmUww-dd6lQ
提取密码:32iq

我该怎么临时安装字体——FontLoader

现在你已经准备好了需要的字体文件,那么该如何安装它们呢?

我们知道,Windows 安装字体实际上就是把字体文件拷贝到了 C:\Windows\Fonts 目录下,随着你安装的字体越来越多,占用 C 盘的空间也会越来越大。打开一些程序(比如 PS、Office)时,扫描字体的时间也会越来越长。这势必会影响电脑的正常使用。此时 FontLoader 就派上用场了

FontLoader 是 cryptw 开发的一个小程序,把一个或多个字体文件拖放到 FontLoader.exe 上,就可以临时安装字体文件。关闭程序后,会自动释放安装

FontLoader 是开源程序,代码托管在 bitbucket.org 上,项目地址为:

https://bitbucket.org/cryptw/fontloader

最后更新是 2010 年 9 月 16 日,应该不会再更新了,分流下载:

蓝奏云

通过字幕快速挂载字体——FontLoaderSub

FontLoaderSub 同时实现了字幕字体扫描和字体临时加载的功能

FontLoaderSub 是 VCB-S 论坛网友 yzwduck 开发的一个小程序,它可以自动加载字幕所需要的字体

下载后移动到字体所在文件夹,第一次打开时会扫描字体目录

使用非常简单,直接把字幕文件拖到 FontLoaderSub.exe 上,就会自动加载字幕所需要的字体:

展开详细信息后,将显示每个字体名称和匹配的文件名,每行的前缀表示:

  • [ok]: 加载成功,如没有显示路径则表示系统已安装/加载了该字体;
  • [^ ]: 加载的字体文件与上一个相同(无论加载是否成功);
  • [??]: 无匹配字体;
  • [ X]: 加载失败。

底部三个按钮分别可以:

  • 菜单/Menu: 里面有几个主界面上塞不下的小功能:更新索引、导出字体、帮助;
  • 确定/OK: 最小化;
  • 关闭/Close/Esc/Alt+F4: 卸载所有匹配的字体,并退出程序。

与 ListAssFonts 的区别:

与 ListAssFonts 精确地判断实际使用到的字体不同,FontLoaderSub 采取的是“多多挂载反正不会错”的策略。面对不同字重的字体,即使字幕只使用到其中之一,FontLoaderSub 也会将全部字重统统挂载。对于“字幕中列出但实际没有使用”的字体也会进行挂载。仅仅是临时观看,这样的做法并无大碍,但如果需要打包字体文件进行分享,FontLoaderSub 就会在一定程度上造成资源冗余


FontLoaderSub
本工具是 FontLoader 的加强版,两者使用了相同的 API 来实现临时添加和删除字体。
FontLoaderSub 添加了字体文件解析、字幕文件解析、字体名称匹配等功能。

注意事项
1、杀毒软件可能会报毒,请谨慎判断,故设置解码密码以防止下载后即被删除,密码为 vcb-s 目前误报较少,不再设置密码;
2、为了避免反复扫描 3000+ 字体文件,程序会将扫描结果缓存到 fc-subs.db。如果新增/删除/修改了字体,请利用“重试”按钮来清除缓存;
3、只支持 Unicode 带 BOM 编码的 .ass/.ssa 字幕,且文件大小不超过 64MB;
4、字体名称匹配算法和 Windows 的不一样,所以部分字体名称可能无法匹配;
5、不支持 Windows XP。

许可协议
GPLv2: 可自由使用、修改、分发软件,并获取其源代码。

使用方法
1、将程序解压并移动到字体所在文件夹,它将会分析程序所在文件夹(和子目录)下面所有字体文件;

2、将字幕(或字幕所在的文件夹)拖动到程序图标上,或使用下文提到的快捷方式;
3、等待程序分析加载,完成后显示如下界面:


展开详细信息后,将显示每个字体名称和匹配的文件名,每行的前缀表示:
[ok]: 加载成功,如没有显示路径则表示系统已安装/加载了该字体;
[^ ]: 加载的字体文件与上一个相同(无论加载是否成功);
[??]: 无匹配字体;
[ X]: 加载失败。

底部三个按钮分别可以:
菜单/Menu: 里面有几个主界面上塞不下的小功能:更新索引、导出字体、帮助;
确定/OK: 最小化;
关闭/Close/Esc/Alt+F4: 卸载所有匹配的字体,并退出程序。

快捷方式
从帮助界面可以打开快捷方式管理,具体用法请参见下一条


右键整合/快捷方式(及手工删除方法)
“发送到”文件夹/SendTo,需选中字幕/文件夹后右键,如下图所示:


如需手工删除,请在"本电脑" 的地址栏中输入 "shell:sendto",打开文件夹后删除对应的快捷方式。

文件夹空白处右键/directory background,需在没有选中任何项目的情况下右键,如下图所示:

如需手工删除,请删除注册表的 HKEY_CURRENT_USER\Software\Classes\Directory\Background\shell\FontLoaderSub

字体导出失败?
在扫描、加载字体时,本工具使用了 Root Local Device 路径,来应对各种非常规路径(比如 NUL、超长路径)。
但是在导出字体时用了 Windows Shell 的文件操作接口,它提供了文件管理器一样的界面,能处理异常逻辑(提示文件重名、显示复制进度等),同时也继承了它无法处理特殊路径的缺陷(毕竟不支持 Root Local Device 路径)。

关于“字体缓存服务 Windows Font Cache Service”
很多字体管理软件建议禁用这个服务,本工具使用了独立的字体解析方法,所以对这个缓存服务不敏感。
但貌似使用 DirectWrite 字体接口的程序,只有在开启字体缓存的情况下,才能发现本工具加载的字体,所以没有特殊需要的话,不要禁用这个服务。

缓存文件“fc-subs.db”
这个文件记录了程序所在目录下的所有字体文件的基本信息,如文件名、版本号、字体名称。
除了文件头和换行符外,它基本算是一个 UTF-16 LE 编码的文本文件。
本来想利用压缩算法减小其体积,但觉得能用文本编辑直接看其中的内容,远比数 MB 的磁盘开销有价值得多。

多字重/字形支持
由于一些拉丁文字体有独立的粗体、斜体等字体文件,为了找出并加载这些字体文件,本工具使用的算法如下所示:
1、找到名称匹配的最新版本字体文件,将其称为主字体,记录其版本号;
2、找到所有前缀与所需字体名称一致,且版本号与主字体一致的字体文件,将其视为衍生字体,并加载;
3、为了防止意外事故,最多加载 16 个不同的衍生字体文件。

梗
使用 r+数字 是为了避免飙版本号的嫌疑,以及模仿 SVN;
使用小写 [ok] 是因为大写 [OK] 太宽,会很难与其他的前缀标志对齐。

下载

目前的最新版本是 r7-20200525

vcb-s 论坛发布页:https://bbs.vcb-s.com/thread-3848-1-1.html

GitHub 发布页:https://github.com/yzwduck/FontLoaderSub

蓝奏云分流:

蓝奏云

总结

  1. 只要硬盘空间不是太吃紧,超级字体整合包 XZ 都是建议下载的
  2. 当下载的资源中附带 Fonts 时,可以使用 FontLoader 快速加载字体
  3. 只有字幕文件而没有字体时,可以使用 FontLoaderSub 快速加载字体
  4. 需要列出字幕所需字体列表以及安装情况时,需要使用 ListAssFonts
  5. ListAssFonts 和 FontLoaderSub 都可以导出字幕所需字体,但 ListAssFonts 要更加精确

另:关于mkv内封字体

mkv 容器不止可以封装视频、音频、字幕轨,其实也可以把字幕所需要的字体封装进去:

例如上图打开的是 subbers 字幕组压制的《紫罗兰永恒花园 外传》,用 MKVToolNix 打开后,可以看到在 附件 列表中,列出了封装的字体文件

在主流视频播放器中,mkv 内封字体文件都是可以被正常调用的

本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可
标签: 字体 教程 资源 软件
最后更新:2021年12月5日

OttoLi

涧户寂无人,纷纷开且落
——辛夷坞

打赏 点赞
< 上一篇
下一篇 >

文章评论

  • tonyhsie

    您好,我是 ListAssFonts 的作者本人
    非常感謝您對 ListAssFonts 的介紹與推廣

    容我在此對您的文章,稍微作一點補充說明

    1.

    以前 ListAssFonts(LAF) 主要是檢查字型有沒有安裝
    不過現在的 LAF 還會進一步檢查字幕沒有任何問題、字型有沒有缺字

    也就是能提早檢查出,「字幕在播放時,所有可能會出現的問題」,不僅僅是字型有無安裝而已

    2.

    「FontLoaderSub = ListAssFonts + FontLoader」

    這個說明可能會讓人誤解了 FontLoaderSub 跟 ListAssFonts 的關係
    我個人認為不是很貼切

    FontLoaderSub 是主動加載字幕字體沒錯,但它並不會檢查字幕有沒有問題
    加載字體也不是只加載需要的字體,而是「盡可能地把跟字幕有關的字體通通加載上去」

    例如說,字幕上列了「思源宋體」,但是實際上沒有用到

    FontLoaderSub 是不會去檢查這種情況的,只要字幕有列,它就通通掛載上去
           而且「思源宋體」實際上有七種不同字重,FontLoaderSub 是「一律通通掛載」

    ListAssFonts 則不是這樣,只會列出字幕裡「確實有被使用到」的字型
          若字幕裡有列出「思源宋體」,但實際上沒用到,LAF 就不會把該字型列出來
          若字幕裡確實使用了「思源宋體 Medium],LAF 就會列出該字型,但不會列出其它六種字重

    另一個問題,是關於導出字型

    由於 FontLoaderSub 並不會去確認字幕裡實際上使用了哪些字型,而是通通掛載
    那麼它在導出字型時,自然也是導出所有它掛載的字型

    這樣一來,其實很多字型並沒有被字幕使用到,但它們也會通通被導出
    實際上,對字幕而言,這些都是不必要的字型

    ListAssFonts 沒有這種情況,它只列出,也只導出字幕「實際上真正使用到的字型」

    相關討論可見此討論串
    https://bbs.vcb-s.com/forum.php?mod=redirect&goto=findpost&ptid=3848&pid=51788&fromuid=8179

    不同軟體的作者,設計的邏輯也不同

    FontLoaderSub 採取了「多多掛載反正不會錯」的作法

    ListAssFonts 則是以「有一說一,例不虛發」的邏輯來設計

    這些說明只是如實說明箇中差異而已,並沒有想要捧甲貶乙的意圖
    兩個軟體的初衷、以及目的都不一致,大家按照自己的需求去選擇即可

    但我想 「FontLoaderSub = ListAssFonts + FontLoader」這個說法並不是很恰當

    透過以上的說明,希望您能夠理解,謝謝

    2020年10月29日
    登录以回复
    • OttoLi

      @tonyhsie 感谢您的斧正!
      确实是我对两个软件的认识还不到位,才做了不恰当的比喻,看完您的讲解,现在已经认识到「FontLoaderSub = ListAssFonts + FontLoader」这个说法确实不是很恰当。
      「多多掛載反正不會錯」、「有一說一,例不虛發」的设计逻辑我现在已经了解了,稍后会对介绍做修改。
      最后再次感谢您开发这么实用的软件造福大家!

      2020年10月29日
      登录以回复
      • tonyhsie

        @OttoLi 站長您客氣了,謝謝您的理解跟厚愛,如果您在使用 ListAssFonts 上有碰到任何問題,或是有什麼建議,都歡迎反饋給我(在 VCB 討論帖回文或私訊我皆可),我會盡可能協助的。能幫上大家的忙,也是我個人的榮幸

        2020年10月29日
        登录以回复
  • TinyWang

    很有帮助,谢谢站长♥

    2022年4月19日
    登录以回复
  • elonyoung

    很有站长,谢谢帮助♥

    2022年11月22日
    登录以回复
  • sst

    问一下,如果是mkv内挂ass但没有封装所需字体的情况,怎么快速挂载相应字体呢

    2023年1月10日
    登录以回复
  • 匿名诺夫

    我手上有一条无格式ass双语字幕,请问如何指定双语使用不同的字体?

    2023年2月23日
    登录以回复
  • zlw

    hhhhhhh

    2023年6月6日
    登录以回复
  • 您需要 登录 之后才可以评论

    OttoLi

    涧户寂无人,纷纷开且落
    ——辛夷坞

    最新 热点 随机
    最新 热点 随机
    精粤 h610i 主板 BIOS 启动画面 logo 修改自定义 Office/Visio/Project 安装与激活教程 - 适用于各种版本/正版/非正版 CentOS 安装运行 Hentai@Home 教程 自搭建全平台私有密码库 bitwarden & Vaultwarden 如何在不移动本地文件的情况下用 OneDrive 客户端将文件上传至 OneDrive —— 利用 mklink 软链接上传文件 Linux 如何使用密钥对连接 SSH 并关闭密码连接
    [下载]那些超级有用的美术技法教程书[资源]攻壳机动队系列蓝光收藏指南Netch-可替代 SSTap 的开源游戏加速器2021 甲骨文云 Oracle Always Free 永久免费 VPS 服务器 | 介绍/注册/申请/部署/连接/注意事项APlayer & MetingJS 音乐播放器使用指南WordPress 建站日志
    如何自定义Win32程序的应用磁贴 WordPress 写作高级操作指南 2021 甲骨文云 Oracle Always Free 永久免费 VPS 服务器 | 介绍/注册/申请/部署/连接/注意事项 [下载]那些超级有用的美术技法教程书 [资源]攻壳机动队系列蓝光收藏指南 Linux 中文语言环境设置 + 时区更改 已测试 CentOS Ubuntu
    标签聚合
    ssr 日期与时间 CentOS Wordpress 白嫖 绘画 ssh VPS Linux 游戏 资源 甲骨文 Office oracle 动漫 免费 教程 建站 Windows Ubuntu
    关于本站

    Otto 不知道该说些什么,于是写了这么一行字……

    目录 隐藏
    1. ass字幕简介
    2. ass 调用字体的方式
    3. 我用到了哪些字体——ListAssFonts
    4. 我该怎么找字体——超级字体整合包 XZ
    5. 我该怎么临时安装字体——FontLoader
    6. 通过字幕快速挂载字体——FontLoaderSub
    7. 总结
    8. 另:关于mkv内封字体

    COPYRIGHT © 2022 OttoLi. ALL RIGHTS RESERVED.SITEMAP

    THEME KRATOS 豫ICP备20004659号 萌ICP备20210150号

    腾讯云  LiteServer  Google Analytics  CloudFlare