跳到主要内容
SubtitleMatrix

SSA 转 MicroDVD

格式转换SubStation Alpha(SSA)
或者粘贴字幕文本

选项

时间按哪个帧率计算。在格式页面里,这是 MicroDVD 需要的值,因为它把时间存成帧号。在帧率页面里,它是文件当初对应的速率 —— 字幕是按这个版本做的 —— 而页面的第二个框填你要拿它配套的视频速率。常见的有 23.976、24、25、29.97、30、50、59.94 和 60。填错会让整条时间轴偏移;在帧率页面里,偏移是按比例发生的,而不是一个固定的量。

这次转换会改变什么

有 5 项会被丢弃或需要你决定

  • 样式

    全部样式(粗体、斜体、颜色、描边、阴影)

  • 定位

    屏幕定位(每条字幕条都会回到默认位置)

  • 卡拉 OK

    卡拉OK计时(逐音节高亮)

  • 帧率

    该格式以帧号存储时间——时间取决于你提供的帧率

  • 格式专有内容

    源格式保留在字幕条之外的内容(非字幕块、文件头文字、单条字幕的设置、被注释掉的事件)——目标格式没有地方存放它们

这份清单来自这两种格式的能力矩阵,而不是你加载的这份具体文件。如果具体文件用到了格式允许、但矩阵没有建模的特性,可能会丢得更多。

这一页把 SSA 转成 MicroDVD。MicroDVD 记的不是时钟时间,而是帧号:每行以一对花括号里的数字开头,{103}{175} 表示从第 103 帧到第 175 帧;转换在浏览器里完成,不上传。

所以时间轴要换单位。你必须指定这份字幕对应视频的帧率——25 帧每秒时,4 秒处是第 100 帧,产物首行会写一条声明,例如 {1}{1}25。这是这一页唯一需要设置的参数;填错时片头几乎看不出来,越往后偏得越多。

丢的是脚本那一层:样式表、屏幕定位、卡拉OK 计时、[Script Info] 与内嵌资源都没有落点,强调标记也被去掉,正文按纯文本写出。留下的是一条字幕一行、按起始时间升序、行内换行写成竖线 |,两行的字幕仍然是同一条。

产物 UTF-8、Unix 换行、无 BOM。可以一次拖入整季,串行处理,随时取消,最后打包成一个 ZIP。

示例

一份典型的 SSA 文件转成 MicroDVD

输入

[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

输出

{1}{1}25
{25}{100}Hello there.
{125}{200}Italic line.
{225}{300}Two|lines

这份产物把时间轴换成了帧号,帧率取自你设置的 25;样式与定位都丢掉了。

同一转换遇到一份脏文件

输入

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

输出

{1}{1}25
{25}{100}Bold and underlined.
{125}{200}A soft|break and a {\p1}mystery{\p0} code.

真实文件里常见的损坏:混合换行、散落的空白、留空的字段。可以对照上面那份干净样例,看看解析器能容忍到什么程度。

常见问题

SSA 转 MicroDVD 该填多少帧率?

填这份字幕对应视频的帧率。25 帧每秒时,4 秒处是第 100 帧;填错时开头几乎看不出来,影片越长偏得越远,所以要从视频本身取,不要猜一个常用值。

SSA 转 MicroDVD 后,时间轴变成了什么?

变成了帧号。每条字幕的起止时间乘以帧率,写成一对花括号里的整数,例如 {25}{100};产物首行再写一条帧率声明,例如 {1}{1}25。

SSA 转 MicroDVD 后,[V4 Styles] 的样式还在吗?

不在。MicroDVD 不存任何样式,字体、字号、颜色、描边与边距全都没有落点;正文里的 {\i1} 这类覆写标记也被去掉。

SSA 转 MicroDVD 后,一条两行字幕怎么放?

写成一行,两半之间用竖线 | 隔开,这是 MicroDVD 的换行写法。两行仍然属于同一条字幕,播放器会一起显示。

SSA 转 MicroDVD 会保留 Comment: 行吗?

不会。只有 Dialogue: 行变成字幕;Comment: 行、样式表、[Script Info] 与 [Fonts]/[Graphics] 里内嵌的内容全部丢掉。

SSA 转 MicroDVD 之后,再转回 SSA 会丢什么?

会丢帧率。帧号离开帧率就没有意义,回程必须再指定一次,误差也会跟着帧率假设走;那份清单和去程这一份不同。

相关工具