来自 WEBVTT 的 RDF/JSON Javascript 解析器

2024-04-17

晚上好。

开门见山 - 我需要一个脚本来从 WEBVTT 文件中的特定时间间隔获取 RDF/JSON 结构。这样的事情存在吗?

RDF/JSON 是 Talis 指定的文件结构,如下所示:

{ "S" : { "P" : [ O ] } }

WEBVTT 实现上述结构如下:

0
00:00:00,000 --> 00:00:46,119
{ "S" : { "P" : [ O ] } }

1
00:00:48,000 --> 00:00:50,211
{ "S" : { "P" : [ O ] } }

...

我会在查看视频文件时使用这样的文件,当我单击时间线的某些部分时,脚本会获取相应的 RDF/JSON 代码(我现在可以这样做,已经有一个 WEBVTT 解析器),然后解析器从 RDF/JSON 结构中获取对象中请求的信息。

当我看到 jQuery 实现了 getJson 时,我真的很高兴,但它只适用于“普通”json 文件。

最好的事情可能是只写脚本,但我的时间和知识非常有限,所以我想听到任何人可能知道的建议或解决方案。


我为我的程序编写了一个 WebVTT 解析器<track>/HTML5 视频字幕填充字幕器 https://github.com/cgiffard/Captionator/.

请随意挑选开发分支的源(它具有最佳的 WebVTT 合规性,因此最好查看该分支而不是稳定分支。)

解析器代码从这里开始:https://github.com/cgiffard/Captionator/blob/captioncrunch/js/captionator.js#L1686 https://github.com/cgiffard/Captionator/blob/captioncrunch/js/captionator.js#L1686

但最终,您所描述的内容似乎大致符合预期的用例metadata轨道类型(如中所述WHATWG 的 TimedTextTrack 规范 http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#timed-text-tracks.) 您可以使用字幕器(我也很乐意向您推荐另一个库,但我不知道还有什么其他库没有与整个视频播放器捆绑在一起,或者实现了您需要的 TimedTextTrack JS API)为其提供支持——TextTrack.oncuechange事件和TextTrack.activeCues列表使您能够在用户在视频时间轴内搜索时监听提示的变化。然后,您可以获取每个提示的文本(减去提示元数据和标头)并将其解析为 JSON。只需设置一个字幕轨道,如下所示:

<video src="myvideo.webm" poster="poster.jpg" width="512" height="288">
    <track kind="metadata" src="meta.webvtt" type="text/webvtt" srclang="en" label="Metadata Track" default />
</video>

然后,包含字幕库,按照以下方式初始化它文档 https://github.com/cgiffard/Captionator/tree/captioncrunch,选择您的曲目并设置事件处理程序。您可以像这样访问单个提示的文本:

var cueText = document.getElementById("video").tracks[0].activeCues[0].getCueAsSource();

然后只需:

var RDFData = JSON.parse(cueText);

祝你好运 :)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

来自 WEBVTT 的 RDF/JSON Javascript 解析器 的相关文章

随机推荐