将 DFXP、TTML 和 XML 字幕转换为 SRT
流媒体服务和电视台通常以 XML 格式提供字幕,即 TTML,常保存为 .dfxp、.ttml 或 .xml 文件。但大多数播放器和电视更支持 SRT 格式。上传 XML 文件,即可下载时间轴完全精准的 SRT,无论原文件的时间采用时钟格式、帧数还是 tick 计数。总计不超过 3,000 行的任务完全免费;更长的大批任务只需一次付费 $5。
为什么流媒体 XML 字幕处理起来很棘手
TTML 文件本质上是 XML 文档。每条字幕都是一个包含 begin 和 end(或 begin 与 duration)属性的 <p> 元素,其内部文本可包含 <br/> 换行符以及带有样式的 <span> 标签。最棘手的是时间表示方式:有些文件直接记录时钟时间 00:01:02.500;有些按帧数计算,如在根元素声明的帧率下的 00:01:02:12;还有些流媒体平台的文件使用 tick 计数,例如 begin="15015000t",此时根元素的 tickRate 属性会指明 1 秒等于多少 tick(通常是一千万)。
手动换算意味着每一行都要做大数除法。本转换工具会自动读取文件中声明的 tickRate 和 frameRate,并对每个 begin、end 和 duration 进行换算,例如在每秒一千万 tick 的速率下,15015000t 会准确转换为 00:00:01,502。
转换后保留的内容
- 所有 <p> 标签内的文本,其中 <br/> 转换为换行,并自动清理多余空格
- 标记为 tts:fontStyle="italic" 的斜体文字,转换为 <i> 标签
- 基于 begin 与 end、或 begin 与 dur 换算的时间戳
- 不保留的内容:字体颜色、字体、显示区域及屏幕坐标位置
使用须知
文件必须是格式合规的 XML;如果文件曾被中途截断,或因手动编辑导致标签未能正常闭合,将无法读取。若转换后的 SRT 与您的视频画面不同步,可能是您手头的视频版本帧率不同或起始时间不一致;可以使用字幕同步修复工具进行调整。您也可以重新下载规范化的 TTML(采用标准时钟时间),或下载适用于网页播放器的 VTT 文件。
转换后的字幕会先在屏幕上预览,以便您在下载前核对前几行与视频是否对齐。
工具的工作方式、费用以及文件处理方式,请见 字幕格式转换 页面;所有工具的价格请见 价格 页面。
最后更新于
常见问题
ChatGPT 能把 DFXP 转成 SRT 吗?
它了解这种格式,也能处理寥寥几行。但一整集视频的 XML 字幕非常长,且换算 tick 或帧数时间戳需要对每一行进行数学计算,AI 对话很容易算错或中途截断。本工具完全通过代码精准计算每个时间点。
我文件中以 t 结尾的数字是什么?
那是 tick(时钟周期)。文件根元素中的 tickRate 规定了一秒包含多少个 tick(常见为一千万),转换工具通过除以该数值来得出实际时间。
.dfxp 和 .ttml 有区别吗?
DFXP 是 TTML 格式的早期名称。两者以及保存为 .xml 的字幕文件均采用相同的读取方式。
颜色和排版位置会保留吗?
不会。SRT 格式不支持区域和颜色,因此仅保留文字与斜体样式,字幕将显示在播放器的默认位置。
费用是多少?
总计不超过 3,000 行字幕的任务完全免费。更大的任务(如整季的 XML 文件)只需一次付费 $5,最多支持 50 个文件或一个 ZIP 包,总计可达 50,000 行字幕。
支持蓝光光盘提取的图片字幕吗?
不支持。蓝光 .sup 文件是图像而非 XML 文本,需要文字识别(OCR),本工具不支持该功能。