admin管理员组文章数量:1323348
Good evening.
Straight to the point - I would need a script that grabs RDF/JSON structure from specific time interval in WEBVTT file. Does such a thing exist?
RDF/JSON is Talis specified file structure that looks like this:
{ "S" : { "P" : [ O ] } }
WEBVTT implements mentioned structure like this:
0
00:00:00,000 --> 00:00:46,119
{ "S" : { "P" : [ O ] } }
1
00:00:48,000 --> 00:00:50,211
{ "S" : { "P" : [ O ] } }
...
And I would use such file while viewing the video files in such way that when I click on some part of the timeline, script fetches corresponding RDF/JSON code (I'm able to do this now, there is a WEBVTT parser already), and then parser fetches requested information in the object from the RDF/JSON structure.
I was really happy when I saw that jQuery has getJson implemented, but it works only for "normal" json files.
The best thing would probably be to just write the script, but my timing and knowledge are very limited, so I would like to hear any suggestion or solution that anybody might know.
Good evening.
Straight to the point - I would need a script that grabs RDF/JSON structure from specific time interval in WEBVTT file. Does such a thing exist?
RDF/JSON is Talis specified file structure that looks like this:
{ "S" : { "P" : [ O ] } }
WEBVTT implements mentioned structure like this:
0
00:00:00,000 --> 00:00:46,119
{ "S" : { "P" : [ O ] } }
1
00:00:48,000 --> 00:00:50,211
{ "S" : { "P" : [ O ] } }
...
And I would use such file while viewing the video files in such way that when I click on some part of the timeline, script fetches corresponding RDF/JSON code (I'm able to do this now, there is a WEBVTT parser already), and then parser fetches requested information in the object from the RDF/JSON structure.
I was really happy when I saw that jQuery has getJson implemented, but it works only for "normal" json files.
The best thing would probably be to just write the script, but my timing and knowledge are very limited, so I would like to hear any suggestion or solution that anybody might know.
Share Improve this question edited Jun 22, 2013 at 8:28 yannick 731 silver badge6 bronze badges asked Aug 1, 2011 at 22:17 3mpetri3mpetri 5991 gold badge9 silver badges26 bronze badges 2- 1 Is it possible that RDF/JSON is just plex JSON structure? O is behaving as an array of data of P vector which is under the S object? – 3mpetri Commented Aug 2, 2011 at 9:43
- 1 I'm finding it really weird that WebVTT, designed in 2011 as far as I can tell, is not already fully JSON... – jwl Commented Feb 24, 2012 at 16:34
2 Answers
Reset to default 6I've written a WebVTT parser for my <track>
/HTML5 video captioning polyfill Captionator.
Feel free to pick apart the source of the development branch (which has the best WebVTT pliance, so it's probably better to look at that rather than the stable branch.)
The parser code starts here: https://github./cgiffard/Captionator/blob/captioncrunch/js/captionator.js#L1686
Ultimately though, what you're describing seems to roughly match the intended use case for the metadata
track type (as described in the WHATWG's TimedTextTrack spec.) You can use Captionator (I'd love to remend to you another library as well, but I'm not aware of anything else that doesn't e bundled with an entire video player, or that implements the TimedTextTrack JS API you'll need) to provide support for it - the TextTrack.oncuechange
event and TextTrack.activeCues
list enable you to listen for changes to cues when the user seeks within the video timeline. You can then get the text of each cue (less the cue metadata and header) and parse it as JSON. Just set up a caption track like below:
<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>
Then, include the captionator library, initialise it as per the documentation, select your track and set up an event handler. You can access the text of an individual cue like so:
var cueText = document.getElementById("video").tracks[0].activeCues[0].getCueAsSource();
Then just:
var RDFData = JSON.parse(cueText);
Good luck :)
It seems that the RDF/JSON is in fact plex and nested JSON structure with vectors, so getJSON function will successfully parse data from it once its fetched from WEBVTT timed structure.
本文标签: Javascript parser for RDFJSON from WEBVTTStack Overflow
版权声明:本文标题:Javascript parser for RDFJSON from WEBVTT - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1742132008a2422204.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论