跳到主要内容
SubtitleMatrix

SSA 字幕格式

格式转换SubStation Alpha(SSA)

这种格式能表达什么

文本样式
字体、颜色、描边、阴影
屏幕定位
是
卡拉 OK 计时
是
字幕条内换行
是
时间轴
每条字幕都有开始与结束时间
时间精度
10 毫秒
时间以帧号存储
否
从右到左的文字
是

示例

一份典型的 SSA 文件,以及从里面读出了什么

文件

[Script Info]
Title: Example SSA
ScriptType: v4.00
Collisions: Normal

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,Hello there.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,{\i1}Italic{\i0} line.
Dialogue: Marked=0,0:00:09.00,0:00:12.00,Default,,0,0,0,,Two\Nlines

从中读出了什么

3 cues, 4 lines of text

  0:00:01.00 → 0:00:04.00
    Hello there.
    [Default]
  0:00:05.00 → 0:00:08.00
    Italic line.   [italic ×1]
    [Default]
  0:00:09.00 → 0:00:12.00
    Two
    lines
    [Default]

Outside the cues:
  sections   [Script Info], [V4 Styles], [Events]
  style table  1 — Default (Arial 20)

右栏不是转换后的文件,而是本站从左栏读出来的内容,也是这份文件进行任何转换时的起点。

一份别扭的 SSA 文件,仍然读出了什么

文件

[Script Info]
Title: Dirty SSA
ScriptType: v4.00

[V4 Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, TertiaryColour, BackColour, Bold, Italic, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,20,&H00FFFFFF,&H000000FF,&H00000000,&H00000000,0,0,1,2,2,2,10,10,10,0,1

[Events]
Format: Marked, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Comment: Marked=0,0:00:00.00,0:00:01.00,Default,,0,0,0,,not a subtitle
Dialogue: Marked=0,0:00:01.00,0:00:04.00,Default,,0,0,0,,{\b1}Bold{\b0} and {\u1}underlined{\u0}.
Dialogue: Marked=0,0:00:05.00,0:00:08.00,Default,,0,0,0,,A soft\nbreak and a {\p1}mystery{\p0} code.

从中读出了什么

2 cues, 3 lines of text

  0:00:01.00 → 0:00:04.00
    Bold and underlined.   [bold ×1, underline ×1]
    [Default]
  0:00:05.00 → 0:00:08.00
    A soft
    break and a {\p1}mystery{\p0} code.
    [Default]

Outside the cues:
  sections   [Script Info], [V4 Styles], [Events]
  style table  1 — Default (Arial 20)
  events     1 Comment: line — stored, never displayed

真实文件里常见 BOM、Windows 换行、时间码前多一行、时间码根本读不出来。这些都不会抛异常:读不懂的部分会被报告,而不是悄悄丢掉。

把 SubStation Alpha (SSA) 转成其他格式

每一个都完全在你的浏览器里运行。标签标明了那个方向要付出什么代价,打开之前就能看到。

SSA 转 ASS:这一方向无损,文字、时间轴与换行原样保留;全程在本机完成,不上传,也能批量处理。

这个方向不会丢失内容 —— 源格式的每一项特性在目标格式里都有地方可去。

转换为此格式

这一页是 SSA(SubStation Alpha,v4.00)格式的说明页:它能存什么、不能存什么,以及本站能从它转出的 11 种格式。上方的能力表就是全部清单,没有藏着没写的特性。

SSA 是一份脚本,不是一个 cue 列表。它由三段组成:[Script Info] 放全局设置,[V4 Styles] 放样式表(字体、字号、颜色、描边、边距),[Events] 放每一条字幕。每条字幕是 Dialogue 行,行首字段写 Marked=0 这一对键值,时间形如 0:00:04.13,只到百分秒。正文里的覆写标记写成 {\i1} 这种形状,逐字卡拉OK 计时也写在这里。

它比大多数格式装得多:样式可以按名字引用,也可以在正文里单独覆写,一条字幕能同时是斜体、上色并且指定位置。但脚本里对渲染器的指令,目标格式没有渲染器时就只能丢掉——这正是每个转换页在打开文件之前就先列出有损清单的原因。

它与 ASS 的关系是同一族的两代写法:SSA 的事件首字段是 Marked,ASS 换成 Layer;SSA 的样式段叫 [V4 Styles],ASS 叫 [V4+ Styles] 并在 [Script Info] 里标 ScriptType: v4.00+;SSA 用 TertiaryColour,ASS 用 OutlineColour。除此之外,两边的 Dialogue 行写法相同,所以 SSA 转 ASS 是这一族里唯一无损的方向。

所有转换都在浏览器里完成,文件不上传、不注册,保密协议下的素材、病历或未播出的节目带也一样。可以一次拖入整季,串行处理,最后打包成一个 ZIP。

常见问题

SSA 字幕格式的 [V4 Styles] 段写的是什么?

写样式表:每一行是一个具名样式,字段有字体、字号、主色、次色、三级色(TertiaryColour)、背景色、粗体、斜体、描边、阴影、对齐方式、左右与垂直边距、AlphaLevel 和编码。Dialogue 行按样式名引用它。

SSA 字幕格式里 Marked=0 这个字段是做什么的?

它是 [Events] 段的首字段,SSA v4 用它标记事件。这里一条普通字幕就是 Marked=0;同一位置在 ASS 里换成了 Layer 列,数字表示叠放层级。

SSA 字幕格式与 ASS 差在哪三处?

事件首字段(Marked 对 Layer)、样式段名与脚本头([V4 Styles] 对 [V4+ Styles] 加 ScriptType: v4.00+)、颜色列名(TertiaryColour 对 OutlineColour,另加 ASS 的 AlphaLevel)。只是骨架不同,Dialogue 的写法与时间轴相同。

SSA 字幕格式能存哪些样式字段?

字体、字号、四组颜色、粗体、斜体、描边样式与宽度、阴影、对齐、三条边距和 AlphaLevel 都在样式表里;粗体、斜体、下划线、颜色与位置还能在正文里用覆写标记逐条指定。

SSA 字幕格式的 Comment: 行会显示出来吗?

不会。Comment: 是存下来但不显示的事件,读文件时会保留在事件表里并计入“cue 模型之外的构造”,转换到 SRT 这类格式时会被丢掉并计入有损清单。

SSA 字幕格式转成哪种格式不丢东西?

只有 ASS。两边 Dialogue 行写法相同,转换只重写脚本头、样式段名与样式列;其余 10 个方向都会丢东西,每一页各自列出清单。