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] 字幕文本的主体部分——时间轴
容易看出,在两个地方调用了字体:
- 调用字体在样式预设中,第一个参数是样式名,第二个参数就是指定的字体名称
- 在 [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.操作方式
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
食用指南:
按需下载所需字体文件,仅能省去搜索的过程(不过从17000个文件中找你要的文件,也并非易事)- 下载精简包,解决大部分情况找字体的问题
- 下载整个字体包,一劳永逸地解决找字体的问题
我该怎么临时安装字体——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 就会在一定程度上造成资源冗余
下载
目前的最新版本是 r7-20200525
vcb-s 论坛发布页:https://bbs.vcb-s.com/thread-3848-1-1.html
GitHub 发布页:https://github.com/yzwduck/FontLoaderSub
蓝奏云分流:
总结
- 只要硬盘空间不是太吃紧,超级字体整合包 XZ 都是建议下载的
- 当下载的资源中附带 Fonts 时,可以使用 FontLoader 快速加载字体
- 只有字幕文件而没有字体时,可以使用 FontLoaderSub 快速加载字体
- 需要列出字幕所需字体列表以及安装情况时,需要使用 ListAssFonts
- ListAssFonts 和 FontLoaderSub 都可以导出字幕所需字体,但 ListAssFonts 要更加精确
另:关于mkv内封字体
mkv 容器不止可以封装视频、音频、字幕轨,其实也可以把字幕所需要的字体封装进去:
例如上图打开的是 subbers 字幕组压制的《紫罗兰永恒花园 外传》,用 MKVToolNix 打开后,可以看到在 附件
列表中,列出了封装的字体文件
在主流视频播放器中,mkv 内封字体文件都是可以被正常调用的
文章评论
您好,我是 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」這個說法並不是很恰當
透過以上的說明,希望您能夠理解,謝謝
@tonyhsie 感谢您的斧正!
确实是我对两个软件的认识还不到位,才做了不恰当的比喻,看完您的讲解,现在已经认识到「FontLoaderSub = ListAssFonts + FontLoader」这个说法确实不是很恰当。
「多多掛載反正不會錯」、「有一說一,例不虛發」的设计逻辑我现在已经了解了,稍后会对介绍做修改。
最后再次感谢您开发这么实用的软件造福大家!
@OttoLi 站長您客氣了,謝謝您的理解跟厚愛,如果您在使用 ListAssFonts 上有碰到任何問題,或是有什麼建議,都歡迎反饋給我(在 VCB 討論帖回文或私訊我皆可),我會盡可能協助的。能幫上大家的忙,也是我個人的榮幸
很有帮助,谢谢站长♥
很有站长,谢谢帮助♥
问一下,如果是mkv内挂ass但没有封装所需字体的情况,怎么快速挂载相应字体呢
我手上有一条无格式ass双语字幕,请问如何指定双语使用不同的字体?
hhhhhhh