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. 1 · 脚本信息

    画布:所有位置都以它为基准的尺寸(PlayResX、PlayResY),换行方式(WrapStyle),以及标题。

  2. 2 · 样式

    命名的外观:字体、字号、颜色、描边、阴影、对齐方式和边距。SSA 把这一部分称为 [V4 Styles]。

  3. 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

保存在 .ass 中
  • 每条字幕的文字和换行
  • 斜体、粗体、下划线、删除线和颜色,来自样式和代码
  • 字幕在屏幕上的位置
  • 说话人,以演员的形式保存
  • 开始和结束时间,精确到百分之一秒,并按顺序排列
无处可存
  • 精确位置、淡入淡出、动画和卡拉 OK
  • 逐行的字体、字号和描边;层级
  • 绘图和注释
  • 与原文并列的译文、配音、说话人的脸

保存 .usfx 项目即可保留属于 Subtitld 的内容。

打开 ASS 或 SSA 文件

Subtitld 可以读取两个版本,并会:

  • 为每一行套用其样式的外观(斜体、粗体、下划线、删除线,以及白色以外的颜色)和位置,然后依照文字中的代码进行调整;
  • 把演员作为该行的说话人,便于配音;
  • 跳过 Comment 行和绘图,保留绘图之后的文字;
  • 按 WrapStyle 的设置处理 \n:样式 2 下为换行,其他情况下为空格;
  • 解码任意编码,并把各行排好顺序。

无法表示的内容会被省略,例如精确位置、淡入淡出、卡拉 OK 和字体。文字本身会保留。

导出 ASS

Subtitld 的导出对话框,已选择 ASS,外观设为 Subtitld 的预览效果

依次点击 导出,再选择 字幕 和 ASS,可以设置以下选项:

  • 文本原文、译文,或两者都要,译文放在下方。
  • 说话人名字不写在文字中,或放在文字前(Thom:…)。无论哪种,都会作为演员写入。
  • 格式保留,或删除。
  • 偏移时间把所有字幕整体提前或推后相同的时长。
  • 外观白字加黑色描边,或按 Subtitld 预览的效果:它的字体、颜色、阴影和半透明底框。
同一条字幕烧录进视频两次:左侧为白字加黑色描边,右侧为 Montserrat 字体,位于半透明底框上
两种外观,由 libass 绘制素材:Tears of Steel © Blender Foundation, CC BY 3.0

脚本按视频的尺寸设置,PlayResX 和 PlayResY 分别为视频的宽和高,唯一的样式 Default 按高度缩放:1080 高的视频为 60 像素。把文件命名为 .ssa,则会写成 SubStation Alpha v4,位置使用 SSA 的数字。

趣闻

1996

SubStation Alpha 是由 Kotus 编写的一款编辑器。它的脚本格式沿用了这个程序的名字,并且比程序本身活得更久。

v4.00+

高级 SubStation Alpha 用原版的版本号加一个加号来标识自己:章节相同,但代码更多。

BGR

颜色按蓝、绿、红的顺序写入,alpha 则倒数:00 为完全不透明,FF 为完全透明。

相关格式

有 .ass 需要修正吗?

在 Subtitld 中打开它,连同视频一起,在波形上重新打轴。

下载 Subtitld