This work in progress experimental example demonstrates using a pre-encoded video with a thumbnail frame size and no audio. The small frame helps with load times due to latency and therefore less of a delay displaying the frame hence the requirement of images.
This unfortunately pre-buffers the video depending on the offset times, therefore needs to be encoded as small as possible.
A better example obtaining the video byte data directly may be realised later but complicated to translate to byte requests from offset times. Capturing the video frame for caching with a standard video display is complicated due to cross origin issues cross browser which is the same issue as the snapshot feature requiring cross origin proxy work arounds.
<div class="flex w-full h-auto my-auto">
<video class="video-js vjs-default-skin vjs-fluid " crossorigin="anonymous" controls="" id="realtime"></video>
</div>
<script type="text/javascript">
var player = videojs("realtime", {
"framesurl": "//videos.electroteque.org/frames/big_buck_bunny_frames.mp4",
"plugins": {
"controlspreview": {
"realtime": true
}
},
"sources": [
{
"src": "https://videos.electroteque.org/bitrate/big_buck_bunny_2000k.webm",
"type": "video/webm"
},
{
"src": "https://videos.electroteque.org/bitrate/big_buck_bunny_2000k.mp4",
"type": "video/mp4"
},
{
"src": "https://videos.electroteque.org/bitrate/big_buck_bunny_2000k.ogv",
"type": "video/ogg"
}
]
});
</script>