Skip to content

VTT 转 SRT 字幕转换器

将网页适用的 WebVTT 字幕转换为广泛支持的 SRT 格式。

拖放您的 VTT 文件到这里

或点击浏览

支持最大 50 MB 的 .vtt 文件

转换引擎架构

从网页标准到通用标准

VTT 为浏览器设计,而许多媒体播放器、剪辑软件和智能电视工作流仍更偏好 SRT。本转换器会移除 WEBVTT 头部,把点分隔时间戳转换为 SRT 逗号格式,添加顺序条目编号,并剥离 VTT 条目设置。结果是可在目标播放器或工作流中测试的纯 SRT 文件。

代码级语法透视

VTT 到 SRT 语法结构与代码转换示例

直观对比转换前后文件头、时间轴标记与对白文本的代码级语法对应关系

毫秒级同步
input.vtt
VTT 源格式
WEBVTT
 
00:00:01.000 --> 00:00:04.000
Hello, world!
 
00:00:04.500 --> 00:00:08.000
This is a subtitle file.
 
00:00:08.500 --> 00:00:12.000
Converted locally!
output.srt
SRT 转换结果
1
00:00:01,000 --> 00:00:04,000
Hello, world!
 
2
00:00:04,500 --> 00:00:08,000
This is a subtitle file.
 
3
00:00:08,500 --> 00:00:12,000
Converted locally!
规范手册

VTT 与 SRT 格式规范深度解析

符合通用标准规范
输入格式

VTT

VTT

VTT(WebVTT)是 HTML5 视频的 W3C 标准字幕格式。文件以 WEBVTT 头部字符串开始。字幕使用点分隔时间戳(00:01:30.500 --> 00:01:35.000),时间轴后可能包含 line、position、align 等定位设置。VTT 文件还可能包含 NOTE 注释块和可选字幕标识符。

输出格式

SRT

SRT

SRT(SubRip)是兼容性最广的字幕格式。每个条目以顺序编号(1、2、3...)开始,随后是逗号分隔毫秒的时间戳行(00:01:30,500 --> 00:01:35,000),然后是字幕文本。SRT 没有头部、元数据节,也不支持样式或定位。

格式差异

VTT 以 WEBVTT 头部开始;SRT 没有头部,直接从第一个条目编号开始。
VTT 时间戳使用点分隔符(00:01:30.500);SRT 时间戳使用逗号分隔符(00:01:30,500)。
VTT 字幕有可选字符串标识符;SRT 条目有必要顺序编号(1、2、3...)。
VTT 支持 line、position、align、size 等条目定位;SRT 没有定位或样式。
VTT 支持 NOTE 注释块;SRT 没有注释或元数据机制。
VTT 是浏览器识别的网页标准;SRT 是浏览器外获广泛支持的纯文本标准。

常见疑难与故障排查

针对播放器兼容性、字符乱码与时间轴同步的实操排查指南

4 个常见问题
GOTCHA #1

转换后的 SRT 在电视或播放器中显示出 `<v 说话人>` 或 `<c.color>` 标签?

WebVTT 规范原生支持声音标签和样式类,但传统 SRT 播放器不认识这些标记,会直接当作对白打印出来。本工具已内置专用正则自动提纯纯对白文字,过滤网页专用属性。

GOTCHA #2

从 YouTube 或 Zoom 会议下载的 VTT 字幕转换后剧烈闪烁或频繁重复?

YouTube 和 Zoom 的自动转录字幕采用滚动刷屏模式(Roll-up Cues),在毫秒级别产生大量重复片段。如果遇到此现象,可使用本站工作台的「字幕去重与合并功能」进行一键段落合并。

GOTCHA #3

剪辑软件(Premiere Pro / 剪映 / 达芬奇)导入 SRT 提示格式错误?

专业剪辑软件对时间戳格式极其严苛。WebVTT 允许小时省略(如 01:25.500),而 SRT 强制要求两位数小时前缀(00:01:25,500)。本工具严格执行两位数补零,生成标准 SubRip 语法。

GOTCHA #4

字幕编码问题导致的文字乱码?

输出文件统一使用标准 UTF-8 编码。如果您需要导入某些只能识别系统 GBK/ANSI 编码的旧款硬件机顶盒,可使用本站的「字幕编码转换器」切换编码。

功能特性

移除 SRT 不使用的 WEBVTT 头部和 NOTE 注释块
把 VTT 点时间戳(00:01:30.500)转换为 SRT 逗号时间戳(00:01:30,500)
自动为字幕生成标准递增的序号索引(1、2、3...)
自动剔除时间轴末尾的 line、position、align、size 等 VTT 专属排版参数
自动过滤 SRT 不支持的 VTT cue 标识符与排版属性
完好保留 <b>、<i>、<u> 等主流格式支持的行内样式标签
输出 UTF-8 编码 SRT,供兼容播放器和工作流使用
处理完全在客户端完成,文件不会上传到任何服务器

为什么需要转换?

许多智能电视工作流在本地媒体播放中更偏好 SRT。
Plex、Jellyfin 和 Emby 媒体服务器通常能索引外挂 SRT 字幕文件。
一些视频剪辑工具导入 SRT 字幕比导入 VTT 更稳定。
HandBrake、FFmpeg 和 MKVToolNix 接受 SRT 嵌入视频容器时比 VTT 更可靠。
iOS 和 Android 移动视频应用常默认使用 SRT 加载外挂字幕。
SRT 文件没有头部、条目设置和元数据块,因此更简单、更小。
一些旧设备和旧播放器支持 SRT 但不支持 VTT。
Scenarios

常见用途

智能电视播放

把 VTT 字幕转换为 SRT,以兼容更偏好本地媒体 SRT 的三星、LG 和索尼智能电视。

媒体服务器资料库

为 Plex、Jellyfin 和 Emby 等媒体服务器准备外挂 SRT 字幕,并在资料库中验证识别效果。

视频剪辑导入

把字幕以这些 NLE 原生接受的 SRT 导入 Adobe Premiere Pro、DaVinci Resolve 或 Final Cut Pro。

移动视频播放

大多数 iOS 和 Android 视频应用默认加载外挂 SRT 字幕。将 VTT 转为 SRT 可提升移动端字幕显示可靠性。

字幕嵌入

使用 FFmpeg、HandBrake 或 MKVToolNix 将字幕嵌入 MKV 或 MP4 容器。SRT 是容器嵌入兼容性最高的格式之一。

Format Ecosystem

相关格式

工作原理

  1. 1

    拖入或浏览上传 .vtt 文件。

  2. 2

    解析器识别 WEBVTT 头部,并跳过 NOTE 块和元数据。

  3. 3

    读取每个 VTT 字幕块:可选标识符、时间戳行和文本。

  4. 4

    时间戳中的点分隔符替换为逗号(00:01:30.500 变为 00:01:30,500)。

  5. 5

    移除时间轴箭头后的条目设置(line、position、align 等)。

  6. 6

    按时间顺序为每个条目分配顺序编号。

  7. 7

    组装 SRT 输出并以 UTF-8 编码供下载。

常见问题

虽然 VTT 是网页标准,但许多智能电视、媒体服务器、剪辑工具和移动播放器对 SRT 的支持更稳定。VTT 转 SRT 是准备纯定时文本版本的简单方法,但仍请在目标播放器或工作流中测试结果。

小数分隔符从点变为逗号。VTT 使用 00:01:30.500,SRT 使用 00:01:30,500。小时、分钟、秒和毫秒数值完全相同。转换器只是把每对时间戳中的点替换为逗号。

会。SRT 要求每个条目以顺序编号开始,而 VTT 使用可选字符串标识符。转换器移除 VTT 标识符,并按时间顺序为每条字幕分配 1、2、3... 编号。

WEBVTT 头部会被移除。SRT 没有头部格式,输出文件直接从第一条字幕的编号 1 开始。这是 SRT 格式的正确行为。

line:50%、position:left、align:center 等 VTT 条目设置出现在时间轴箭头后的同一行。SRT 不支持这些设置。转换器会移除它们,只保留干净的时间戳对。VTT 中的定位信息会丢失。

不会。NOTE 块是元数据或开发者注释,不是可显示字幕内容。转换时会跳过所有 NOTE 块。

准备好转换您的字幕了吗?

将您的 VTT 文件拖放到这里,立即转换为 SRT。