SRT 转 TTML
或者粘贴字幕文本
这次转换会改变什么
这个方向不会丢失内容 —— 源格式的每一项特性在目标格式里都有地方可去。
这份清单来自这两种格式的能力矩阵,而不是你加载的这份具体文件。如果具体文件用到了格式允许、但矩阵没有建模的特性,可能会丢得更多。
这一页把 SRT 转成 TTML。TTML 是 XML 系的字幕格式,广播、流媒体与系统间交换字幕时常用;对 SRT 来说,它是一层新的外壳。
产物是一份 XML:XML 声明加 <tt> 根元素,里面是 <body>、<div>,每条字幕是一个带 begin 与 end 的 <p>。时间写成 00:00:04.126,毫秒原样保留;一条两行字幕在一个 <p> 里用 <br/> 分行。
这个方向不丢东西:时间轴、换行、文字与行内格式都能在 TTML 里表达,产物只是同一份字幕的另一种写法。有损的是反方向——TTML 转 SRT 会丢掉样式、定位与格式私有内容。
多个文件可以一次处理,队列串行执行、随时可取消,结果打包成一个 ZIP;转换在浏览器里完成,字幕不上传。输出是 UTF-8、Unix 换行、无 BOM;源文件若是 UTF-16 或 Windows 单字节编码,读入时会先解码。文件名保留,只改扩展名。
示例
一份典型的 SRT 文件转成 TTML
输入
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.
输出
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:01.000" end="00:00:03.500">Hello there.</p>
<p begin="00:00:03.500" end="00:00:06.000"><span tts:fontStyle="italic">Whispering</span> now.<br/>And a second line.</p>
<p begin="00:00:06.000" end="00:00:09.250"><span tts:fontWeight="bold">Bold</span> statement.</p> </body>
</tt>
这个方向没有丢东西:时间、换行与文字都能在 TTML 里还原。
同一转换遇到一份脏文件
输入
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.
输出
<?xml version="1.0" encoding="UTF-8"?>
<tt xmlns="http://www.w3.org/ns/ttml" xmlns:tts="http://www.w3.org/ns/ttml#styling">
<body>
<p begin="00:00:01.000" end="00:00:03.500"><span tts:fontWeight="bold">Bold</span> and <span tts:fontStyle="italic">italic</span>.</p>
<p begin="00:00:03.500" end="00:00:06.000"></p>
<p begin="00:00:08.000" end="00:00:09.000">Last one.</p> </body>
</tt>
空条目与坏时间码不会让 XML 无法生成;读得的条目照常写成 p 元素,读不了的记进有损说明。
常见问题
SRT 转 TTML 后时间码怎么写?
写成 <p begin="00:00:04.126" end="…">;毫秒原样保留,不四舍五入。
SRT 转 TTML 是无损的吗?
是。时间轴、换行、文字与行内格式都能在 TTML 里表达,产物只是同一份字幕的另一种写法。
SRT 转 TTML 后一条两行字幕怎么表示?
一个 <p> 里用 <br/> 分成两行,仍是一条字幕。
SRT 转 TTML 的输出结构是什么?
XML 声明加 <tt> 根元素,里面是 <body> 和 <div>,每条字幕是一个 <p>。
TTML 转回 SRT 会丢什么?
TTML 的样式、定位与文档级构造在 SRT 里没有落点,这些内容会在反方向丢失。
SRT 转 TTML 适合什么平台?
广播、流媒体以及需要 XML 交换字幕的系统;TTML 的标签结构比 SRT 更适合被程序处理。
SRT 转 TTML 后字幕顺序会变吗?
不会。产物按起始时间升序,时间轴本身不平移。