Skip to content

VTT 转 TTML 字幕转换器

把带时间戳的 WebVTT 字幕转换为基础 TTML XML 文档。

拖放您的 VTT 文件到这里

或点击浏览

支持最大 50 MB 的 .vtt 文件

转换引擎架构

关于 VTT 转 TTML

本浏览器端转换器读取带时间戳的 WebVTT 字幕条目,并生成基础 UTF-8 TTML 文档。字幕开始和结束时间会变成以秒为单位的 begin/end 属性,物理换行变成 <br/> 元素,XML 特殊字符会被转义。VTT 字幕标识符、设置、区域、注释和样式不会映射为 TTML 呈现元数据。

代码级语法透视

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

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

毫秒级同步
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.ttml
TTML 转换结果
<?xml version="1.0" encoding="UTF-8"?>
<tt xml:lang="en" xmlns="http://www.w3.org/ns/ttml">
<body>
<div>
<p begin="1.000s" end="4.000s">Hello, world!</p>
<p begin="4.500s" end="8.000s">This is a subtitle file.</p>
<p begin="8.500s" end="12.000s">Converted locally!</p>
</div>
</body>
</tt>
规范手册

VTT 与 TTML 格式规范深度解析

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

VTT

VTT

VTT(WebVTT)是用于网页视频的文本字幕格式。VTT 文件以 WEBVTT 头部开始,使用 HH:MM:SS.mmm --> HH:MM:SS.mmm 字幕时间轴,也可能包含字幕标识符、条目设置、内联标签、NOTE 块、区域和样式元数据。

输出格式

TTML

TTML

TTML(Timed Text Markup Language)是 W3C XML 字幕格式。本转换器生成基础 UTF-8 文档,包含默认 TTML 命名空间、xml:lang="en"、body 和 div 元素,以及每条字幕一个带秒级 begin/end 属性的 <p> 元素。

格式差异

VTT 以 WEBVTT 头部开始;此 TTML 输出以 XML 声明和 <tt> 根元素开始。
VTT 使用 HH:MM:SS.mmm 字幕时间轴;此输出使用秒级 begin/end 属性。
VTT 行内排版与区域属性自动忽略,不强行映射为复杂的 TTML 布局元数据。
VTT 内联标签会被转义为字面文本,不会变成 TTML span。
VTT 注释和标识符不会被继承。
输出包含基础 TTML body,没有样式或配置元数据。

常见疑难与故障排查

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

4 个常见问题
GOTCHA #1

转换后的字幕在电视或播放器上出现时间漂移或音画不同步?

不同视频流媒体可能采用不同帧率(如 23.976 fps 与 25 fps 差异)。如果时间轴整体偏移,可在本站使用「字幕时间轴同步」工具快速进行全局微调。

GOTCHA #2

字幕在播放器中显示为乱码(Mojibake)或问号?

老旧文件可能采用 GBK、ANSI 或 Shift-JIS 编码。本站输出文件统一标准化为 UTF-8 编码。若原文件损坏,请先使用本站「字符编码转换器」修复。

GOTCHA #3

多角色同时说话时字幕层叠或遮挡画面?

不同格式对多行或重叠台词的处理机制不同。您可以在本站在线工作台中微调特定字幕行的时间轴,避免文字垂直堆叠遮挡画面。

GOTCHA #4

文件在剪辑软件(如 Premiere Pro、Final Cut)中导入报错?

专业剪辑软件对时间戳格式及换行符敏感。本工具输出的文件严格遵循行业规范,以支持主流剪辑工作流。

功能特性

直接在浏览器中读取带时间戳的 WebVTT 字幕条目
写入基础 UTF-8 TTML XML 文档
把时间轴转换为秒级 begin/end 属性
把字幕换行转换为 <br/> 元素
转义文本节点中的 & 符号和尖括号
处理最大 50 MB 的文件且不上传

为什么需要转换?

TTML 用结构化 XML 存储字幕,而不是 WebVTT 文本块。
一些流媒体、广播和本地化工具接受 TTML 输入。
基础 TTML 草稿可在 XML 编辑器中继续补充配置元数据。
XML 工具可验证和转换时间文本。
本地转换可避免上传节目素材或字幕文本。
保留 VTT 和 TTML 副本可服务不同交付环境。
Scenarios

常见用途

基础 TTML 草稿

先从网页字幕生成基础 TTML 文档,再对照目标配置或工作流检查。

XML 交换

把带时间戳的 VTT 字幕移入接受 TTML XML 输入的工具。

文本编辑

使用支持 XML 语法的工具检查或编辑字幕时间轴和文本。

本地转换

不上传到另一个转换服务即可完成字幕转换。

网页与 TTML 副本

保留用于网页播放的 VTT 版本,同时为另一工作流生成基础 TTML 副本。

Format Ecosystem

相关格式

工作原理

  1. 1

    选择或拖入 .vtt 文件;内容保留在你的设备上。

  2. 2

    解析器找到带时间戳的字幕条目并读取文本。

  3. 3

    自动过滤字幕标识符、排版设置、区域定义、注释以及 CSS 样式块。

  4. 4

    开始和结束毫秒变成 begin="1.500s" 这样的值。

  5. 5

    换行变成 <br/> 元素,XML 特殊字符会被转义。

  6. 6

    每条字幕写入 TTML body 内的一个 <p> 元素。

常见问题

不会。VTT 条目设置、区域、CSS 和内联样式标签不会映射为 TTML 样式或布局属性。字幕文本中的标签会被转义并保留为字面文本。

voice 标签不会转换为 TTML span。尖括号会被转义,因此源标记会以字面文本出现在生成的 <p> 元素中。

不包含。生成的 TTML 包含 XML 声明、默认命名空间、xml:lang="en"、body、div 和带时间轴的 <p> 元素,不包含 head、样式、区域、IMSC、ITV 或 EBU-TT-D 元数据。

每条字幕的开始和结束时间写入三位小数的秒值,例如 begin="1.500s" 和 end="4.000s"。

不会。NOTE 块不包含本转换器需要的可显示字幕文本,会被忽略。

仅靠本工具不会。平台配置通常需要额外命名空间、元数据、样式约束和验证。请只把此基础 TTML 作为起点,并检查接收方规范。

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

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