跳到主要内容
SubtitleMatrix

SRT 转 VTT

格式转换SubRip(SRT)
或者粘贴字幕文本

这次转换会改变什么

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

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

SRT 与 WebVTT 装的是同一份字幕,只是外壳不同。这一页把时间轴、正文、换行与行内格式原样搬过去,改的是周围的语法。

每个 00:00:01,000 形式的时间码变成 00:00:01.000:WebVTT 在秒与毫秒之间用点,SRT 用逗号,时间点本身完全一致。文件开头会补上播放器要求的 WEBVTT 这一行——手工编辑过的 .vtt 打不开,最常见的原因就是漏了它。

SRT 的编号会被保留,WebVTT 把它当作 cue 的可选标识符;虽然没有播放器依赖它,但两份文件对照时能一眼找到同一条字幕。斜体、粗体等尖括号标签也原样带过去,这个方向不丢东西。

BOM、Windows 换行、只有一位的小时字段、正文为空的 cue 都能正常读取,输出每次都保持同样的整齐结构。整季文件可以一次拖入,串行处理、可取消,结果打包成 ZIP;全程在浏览器里,文件不上传。

示例

一份典型的 SRT 文件转成 VTT

输入

1
00:00:01,000 --> 00:00:03,500
Hello there.

2
00:00:03,500 --> 00:00:06,000
<i>Whispering</i> now.
And a second line.

3
00:00:06,000 --> 00:00:09,250
<b>Bold</b> statement.

输出

WEBVTT

1
00:00:01.000 --> 00:00:03.500
Hello there.

2
00:00:03.500 --> 00:00:06.000
<i>Whispering</i> now.
And a second line.

3
00:00:06.000 --> 00:00:09.250
<b>Bold</b> statement.

这个方向没有丢东西:时间、编号、标签与换行都保留,只是外壳换成了 WebVTT。

同一转换遇到一份脏文件

输入

1
0:00:01,00 --> 0:00:03,500
<B>Bold</B> and <I>italic</I>.


2
00:00:03,500 --> 00:00:06,000


3
00:00:08,000 --> 00:00:09,000
Last one.

输出

WEBVTT

1
00:00:01.000 --> 00:00:03.500
<b>Bold</b> and <i>italic</i>.

2
00:00:03.500 --> 00:00:06.000

3
00:00:08.000 --> 00:00:09.000
Last one.

BOM、CRLF、空正文 cue 都在这个样例里;解析器全部容忍,输出仍是结构整齐的 VTT。

常见问题

SRT 转 VTT 后时间码有什么变化?

00:00:01,000 变成 00:00:01.000:只把秒与毫秒之间的逗号换成点,时刻本身完全不变。

SRT 转 VTT 后字幕编号还在吗?

在。WebVTT 把编号当作 cue 标识符,1、2、3 会原样保留;播放器不依赖它,但两份文件对照时好用。

SRT 转 VTT 后文件为什么以 WEBVTT 开头?

那是 WebVTT 的第一行,缺了它播放器会拒绝加载,这是手工编辑的 .vtt 打不开最常见的原因。转换器会自动补上。

SRT 转 VTT 会丢斜体标签吗?

不会。两种格式都用尖括号标签,斜体、粗体等行内标记原样带过去,不改写也不翻译。

SRT 转 VTT 时 BOM 或 CRLF 会有问题吗?

不会。BOM、Windows 换行、只有一位的小时字段、正文为空的 cue 都能读,输出保持整齐结构。

SRT 转 VTT 是无损的吗?

是。时间轴、文字、换行与行内格式都保留;变化的只是外壳语法与那行 WEBVTT 头。

相关工具