SRT转VTT
浏览器通过 <track> 元素播放字幕时只支持WebVTT,所以在VLC里能正常显示的SRT文件,放到网页上却什么也不显示。在这里把它转换为VTT,同样的字幕就能在任何HTML5播放器中显示。
字幕格式转换器
或将SRT, VTT, ASS … 文件拖放到此处 ·
单个文件最大 95 MB· 最多 20 个文件· 30 分钟后删除
文件在我们的服务器上处理,并在 30 分钟后删除。
将所有字幕整体平移这么多秒。字幕出现得太早用正数,太晚用负数(例如 -1.5)。
如果字幕随着影片播放越来越不同步,说明它是按另一个视频版本制作的,请设置此项和目标帧率。
用来播放字幕的视频的帧率。从 23.976 转换为 25 可解决大多数 PAL/NTSC 造成的不同步。
仅用于没有时间信息的纯 TXT 输入:每行按此时长依次显示。如有需要,之后可在字幕编辑器中调整时间。
自动检测可处理大多数文件。如果带重音的字母、西里尔字母或阿拉伯字母显示为问号,请手动选择编码。输出始终为 UTF-8。
默认 ASS 样式使用的字体。观看者的电脑必须已安装该字体;Arial 最稳妥。
相对于高 1080 像素视频的大小。48 是电影的常用字号。
使用方法
- 1
拖入.srt文件
添加一个字幕文件,或每种语言各添加一个,最多 20 个文件,每个不超过 95 MB。旧版编码会被自动识别并重写为 UTF-8,这是 WebVTT 所要求的。
- 2
按需调整时间轴
直接转换的话,保持默认设置即可。如果字幕相对视频偏早或偏晚,请在高级设置中的平移时间轴里填入秒数。
- 3
转换为WebVTT
点击转换为 WebVTT (VTT),然后下载 .vtt 文件。把它们和视频上传到同一位置即可;我们这边的副本会在 30 分钟后删除。
上传 SRT 并点击转换为 WebVTT (VTT)。你会得到一个带有必需的 WEBVTT 文件头、毫秒以句点分隔、文字为 UTF-8 的文件,可直接用于 <track> 元素、Video.js、Plyr 或课程平台。
为什么网页播放器需要VTT而不是SRT
SRT 诞生于 2000 年前后的 DVD 抓取圈,后来成为桌面播放器、剪辑软件和字幕下载的默认格式。WebVTT 于 2010 年为网页设计,以 SRT 的语法为起点,HTML 标准将它定为 <track> 元素使用的格式。Chrome、Firefox、Safari 和 Edge 都原生支持它,而且都不能通过 track 读取 SRT。
两者在文本编辑器里看起来几乎一样,所以很多人会在这里栽跟头。VTT 文件必须以 WEBVTT 开头,必须是 UTF-8,时间写作 00:01:05.300,而 SRT 写作 00:01:05,300。此外,VTT 还能携带位置、样式和注释,这些是 SRT 没有的。因此从 SRT 转 VTT 不会丢失任何内容;反过来通过 VTT转SRT 转换则会丢掉这些额外信息。
拿到 .vtt 后,按下面的示例在页面中引用即可。如果视频是浏览器无法播放的格式,比如 iPhone 拍的 .mov,可以看看MOV转MP4的指南,它解决的是另一半问题。
<video controls src="lecture.mp4">
<track kind="subtitles" src="lecture.en.vtt"
srclang="en" label="英文" default>
</video>SRT与VTT对比:所有关键区别
| 项目 | SRT | WebVTT |
|---|---|---|
| 文件第一行 | 字幕序号 `1` | `WEBVTT` |
| 时间戳 | `00:01:05,300` | `00:01:05.300`(小时可省略) |
| 字幕序号 | 必需 | 可选标识符 |
| 文本编码 | 不限,常为旧版代码页 | 仅限 UTF-8 |
| 位置与对齐 | 无标准 | `line`、`align` 等字幕设置 |
| 样式 | `<i>`、`<b>`、`<u>`、`<font>` | `<i>`、`<b>`、`<u>`,以及用 CSS 设置样式的类 |
| 服务器上的 MIME 类型 | `application/x-subrip` | `text/vtt` |
SRT
SubRip 字幕
SRT 是 SubRip 的字幕格式。SubRip 是一款免费的 Windows 程序,约在 2000 年用于从视频中提取字幕。每条字幕是一段纯文本,包含序号、开始和结束时间以及字幕文本。它是支持最广泛的字幕格式,VLC、YouTube、Facebook、视频编辑器和智能电视都能识别。SRT 只有基本格式,没有位置和样式方面的标准。
- 压缩方式
- –
- 透明度
- –
- 动画
- –
- 发布年份
- SubRip
VTT
WebVTT 字幕
VTT 即 Web Video Text Tracks 格式,由 WHATWG 和 W3C 于 2010 年前后为 HTML5 视频开发。它与 SRT 相似,但增加了 WEBVTT 文件头,并支持位置、样式、说话人标签和元数据。浏览器通过 <track> 元素使用它显示字幕,流媒体平台和 YouTube 也接受它。一些桌面播放器和编辑器则要求 SRT。
- 压缩方式
- –
- 透明度
- –
- 动画
- –
- 发布年份
- 2010 · W3C / WHATWG
HTML5 视频只能通过 track 元素加载 WebVTT,所以为桌面播放器制作的 SRT 字幕必须先转成 VTT,才能显示在网页上。
VTT字幕在浏览器中不显示
字幕在线上正常,但从本地磁盘打开 HTML 文件时不显示
浏览器会阻止从
file://页面加载字幕轨道。请通过本地网络服务器或在真实网站上测试。字幕轨道来自其他域名,加载后内容为空
给
<video>元素添加crossorigin,并在存放 .vtt 的服务器的 CORS 头中允许你的网站。服务器把文件作为 text/plain 发送
将服务器配置为以
text/vtt提供 .vtt;有些播放器不接受其他类型。每条字幕都早出现一秒
用正数的平移时间轴(比如 1)重新转换,并替换原文件。
SRT转VTT常见问题
转换器会修改文件中的哪些内容?
它会在文件顶部加上 WEBVTT 行,把毫秒前的逗号换成句点,并将文件保存为 UTF-8。WebVTT 允许把字幕序号作为可选标识符保留,字幕文字本身不会改动。
直接把.srt改名为.vtt可以吗?
不能。没有 WEBVTT 文件头、时间戳又用逗号的话,浏览器会拒绝加载字幕轨道或跳过所有字幕。文件需要重写,在这里只要一秒钟。
斜体和粗体会保留吗?
可以,<i>、<b> 和 <u> 在两种格式中都有。SRT 的 <font color> 标签在 WebVTT 中没有直接对应的写法,因为 WebVTT 通过 CSS 类给字幕着色,所以如果文件大量使用该标签,请开启删除格式标签。
我的课程平台需要哪种字幕文件?
大多数学习平台和网页播放器支持 WebVTT,许多也同时支持 SRT。如果上传表单只列出 .vtt,就在这里转换;如果只列出 .srt,请用 VTT转SRT 反向转换。
能把字幕放在画面顶部吗?
WebVTT 支持,可以用 line:0 这类字幕设置,转换后用文本编辑器添加即可。SRT 没有存储位置的标准方式,所以转换后的字幕从底部的默认位置开始显示。
如何给一个视频添加多种语言的字幕?
先转换每种语言的 SRT,再为每个文件添加一个 <track>,并分别设置 srclang 和 label。观众可以在播放器的字幕菜单中选择语言。