什么是 TTML2?
Timed Text Markup Language 2 (TTML2) 是一种基于 XML 的语言,旨在表示定时文本媒体,例如字幕和标题。它作为标准化格式用于在各种平台和系统之间交换、创作和分发定时文本内容。
TTML2用于:
- 互换:促进不同创作系统之间的定时文本信息交换。
- 转码:将定时文本内容转换为字幕和标题中使用的各种传统分发格式。
- 分发:作为一种分发格式本身,例如通过在 HTML5 文档的
<track>元素或 SMIL 3.0 文档的<text>或<textstream>媒体元素中引用 TTML 内容。
系统模型
TTML2在系统模型中运行,该模型包括创作、转码、分发和呈现过程。它定义了两类处理器:
- 转换处理器:用于创作系统和验证处理器。
- 呈现处理器:用于转码系统和渲染处理器。
这些处理器可以实现到 TTML 中间文档的映射,从而实现与各种媒体格式和技术的集成。
文档结构
典型的 TTML2 文档包括:
<tt>:根元素。<head>:包含元数据、样式和布局信息。<metadata>:包括文档级元数据,如标题和版权。<styling>:定义样式规范。<layout>:指定布局区域。
<body>:包含定时文本内容,引用样式和布局。
例如:
<tt xml:lang="" xmlns="http://www.w3.org/ns/ttml">
<head>
<metadata/>
<styling/>
<layout/>
</head>
<body/>
</tt>
示例:
以下是一个简单的 TTML2 文件示例:
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml"
xmlns:tts="http://www.w3.org/ns/ttml#styling"
xml:lang="en">
<head>
<styling>
<style xml:id="s1" tts:fontSize="16px" tts:color="white" tts:backgroundColor="black"/>
</styling>
<layout>
<region xml:id="bottom" tts:origin="10% 80%" tts:extent="80% 10%"/>
</layout>
</head>
<body region="bottom">
<div>
<p begin="00:00:01.000" end="00:00:04.000" style="s1">
Hello, this is an example of TTML2 subtitles.
</p>
<p begin="00:00:05.000" end="00:00:08.000" style="s1">
These captions are timed and styled.
</p>
</div>
</body>
</tt>
<p begin="..." end="...">:显示带有时间的字幕文本。<style>和<region>:定义文本出现的方式和位置。<tt>:TTML2 文档的根元素。
与 TTML1 的区别
TTML2若干增强了 TTML1,包括:
- 扩展功能:支持东亚语言、立体 3D,以及详细映射到 HTML 和 CSS。
- 改进的模块化:在规范中更好的组织和关注点分离。
- 更新的语法:对语言语法进行细化,以提高清晰度和一致性。
TTML1 到 TTML2 的更改详细摘要可在 TTML2 更改摘要中查看。
采纳与行业支持
TTML2 已被多个组织和标准机构采纳和支持,包括:
- Netflix
- Microsoft
- BBC
- Apple
- MovieLabs
- European Broadcasting Union (EBU)
这些贡献者在 TTML2 的开发和实现中发挥了重要作用。
TTML2 文件的关键特性
| 特性 | 描述 |
|---|---|
| 文件扩展名 | .ttml, .dfxp, .xml |
| 完整名称 | 定时文本标记语言 第2版 |
| MIME 类型 | application/ttml+xml |
| 格式类型 | 基于 XML 的结构化文本格式 |
| 开发者 | 万维网联盟(W3C)定时文本工作组 |
| 主要优势 | 对全球文字、动画、嵌入资源以及专业广播需求的全面支持 |
| 最新规范 | TTML2 第二版 W3C 推荐快照(2021年3月) |
| 宏支持 | 否(纯 XML 标记,无可执行代码) |
| 开放标准 | 是(W3C 推荐,完整文档的开放标准) |
如何打开 TTML2 文件?
您可以使用不同的工具打开和查看 TTML2 文件,具体取决于您是想读取文本、编辑内容还是将其显示为字幕。TTML2 文件是 基于 XML 的,因此可以在任何文本或 XML 编辑器中打开,但要 播放或测试 这些字幕,需要兼容的工具。
查看或编辑
使用任意 文本编辑器:
- Windows:记事本或 Notepad++
- Mac/Linux:TextEdit 或 VS Code
只需 右键单击文件 → 打开方式 → 选择您的编辑器。
作为字幕播放(配合视频)
大多数媒体播放器并不直接支持 TTML2。您需要使用以下工具将其 转换为 SRT 或 WebVTT:
- Subtitle Edit(Windows 免费应用)
在网站上使用
在 <video> 标签中这样使用:
<track src="captions.ttml" kind="subtitles" label="English" srclang="en">
注意:大多数浏览器不直接支持 TTML。请转换为 WebVTT 以获得更好的兼容性。
常见问题
Q1:TTML1 与 TTML2 有何区别?
A:TTML2 添加了 TTML1 缺失的主要功能,包括对东亚语言的支持(ruby、竖排文字、强调),连续动画,嵌入资源(图像、字体、音频),以及立体 3D 支持。
Q2:我可以在网页浏览器中打开 TTML2 文件吗?
A:大多数浏览器无法原生渲染 TTML2 字幕。对于网页交付,请将 TTML2 转换为 WebVTT 格式,它对 HTML5 元素的支持更好。
Q3:哪些软件可以创建 TTML2 文件?
A:专业字幕工具如 EZTitles 提供 TTML2 导出,而任何文本编辑器都可以创建基本的 TTML2 文件,因为它们基于 XML。转换时,Subtitle Edit 和 FFmpeg 是常用选项。
Q4:流媒体服务如 Netflix 是否使用 TTML2?
A:是的,Netflix 是 TTML 开发的关键贡献者,并在字幕交付中使用基于 TTML 的配置(尤其是 IMSC)。该格式已在流媒体行业广泛采用。
Q5:TTML2 文件是否同时支持图像和文本?
A:是的,TTML2 同时支持光栅图像(作为前景或背景)和文本。IMSC 图像配置提供了一种使用 PNG 图形交付基于图像的字幕的标准化方式。
参考
要深入了解和获取技术细节,您可以参考完整的 TTML2 规范: