SRT vs VTT:字幕格式对比指南
SRT 与 VTT 字幕格式全面对比:了解 SubRip 和 WebVTT 的区别、各平台支持情况,以及何时该用哪种格式。
SRT(SubRip Text)和 VTT(WebVTT)是使用最广泛的两种字幕文件格式:SRT 是兼容性近乎通用的传统标准,而 VTT 是专为 HTML5 视频设计的现代网页原生格式,内置样式和定位功能。
选择正确的字幕格式会影响兼容性、样式选项以及字幕在各平台上的呈现效果。本指南详细解析 SRT 和 VTT 的区别、各平台的支持情况,以及何时该选择哪种格式。
什么是 SRT?
SRT 全称 SubRip Text,是一种字幕格式,起源于 1990 年代末的 SubRip 软件——一款用于从 DVD 中提取("rip")字幕的工具。尽管年代久远,SRT 仍然是业界兼容性最广的字幕格式。
SRT 文件是一个扩展名为 .srt 的纯文本文件。每条字幕条目由三部分组成:一个顺序数字索引、一行显示开始和结束时间的时间码,以及一行或多行字幕文本。条目之间用空行分隔。
以下是 SRT 文件的结构:
1
00:00:01,000 --> 00:00:04,000
This is the first subtitle line.
2
00:00:05,500 --> 00:00:08,200
This is the second subtitle.
It can span multiple lines.
3
00:00:10,000 --> 00:00:13,750
Speaker identification is done
manually in the text itself.
SRT 格式的主要特征:
- 时间码格式:
HH:MM:SS,mmm(时、分、秒、毫秒,用逗号分隔) - 顺序编号:每条提示从 1 开始编号
- 纯文本:不原生支持样式、颜色或定位
- 编码:通常为 UTF-8,较旧的文件可能使用其他编码
- 箭头分隔符:开始和结束时间用
-->分隔
SRT 的简洁性既是其最大的优势也是主要的局限性。任何文本编辑器都可以创建和修改 SRT 文件,几乎所有视频播放器和编辑应用都可以读取。但你无法在格式规范本身中控制字体大小、颜色、位置或任何其他视觉属性。
什么是 VTT?
VTT 全称 WebVTT(Web Video Text Tracks),是 W3C(万维网联盟)专门为配合 HTML5 的 <video> 和 <track> 元素而开发的字幕格式。该规范首次发布于 2010 年,已成为 W3C 推荐标准,是网页视频字幕的官方标准。
VTT 文件是一个扩展名为 .vtt 的纯文本文件。它必须以 WEBVTT 头部开始,后面可选择性地跟随元数据。每条提示可以包含一个可选的标识符、一行时间码和字幕文本。
以下是 VTT 文件的结构:
WEBVTT
Kind: captions
Language: en
intro
00:00:01.000 --> 00:00:04.000
This is the first subtitle line.
00:00:05.500 --> 00:00:08.200
This is the second subtitle.
It can span multiple lines.
styled-cue
00:00:10.000 --> 00:00:13.750 position:10% align:start
<v Speaker 1>This cue has positioning
and a voice tag for speaker ID.</v>
VTT 格式的主要特征:
- 强制头部:每个文件必须以
WEBVTT开头 - 时间码格式:
HH:MM:SS.mmm(毫秒使用句点而非逗号) - 可选提示标识符:提示可以使用命名 ID 而非顺序编号
- CSS 样式支持:支持通过 CSS 的
::cue伪元素进行样式设置 - 定位功能:提示设置允许垂直、行、位置、大小和对齐控制
- 语音标签:
<v Speaker Name>标签支持在格式内进行说话人识别 - 元数据头:
WEBVTT头部后的键值对用于提供额外上下文 - 注释:支持
NOTE块用于文件级注释
VTT 的设计目的是解决旧字幕格式的局限性,同时与网页技术原生集成。其对 CSS 样式、说话人语音标签和提示定位的支持使其在网页视频播放器中的表现力远超 SRT。
SRT vs VTT:关键差异
虽然 SRT 和 VTT 乍看相似,但它们在文件扩展名之外存在多个重要差异。
| 特性 | SRT | VTT |
|---|---|---|
| 文件扩展名 | .srt |
.vtt |
| 文件头 | 不需要 | 必须有 WEBVTT |
| 时间码分隔符 | 逗号(,) |
句点(.) |
| 提示编号 | 必须有顺序编号 | 可选的命名标识符 |
| 文本样式 | 不支持 | CSS ::cue 样式、粗体、斜体、下划线 |
| 定位 | 不支持 | 行、位置、大小、对齐设置 |
| 说话人识别 | 手动(基于文本) | 原生语音标签(<v>) |
| 注释 | 不支持 | 支持 NOTE 块 |
| 元数据 | 不支持 | 头部元数据键值对 |
| HTML 标签 | 有限(部分播放器支持 <b>、<i>) |
完整支持(<b>、<i>、<u>、<c>、<v>、<lang>) |
| 字符编码 | 不定(推荐 UTF-8) | 要求 UTF-8 |
| 网页标准 | 否 | W3C 推荐标准 |
对大多数用户来说最实际的区别是兼容性与功能性之间的权衡。SRT 在任何地方都能使用,但除了显示定时文本外什么都做不了。VTT 在网页上原生运行,具有丰富的格式选项,但在桌面视频编辑器和传统媒体播放器中的支持较窄。
平台兼容性
了解哪些平台接受哪种格式可以节省时间并避免转换麻烦。以下是主要平台和工具的支持情况。
| 平台/工具 | SRT | VTT | 备注 |
|---|---|---|---|
| YouTube | 支持 | 支持 | 两者都接受手动上传;自动生成 SRT |
| Vimeo | 支持 | 支持 | 两者都接受;推荐 VTT 用于样式 |
HTML5 <video> |
不支持 | 支持 | VTT 是唯一原生支持的格式 |
| VLC Media Player | 支持 | 支持 | 两种格式完全支持 |
| Adobe Premiere Pro | 支持 | 不支持 | SRT 导入/导出;不原生支持 VTT |
| DaVinci Resolve | 支持 | 不支持 | 导入首选 SRT |
| Final Cut Pro | 支持 | 不支持 | 支持 SRT 和 iTT |
| Facebook / Instagram | 支持 | 支持 | 上传首选 SRT |
| TikTok | 支持 | 不支持 | SRT 用于字幕上传 |
| Netflix | 两者(经 TTML) | 两者(经 TTML) | 交付首选 TTML/DFXP |
| Zoom | 支持 | 支持 | 云端录音使用 VTT |
| Microsoft Teams | 支持 | 支持 | 会议转录生成 VTT |
| WordPress | 不支持 | 支持 | HTML5 视频原生使用 VTT |
| Wistia | 支持 | 支持 | 两者都接受字幕上传 |
总体规律:网页平台和现代工具支持 VTT,而视频编辑软件和传统播放器偏好 SRT。如果你为网页播放制作内容,VTT 是自然的选择。如果你要交付文件给编辑或上传到社交媒体,SRT 是更安全的选择。
何时使用 SRT
当广泛的兼容性比格式控制更重要时,选择 SRT。
视频编辑工作流程。 大多数专业编辑软件——Premiere Pro、DaVinci Resolve、Final Cut Pro、Avid Media Composer——都原生处理 SRT。如果你的字幕文件需要在不同编辑器之间传递,SRT 可以避免转换问题。
社交媒体上传。 TikTok 和 Instagram 等平台接受 SRT 用于烧录或隐藏字幕。在社交平台上传字幕时,SRT 通常是唯一接受的格式。
传统系统支持。 较旧的媒体播放器、机顶盒和 DVD/蓝光制作工具都是围绕 SRT 构建的。如果你的观众使用较旧的播放硬件或软件,SRT 保证兼容性。
简洁性和便携性。 SRT 文件创建、编辑和调试都非常简单。不需要记住头部信息,没有特殊语法,格式即使对第一次看到的人来说也是不言自明的。
自由职业和客户交付。 向客户或合作者交付字幕文件时,SRT 是最安全的默认选择,因为它不需要解释,且可用于接收者使用的任何工具。
何时使用 VTT
当你需要网页原生功能、样式或无障碍合规时,选择 VTT。
HTML5 网页视频。 如果你使用 <video> 元素在网站上嵌入视频,VTT 是 <track> 标签唯一支持的字幕格式。无需转换层或 JavaScript 库。
带样式的字幕。 VTT 允许你通过 ::cue 伪元素对字幕应用 CSS 样式。你可以通过标准 CSS 控制字体、颜色、背景、透明度和文字阴影。
video::cue {
background-color: rgba(0, 0, 0, 0.7);
color: #ffffff;
font-size: 1.2em;
}
字幕定位。 VTT 支持提示设置以精确放置。这对于避免遮挡屏幕上的图形、说话人名称或下方三分之一覆层很有用。
00:00:10.000 --> 00:00:14.000 position:10% line:0 align:start
This caption appears at the top-left.
说话人识别。 VTT 的语音标签(<v>)提供了一种结构化的说话人识别方式,这对会议转录、采访和多说话人内容很有用。播放器可以使用这些标签为不同说话人设置不同颜色。
无障碍合规。 对于网页内容的 WCAG 2.1 合规性,VTT 是推荐格式,因为它与 HTML5 无障碍 API 集成,同时支持字幕(为聋人/听力障碍观众)和描述(为盲人/低视力观众)。
如何在 SRT 和 VTT 之间转换
由于两种格式结构相似,SRT 和 VTT 之间的转换相当简单。
SRT 转 VTT
手动将 SRT 文件转换为 VTT:
- 在文件第一行添加
WEBVTT - 在头部后添加一个空行
- 将所有时间码中的逗号替换为句点(
00:00:01,000变为00:00:01.000) - 可选地删除顺序提示编号(VTT 中不需要)
- 以
.vtt扩展名保存文件
转换前(SRT):
1
00:00:01,000 --> 00:00:04,000
Welcome to the presentation.
2
00:00:05,500 --> 00:00:08,200
Today we will cover three topics.
转换后(VTT):
WEBVTT
00:00:01.000 --> 00:00:04.000
Welcome to the presentation.
00:00:05.500 --> 00:00:08.200
Today we will cover three topics.
VTT 转 SRT
将 VTT 文件转换为 SRT:
- 删除
WEBVTT头部和任何元数据行 - 将所有时间码中的句点替换为逗号(
00:00:01.000变为00:00:01,000) - 在每个时间码行前添加顺序提示编号
- 删除任何 VTT 特有的功能(语音标签、定位、CSS 类)
- 以
.srt扩展名保存文件
自动转换
对于批量转换或频繁的格式切换,像 Vocova 这样的工具可以自动处理。当你在 Vocova 中从音频或视频生成字幕时,可以直接导出为 SRT 和 VTT(以及 PDF、DOCX、CSV 和 TXT),无需手动转换。当你需要同一内容的多种格式用于不同平台时,这特别有用。
大多数视频编辑应用和在线字幕编辑器也包含内置的格式转换功能。FFmpeg 可以在命令行中进行格式转换:
ffmpeg -i subtitles.srt subtitles.vtt
其他需要了解的字幕格式
SRT 和 VTT 覆盖了大多数使用场景,但还有一些其他格式用于特殊应用。
ASS / SSA(Advanced SubStation Alpha)
ASS 及其前身 SSA 是在动画字幕社区中流行的字幕格式。它们支持高级样式,包括字体、颜色、动画、卡拉OK效果和精确的屏幕定位。ASS 文件比 SRT 或 VTT 复杂得多,主要用于 VLC 和 MPC-HC 等媒体播放器。大多数网页平台不直接接受 ASS 文件。
TTML(Timed Text Markup Language)
TTML 是由 W3C 维护的基于 XML 的字幕格式。它用于专业广播和流媒体工作流程,特别是被 Netflix、BBC 和其他主要内容分发商使用。TTML 支持丰富的样式、基于区域的定位和单个文件中的多个字幕轨道。其 XML 结构使其冗长但高度结构化。
SCC(Scenarist Closed Captions)
SCC 是用于北美广播电视的传统格式。它编码 CEA-608 隐藏字幕数据,是美国 FCC 合规字幕的必需格式。SCC 文件不是人类可读的,需要专业软件来创建和编辑。如果你为广播电视制作内容,你的字幕供应商可能会交付 SCC 文件。
SBV(SubViewer)
SBV 是 YouTube 历史上用于自动生成字幕的简单字幕格式。它在结构上类似于 SRT,但使用不同的时间码格式。SBV 在 YouTube 上传中已基本被 SRT 和 VTT 取代。
常见问题
我可以将 SRT 文件上传到 YouTube 吗?
可以。YouTube 接受 SRT 和 VTT 文件进行手动字幕上传。你可以通过 YouTube Studio 在任何视频的"字幕"部分上传。YouTube 还会自动生成字幕,可以以 SRT 格式下载。
VTT 支持样式和颜色吗?
支持。VTT 通过 ::cue 伪元素支持 CSS 样式、<b>、<i> 和 <u> 等内联标签,以及使用 <c.classname> 的基于类的样式。你可以控制字体颜色、背景颜色、文字大小和透明度。不过,并非所有视频播放器都会渲染 VTT 样式——支持取决于播放器的实现。
哪种格式更适合无障碍?
VTT 是网页无障碍合规的推荐格式。它与 HTML5 无障碍 API 集成,支持 kind 属性(字幕、描述、章节),并允许通过语音标签进行说话人识别。对于网页视频的 WCAG 2.1 合规性,使用 <track> 元素的 VTT 是标准方式。
SRT 文件可以包含粗体或斜体等格式吗?
SRT 规范不包含格式功能。但是,许多视频播放器会解释 SRT 提示中的基本 HTML 标签(<b>、<i>、<u>)并相应地渲染。这种行为在所有播放器中都不保证,因此依赖它进行关键格式设置是有风险的。
字幕文件的最大文件大小是多少?
SRT 和 VTT 都没有格式级别的文件大小限制。平台特定的限制各不相同:YouTube 允许最大 10 MB 的字幕文件,而大多数平台对于典型视频长度接受远低于 1 MB 的文件。一小时的视频通常生成 50-150 KB 的字幕文件。
如何从音频或视频生成 SRT 或 VTT 文件?
你可以通过使用自动语音识别工具转录音频或视频来生成字幕文件。像 Vocova 这样的服务可以将 100 多种语言的音频转录为带有时间戳和说话人标签的文本,然后直接导出为 SRT、VTT 和其他格式。有关字幕生成工具的对比,请参阅我们的最佳 AI 字幕生成器指南。