WEBVTT(.vtt) 比 SubReal (.srt) 有什么好处?

What's the benefit of WEBVTT(.vtt) over SubReal (.srt)?

最后得出的结论是google-chrome不支持.srt因为WEBVTT是HTML5标准.

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

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

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

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

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

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

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

WebVTT has very robust features, including font, color and text formatting, and placement. Initially SRT couldn’t support any formatting, but it’s been upgraded to support basic text formats (bold, italic, underline) and placement. However, it doesn’t have nearly the same capabilities as VTT. source

Webvtt spec

简答

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 的样式表类似于 CSS for HTML。对于上面标记的演讲者示例,您可以在文件中包含特定演讲者的所有实例的字体样式:

::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>とうきょう</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.

的“官方”caption/subtitle 格式