Advanced SubStation Alpha
几乎什么都能做的字幕格式:命名样式、任意字体、颜色、描边、阴影,以及可以定位、移动和动画化每一行的代码。字幕组用它排版已有二十五年。它的前身 SubStation Alpha(.ssa)读取方式相同。
概览
| 扩展名 | .ass |
|---|---|
| 媒体类型 | 未注册;习惯上使用 text/x-ssa |
| 规范 | 非正式。以 SubStation Alpha 的脚本说明为准,再加上 VSFilter 和 libass 的实际绘制效果。 |
| 时间精度 | 百分之一秒 |
| 文本编码 | 未声明。如今多为 UTF-8;较旧的文件使用当时的编码,Subtitld 会检测。 |
| 样式 | 命名样式,以及文字中的覆盖代码:字体、颜色、描边、阴影、旋转、动画 |
| 位置 | 可以放在任何位置:样式的对齐方式和边距,{\an8}、{\pos}、{\move} |
| 说话人 | 每行都有一个演员(Name),屏幕上不显示 |
| 在容器中 | Matroska 中为 S_TEXT/ASS 或 S_TEXT/SSA,字体一并附加;转为 MP4 时仅转换,不保留样式 |
文件的结构
文件分为三个部分,每部分以方括号中的标题开始,标题下方是 键: 值 形式的行。
[Script Info] PlayResY: 800 [V4+ Styles] Style: Default,Arial,44,… [Events] Dialogue: 0,0:00:30.80,…,Celia,…
- 1 · 脚本信息
画布:所有位置都以它为基准的尺寸(
PlayResX、PlayResY),换行方式(WrapStyle),以及标题。 - 2 · 样式
命名的外观:字体、字号、颜色、描边、阴影、对齐方式和边距。SSA 把这一部分称为
[V4 Styles]。 - 3 · 事件
每条字幕占一行:
Dialogue;Comment则从不显示。
一行 Dialogue
Dialogue: 0,0:00:30.80,0:00:34.00,Default,Celia,0,0,0,,{\an8}Why don't you… 由逗号分隔,依次为:
| 字段 | 含义 |
|---|---|
| Layer | 层级越高,绘制越靠上。SSA 在这里使用 Marked=0。 |
| Start、End | 开始和结束时间,精确到百分之一秒 |
| Style | 其中一个命名样式 |
| Name | 演员,即谁在说话。不显示。 |
| MarginL、MarginR、MarginV | 此行使用的样式边距;0 表示沿用样式的边距 |
| Effect | 旧式的滚动效果,多数为空 |
| Text | 行中剩余的全部内容,包括逗号和覆盖代码 |
时间码
是百分之一秒,不是千分之一秒。 小时只用一位数字,小数点后两位。精确到毫秒的字幕保存为 ASS 时,会四舍五入到最接近的百分之一秒。
覆盖代码
花括号中的代码会从其所在位置开始改变这一行的效果。以下是常见的代码,以及 Subtitld 对它们的处理方式。
| 代码 | 效果 | 在 Subtitld 中 |
|---|---|---|
{\i1}…{\i0} |
斜体 | 保留 |
{\b1}、{\b700} |
粗体,或指定字重 | 保留 |
{\u1}、{\s1} |
下划线、删除线 | 保留 |
{\c&H00D7FF&} |
文字颜色 | 保留 |
{\r}、{\rSign} |
恢复为本行的样式,或改用另一个样式的外观 | 遵循 |
{\an8} |
放置本行:小键盘的九个位置 | 保留 |
\N、\n、\h |
换行;仅在 WrapStyle: 2 下才换行;不换行空格 |
保留为换行和空格 |
{\pos(960,100)}、{\move(…)} |
精确的点,或一条路径 | 不保留 |
{\fad(200,200)}、{\t(…)} |
淡入淡出和动画 | 不保留 |
{\k20} |
卡拉 OK 计时 | 不保留;文字保留 |
{\fnArial\fs48} |
字体和字号 | 不保留 |
{\p1}…{\p0} |
矢量绘图 | 不是字幕 |
颜色的顺序是反的。 &H00D7FF& 是金色:依次为蓝、绿、红。样式中的颜色前面还会加上 alpha 值,其中 00 为完全不透明,FF 为完全透明。
SSA 还是 ASS?
| SubStation Alpha .ssa | 高级 SubStation Alpha .ass | |
|---|---|---|
| 版本 | v4.00 | v4.00+ |
| 样式部分 | [V4 Styles] |
[V4+ Styles] |
| 对齐方式 | 它自己的数字:1 2 3 为底部,5 6 7 为顶部,9 10 11 为中间 | 小键盘的 1 到 9 |
| 下划线、删除线 | — | 可用于样式和代码 |
| 层级 | — | 每行一层 |
| 常用于 | 旧工具 | Aegisub、播放器、字幕组 |
Subtitld 中的 ASS
- 每条字幕的文字和换行
- 斜体、粗体、下划线、删除线和颜色,来自样式和代码
- 字幕在屏幕上的位置
- 说话人,以演员的形式保存
- 开始和结束时间,精确到百分之一秒,并按顺序排列
- 精确位置、淡入淡出、动画和卡拉 OK
- 逐行的字体、字号和描边;层级
- 绘图和注释
- 与原文并列的译文、配音、说话人的脸
保存 .usfx 项目即可保留属于 Subtitld 的内容。
打开 ASS 或 SSA 文件
Subtitld 可以读取两个版本,并会:
- 为每一行套用其样式的外观(斜体、粗体、下划线、删除线,以及白色以外的颜色)和位置,然后依照文字中的代码进行调整;
- 把演员作为该行的说话人,便于配音;
- 跳过
Comment行和绘图,保留绘图之后的文字; - 按
WrapStyle的设置处理\n:样式 2 下为换行,其他情况下为空格; - 解码任意编码,并把各行排好顺序。
无法表示的内容会被省略,例如精确位置、淡入淡出、卡拉 OK 和字体。文字本身会保留。
导出 ASS
依次点击 导出,再选择 字幕 和 ASS,可以设置以下选项:
- 文本原文、译文,或两者都要,译文放在下方。
- 说话人名字不写在文字中,或放在文字前(Thom:…)。无论哪种,都会作为演员写入。
- 格式保留,或删除。
- 偏移时间把所有字幕整体提前或推后相同的时长。
- 外观白字加黑色描边,或按 Subtitld 预览的效果:它的字体、颜色、阴影和半透明底框。
脚本按视频的尺寸设置,PlayResX 和 PlayResY 分别为视频的宽和高,唯一的样式 Default 按高度缩放:1080 高的视频为 60 像素。把文件命名为 .ssa,则会写成 SubStation Alpha v4,位置使用 SSA 的数字。
趣闻
SubStation Alpha 是由 Kotus 编写的一款编辑器。它的脚本格式沿用了这个程序的名字,并且比程序本身活得更久。
高级 SubStation Alpha 用原版的版本号加一个加号来标识自己:章节相同,但代码更多。
颜色按蓝、绿、红的顺序写入,alpha 则倒数:00 为完全不透明,FF 为完全透明。
相关格式
在 Subtitld 中打开它,连同视频一起,在波形上重新打轴。