指南

把 SRT 转成 VTT,给 HTML5 和网页播放器用

剪辑软件导出的是 SRT,网页播放器、课程站或 CMS 要的是 WebVTT。在浏览器里转时间和纯文本,不上传、不注册。

全部指南

字幕在剪映、Premiere 或文本编辑器里做好了,文件是 .srt。HTML5 播放器、video.js、课程站或 CMS 的字幕栏要的是 WebVTT(.vtt)。这篇讲的就是这一步交接:一份干净的 SRT,变成 <track> 能加载的 .vtt。文件留在你的设备上。

SRT 和 VTT 都只带时间和纯文本。浏览器播放器认的是 VTT。多数桌面剪辑软件仍然先导出 SRT。

1. 先确认播放器要的是 VTT

  • HTML5 / 浏览器播放器 — <track kind="captions" src="captions.vtt"> 要的是 WebVTT。
  • 课程平台 — 很多上传栏写的就是 VTT 或 WebVTT。
  • CMS / 帮助中心里的视频 — 产品和文档站的字幕经常接 .vtt。
  • 桌面剪辑软件和剪映 — 它们通常要 SRT。对方只导入 SRT 时,不要转成 VTT。

不确定下一步该用哪种格式,先看格式说明。

2. 导出一份干净的 SRT

导出 SubRip(.srt)。导出对话框里有编码选项时,选 UTF-8。

  1. 用文本编辑器打开 SRT。应能看到序号、00:00:01,000 --> 00:00:04,000 这样的时间轴,然后是对白。
  2. 对白本身要对。转换不会改写文稿。
  3. 中文或其他非拉丁文字已经是乱码的话,先另存为 UTF-8,再转换。

CueConvert 只保留时间和纯文本,不会重做字幕样式。来源如果是带样式的 ASS,离开 ASS 之前先看ASS 样式被丢掉时。

3. 在 SRT 转 VTT 页面上转换

打开 SRT 转 VTT

  1. 拖入一个或多个 .srt,或点击选择。批量免费。单文件和整批的上限写在那一页上。
  2. 点转换到 VTT。
  3. 需要的话先看预览,再下载。一批成功的文件会打成一个 zip。失败的会单独列出。

不用注册。转换不会把文件上传出去。

4. 把 VTT 接到 HTML5 播放器

<video controls src="video.mp4">
  <track kind="captions"
         src="captions.vtt"
         srclang="zh-CN"
         label="中文"
         default>
</video>
  • 主机需要单独声明类型时,把 .vtt 按 text/vtt 提供。
  • 尽量让视频和 VTT 在同一来源;字幕地址跨域时,要给它配 CORS。
  • kind="captions" 用于对白。无障碍策略要求字幕轨时,用 kind="subtitles"。srclang 写成这条字幕实际的语言。
  • 播放几分钟,把字幕开关打开。抽查开头、中间和结尾,不要只看第一句。

video.js、Plyr 或 CMS 的字幕栏,也是上传同一份 .vtt,按对方文档里写的 WebVTT 来接。

5. 剪辑软件又要回 SRT

VTT 转 SRT 把网页用的文件转回 SubRip。目标是时间和文本。网页上才有的 VTT 样式,不会留在一份纯 SRT 里。

常见错误和做不到的事

目的地选错了。 VTT 经常导不进 Premiere 或剪映。那些工具要的是 SRT。先对上目的地(格式说明)。

以为样式会留下来。 SRT 就是纯文本加时间。来源如果是 ASS,样式是故意丢掉的。见ASS 样式被丢掉时。

编码。 乱码通常是 SRT 不是 UTF-8。先改好 SRT,再转换。

图像字幕和广播格式。 CueConvert 只处理 SRT、VTT、ASS/SSA 和 SBV。PGS、SUB/IDX、TTML、SCC、STL 不支持。

批量大小。 上限写在工具页上。超了就拆开做。

权利。 只转换你有权使用的文件。

简短问答

CueConvert 会上传我的 SRT 吗? 不会。转换在浏览器里完成,不用注册。

批量免费吗? 免费,不超过工具页上写的上限。成功的文件打成一个 zip 下载。

时间轴还准吗? 目标是保留来源里的时间和文本。下载后在播放器里抽查。

能把 VTT 转回 SRT 吗? 可以。用 VTT 转 SRT。

样式很多的 ASS 呢? 只在纯对白就够用时再转。样式是故意丢掉的。

相关工具