跳到正文
全部工具 价格 博客

聊天与语音消息

文档

音频与视频

登录

语言

将 DFXP、TTML 和 XML 字幕转换为 SRT

流媒体服务和电视台通常以 XML 格式提供字幕,即 TTML,常保存为 .dfxp、.ttml 或 .xml 文件。但大多数播放器和电视更支持 SRT 格式。上传 XML 文件,即可下载时间轴完全精准的 SRT,无论原文件的时间采用时钟格式、帧数还是 tick 计数。总计不超过 3,000 行的任务完全免费;更长的大批任务只需一次付费 $5。

转换字幕格式

转换完成后可下载任意格式:SRT、VTT、ASS、SBV、TTML、SUB 或纯文本。

仅在读取或写入基于帧的 .sub 文件时使用。多数电影为 23.976;欧洲电视节目通常为 25。

无需注册。不超过3,000行字幕的任务完整免费。更长的:前段免费,任务内所有文件$5,一次付费。

继续即表示您同意我们的服务条款和隐私政策。

  • 支持读取 .dfxp、.ttml 和 .xml 字幕文件
  • 按文件设定的 tick 采样率转换 15015000t 等 tick 时间戳
  • 按文件设定的帧率转换 00:01:02:12 等帧数时间戳
  • 保留换行与斜体样式;不保留颜色与显示区域
  • 字幕行按时间顺序重新排列,并按 SRT 格式编排序号
打开演示

查看 PDF 示例

为什么流媒体 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),本工具不支持该功能。

相关任务

我们使用分析类 Cookie 来了解哪些页面对用户有帮助。是否同意?