ToolConvoyToolConvoyv2.6
MISC

SRT 转 VTT — 在浏览器中将 SRT 字幕转为 WebVTT

将 SRT 字幕文件转换为 WebVTT 格式。可添加 cue、区域块和元数据头部——完全在浏览器中运行,无需上传。

● 本地运行 · 仅在浏览器中页面加载以来工具发出的网络请求:0 次

SRT to VTT

Convert SRT subtitle files to VTT (WebVTT) format. Works entirely in your browser — no uploads, no limits.

WebVTT 是 HTML5 的时间文本轨道标准。每一个现代浏览器的 <video><audio> 元素都通过 <track> 元素原生支持 WebVTT——不需要 JavaScript 库,不需要 polyfill,也不需要插件。正是这种浏览器原生支持,让 WebVTT 在网页视频的目标格式上取代了 SRT:SRT 文件需要 JavaScript 解析器并自行渲染,而 VTT 文件由浏览器内置的字幕渲染器直接呈现,后者会遵循用户在操作系统辅助功能中设定的字号、颜色对比度和背景不透明度等偏好。

从 SRT 到 VTT 的转换在结构上很简单——cue 格式几乎一致——但正是这些细节差异会让简易的转换器出错。SRT 在时间戳中用逗号作为毫秒分隔符;VTT 则用句点。SRT 对编码没有强制要求;VTT 必须是 UTF-8,且可选带 BOM。SRT 没有文件级头部;VTT 要求首行必须是字面量字符串 WEBVTT。本工具正确处理了这三处差异,并按需添加 YouTube、Brightcove、JW Player 等平台用于标识字幕轨道语言、Kind 与 Label 的元数据头部。整个转换在你的浏览器中运行,输出的 VTT 符合规范,可通过 W3C 校验。

广告

使用方法

  1. 拖入你的 SRT 文件

    把 .srt 文件拖到输入区。解析器读取每个 cue 块,校验时间戳格式,并把 SRT 的毫秒时间戳转换为 WebVTT 格式,可按需保留毫秒精度。

  2. 按需添加元数据

    勾选头部选项可写入带 Kind、Language、Label 元数据的 WEBVTT 头部。该头部是可选的——浏览器在没有它时也能正常渲染 VTT——但 YouTube、JW Player 等平台要求必须提供。

  3. 复制或下载 VTT

    将 WebVTT 输出复制到剪贴板,或下载为 .vtt 文件。输出包含 W3C 规范要求的 WEBVTT 头部行,以及首条 cue 之前的一个空行。

常见问题

SRT 和 VTT 的时间戳有什么区别?

SRT 使用 `HH:MM:SS,mmm`(毫秒前是逗号)。VTT 使用 `HH:MM:SS.mmm`(毫秒前是句点)。转换器会自动完成逗号与句点的互换,并保证时间范围格式(`-->`)严格符合 VTT 规范。

可以为 cue 添加 CSS 样式吗?

可以——VTT 支持通过 cue 设置内联 CSS,也可在嵌入页面的样式表中使用 `::cue()` 伪元素。转换器会为每条 cue 写入可配置的 `line` 和 `position` 设置,你可以在导出前调整。

能处理带 HTML 标签的 SRT 文件吗?

可以。加粗、斜体和下划线标签原样保留,因为 VTT 的 cue 文本负载使用与 SRT 相同的 HTML 子集。颜色标签也会保留。无法识别的标签会作为纯文本保留。

为什么需要 WEBVTT 头部行?

W3C 规范要求每个 VTT 文件的第一行必须是字符串 `WEBVTT`,后跟一个空行。没有这一行,严格实现规范的浏览器会拒绝该文件。转换器会自动添加这一头部。

限制说明

  • 不支持内联说话人标记VTT 支持用于标识说话人的 `<v Speaker Name>` 标签。转换器不会从 SRT 的文本模式中自动识别说话人。转换之后需要在文本编辑器中手工添加 voice span。
  • 不支持章节或区域定义WebVTT 支持用于定位字幕的章节标记和区域定义。转换器只输出基础的 cue 块。章节和区域元数据需手工添加。
  • 不输出 VTT STYLE 块WebVTT 允许在文件中使用类 CSS 语法的 STYLE 块。转换器只输出 cue 文本,不写入 STYLE 块。请通过嵌入页面的 CSS 应用样式。

平台说明

macOS
Safari 通过 `<track>` 元素原生支持 VTT。加载一个含 `<video>` 元素和 `<track src="file.vtt" kind="subtitles">` 子元素的 HTML 页面即可预览 .vtt 文件。
Windows
Edge 和 Chrome 都原生支持 WebVTT。HTML5 视频请使用内置的 `<track>` 元素。本地预览时,把 HTML 文件(而非 .vtt 文件)拖入浏览器。
Linux
FFmpeg 可以烧入 VTT 字幕:`ffmpeg -i video.mp4 -vf subtitles=file.vtt output.mp4`。软字幕方面,MP4 用 `-i file.vtt -c:s mov_text`,MKV 用 `-c:s copy`。
Web
YouTube 在字幕上传对话框中直接接受 WebVTT 文件。本工具输出的 VTT 与 YouTube 的解析器兼容——上传前无需修改。
广告

相关工具

广告