跳到主要内容
SubtitleMatrix

TXT 转 VTT

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

选项

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

这次转换会改变什么

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

  • 时间

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

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

TXT 转 VTT 写出以 `WEBVTT` 开头的文件:每条非空行得到一个时间槽和一段正文。时间槽是生成的——第一行从 0 开始,之后每行接着上一行的结束,长度由“时长”参数决定,默认 2 秒;VTT 写到毫秒,生成值不再舍入;这种写法与 SRT 很像,但文件头必须是 `WEBVTT`,时间码的起止两端用 `-->` 连接,两侧各留一个空格。

产物没有 cue 编号,块与块之间用空行分隔;TXT 的空白行只是段落标记,不会变成空字幕。生成的起点等间距,顺序与原文一致。

有损说明只列一项:时间轴不是从文件读出来的。TXT 本来没有样式、定位和卡拉OK,所以 VTT 里也没有可继承的样式或位置设置。

整季的文件可以一次拖入,串行处理并打成一个 ZIP;解析和写出都在浏览器内,文件不上传,每个源文件各自成一份 VTT,不会混在同一个文件里。

示例

一份典型的 TXT 文件转成 VTT

输入

The quick brown fox jumps over the lazy dog.

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

输出

WEBVTT

00:00:00.000 --> 00:00:02.000
The quick brown fox jumps over the lazy dog.

00:00:02.000 --> 00:00:04.000
Second paragraph, first line.

00:00:04.000 --> 00:00:06.000
Second paragraph, second line.

这份产物丢掉了时间轴(它由本站排定);每行文字变成一条 WEBVTT cue,行序不变。

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

输入


Hello world.

Second block.

输出

WEBVTT

00:00:00.000 --> 00:00:02.000
Hello world.

00:00:02.000 --> 00:00:04.000
Second block.

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

常见问题

TXT 转 VTT 的时间码是怎么排出来的?

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

TXT 转 VTT 的产物以什么开头?

以 `WEBVTT` 这一行开头,后面是空行,再往后才是 cue。这个标记是 VTT 的文件头,播放器靠它识别格式。

TXT 转 VTT 时空白行会生成空字幕吗?

不会。空白行只作段落分隔,不生成 cue;只有含文字的行才占一个时间槽,所以产物里没有正文为空的块。

TXT 转 VTT 每行默认多长?

默认 2000 毫秒,也就是 2 秒。改“时长”参数会让所有 cue 一起变长或变短,最后一条的结束时间等于行数乘以这个值。

TXT 转 VTT 会带样式或位置设置吗?

不会。TXT 没有样式和坐标可继承,产物只写时间码与正文;cue 后面不会出现 `position` 或 `align` 之类的设置。

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

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

相关工具