跳到主要内容
SubtitleMatrix

TXT 转 SSA

格式转换纯文本稿
或者粘贴字幕文本

选项

当源文件没有结束时间时使用(纯文本、LRC)。输出里的时间轴是在这里生成的,不是转换来的,所以填多少就是多少。

这次转换会改变什么

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

  • 时间

    时间轴本身——源文件不记录任何时间,因此输出的时间轴是生成的,而不是转换来的

  • 精度

    时间精度——输出的时间刻度更粗,因此每个时间戳都会四舍五入到最接近的 10 毫秒

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

TXT 转 SSA 先给每行文字排时间槽,再写成 SubStation Alpha 脚本:每条字幕是一条 `Dialogue:` 行,若一条 cue 有多行正文就用 `\N` 连接,样式表用默认值。时间槽的规则是——第一行从 0 开始,之后每行接着上一行的结束,长度由“时长”参数决定。Dialogue 的时间写成 `0:00:02.00` 这样的百分秒形式。

SSA 的时间只到百分秒,所以生成的时间会舍入到最近的 10 毫秒,单条最多移动 5 毫秒。这是这一页的第二项损失;第一项是时间轴本身为生成而非读入。

TXT 里没有样式、定位和卡拉OK可继承,因此 SSA 的 `[V4 Styles]` 只保留转换器给出的默认样式,没有从源文件带过去的字段。

整季文件可以一次拖入、串行转换并打包成 ZIP;全部在浏览器内完成,文件不上传。

示例

一份典型的 TXT 文件转成 SSA

输入

The quick brown fox jumps over the lazy dog.

Second paragraph, first line.
Second paragraph, second line.

输出

[Script Info]
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
Dialogue: 0,0:00:00.00,0:00:02.00,Default,,0,0,0,,The quick brown fox jumps over the lazy dog.
Dialogue: 0,0:00:02.00,0:00:04.00,Default,,0,0,0,,Second paragraph, first line.
Dialogue: 0,0:00:04.00,0:00:06.00,Default,,0,0,0,,Second paragraph, second line.

这份产物丢掉了时间轴(它由本站排定)与毫秒精度;每行文字变成一条 Dialogue。

同一转换遇到带 BOM 与空行的 TXT

输入


Hello world.

Second block.

输出

[Script Info]
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
Dialogue: 0,0:00:00.00,0:00:02.00,Default,,0,0,0,,Hello world.
Dialogue: 0,0:00:02.00,0:00:04.00,Default,,0,0,0,,Second block.

真实文件常带 BOM、Windows 换行、前后空白和多层空行。可以对照上面那份干净样例,看看解析器能容忍到什么程度。

常见问题

TXT 转 SSA 的时间轴是怎么来的?

由这一页生成:第一行从 0 开始,之后每行接着上一行的结束,单行长度取“时长”参数(默认 2000 毫秒)。TXT 里没有任何时间码可以转换。

TXT 转 SSA 的时间会被舍入吗?

会。SSA 只到百分秒,生成的时间槽写到最近的 10 毫秒,单条最多偏 5 毫秒;行序与间距关系不会被重排。

TXT 转 SSA 的样式表里有 TXT 的样式吗?

没有。TXT 不存样式,产物里的 `[V4 Styles]` 只有转换器给的默认样式;字体、颜色等字段不是从源文件继承的。

TXT 转 SSA 时多行段落怎么表示?

用 `\N` 把行连成一条 Dialogue。TXT 的解析模型是一行一条 cue,空行只作段落分隔,所以默认产物每条字幕只有一行。

TXT 转 SSA 每行默认多长?

默认 2000 毫秒。所有行共用这个值,最后一条的结束时间等于行数乘以它;改参数会让整条时间轴一起变长或变短。

TXT 转 SSA 的输出用什么编码?

输出固定是 UTF-8、Unix 换行符、不带 BOM。输入 TXT 若是别的编码,会先解码并在结果面板里说明。

相关工具