12

我终于得出一个结论,google-chrome 不支持 .srt 因为 WEBVTT 是 HTML5 标准

现在我想知道这个决定背后的原因是什么。

似乎 google-chrome 可能也支持 .srt ,因为:

  1. .srt 被广泛使用
  2. .srt 和 .vtt 几乎没有区别

WEBVTT 中有什么更好的东西可以使 .srt 过时吗?

4

3 回答 3

13

可能人们只是喜欢重新发明轮子。

我看到的唯一区别是 vtt 支持屏幕上的字幕定位。

免责声明:我是https://github.com/mantas-done/subtitles的作者, 我已经实现了几种字幕格式,包括 .srt 和 .vtt。这 5 种格式中的每一种都非常相似:空格与无空格,逗号与句点。

于 2017-01-15T17:13:12.620 回答
7

WebVTT 具有非常强大的功能,包括字体、颜色和文本格式以及位置。最初 SRT 不支持任何格式,但已升级为支持基本文本格式(粗体、斜体、下划线)和位置。但是,它没有与 VTT 几乎相同的功能。 来源

Webvtt 规范

于 2018-10-24T12:12:14.310 回答
2

简短的回答

WebVTT 是作为 SRT 的扩展而构建的,用于添加 SRT 中不可用的有用功能。在最基本的形式中,WebVTT 看起来与 SRT 几乎相同。但是,WebVTT 添加了许多(可选)方式来格式化输出并提供 SRT 所没有的辅助信息。额外功能的缺点是玩家更难以支持它。因为 SRT 的功能很少,所以大部分玩家都支持。

长答案

WebVTT(Web Video Text Tracks)最初称为 WebSRT。它是 SRT (SubRip) 的扩展。当不使用 WebVTT 提供的任何附加功能时,WebVTT 看起来与 SRT 几乎相同。例如,SRT 中的一个简单案例可能如下所示:

1
00:00:00.000 --> 00:00:02.000
The first cue text.

2
00:00:02.000 --> 00:00:04.000
The second cue text.

等效的 WebVTT 可能如下所示:

WEBVTT

00:00.000 --> 00:02.000
The first cue text.

00:02.000 --> 00:04.000
The second cue text.

制作 WebVTT 的原因是添加了许多 SRT 中不存在的功能。例如,在 WebVTT 中,您可以添加显示提示说话者是谁的数据:

00:02.000 --> 00:04.000
<v Mary>Hi, I'm Mary!

SRT 没有正式包含任何字体样式。许多玩家在 SRT 中非正式地支持简单的字体样式,但由于它不是正式格式的一部分,因此无法保证。WebVTT 确实将字体样式作为格式的一部分。对于简单的字体样式,非官方的 SRT 和 WebVTT 再次看起来相似:

<b>This text is bold.</b>

但是,WebVTT 包含许多类型的字体样式和许多包含 SRT 未包含的字体样式的方法。例如,WebVTT 的样式表类似于 HTML 的 CSS。对于上面标记的扬声器示例,您可以在文件中包含特定扬声器的所有实例的字体样式:

::cue(v[voice="Mary"]) { color: lime }

当多个说话者相互交谈时,这可能很有用,以便可以在字幕中区分他们的语音。

就像 WebVTT 支持的 SRT 不支持的其他一些东西的快速采样一样,

在视口中定位和调整提示的大小:

00:00:00.000 --> 00:00:04.000 position:10%,line-left align:left size:35%
I'm over here.

小字符的 Ruby 文本(通常用于东亚语言以提供拼音指南):

00:02.000 --> 00:04.000
<ruby>東京<rt>とうきょう&lt;/rt></ruby>

按时间细分的线索:

00:00:00.000 --> 00:00:06.000
This <00:00:01.000>text <00:00:02.000>appears <00:00:03.000>over <00:00:04.000>5 <00:00:05.000>seconds.

SRT的好处就是简单到让更多玩家支持。幸运的是,将 SRT 转换为 WebVTT 相当容易,反之亦然。由于 WebVTT 基本上是 SRT 的超集,因此您只需更改一些小语法即可从 SRT 转换为 WebVTT。要从 WebVTT 转到 SRT,您需要去掉所有额外的功能标签,然后执行轻微的语法更改。当然,在这个方向上,您将失去 WebVTT 提供的所有额外功能。

SRT 是由一个相对不知名的团体开发的,而 WebVTT 是 W3C 标准。正如原始问题所指出的,它或多或少是 HTML5 的“官方”标题/字幕格式。

于 2022-02-05T22:04:16.757 回答