I am trying to create thumbnail of a video using javascript. I need to create thumbnails from video on video load and show it in a canvas. the sample code is given below. Any help would be appreciated.
https://codepen.io/jeffin417/pen/vJxagb?editors=1010
var videoId = "video";
var scaleFactor = 0.25;
var snapshots = [];
document.getElementById(videoId).addEventListener(
"loadeddata",
function() {
for (var jk = 0; jk < 60; jk++) {
document.getElementById(videoId).currentTime = jk;
var canvas = capture(document.getElementById(videoId), scaleFactor);
canvas.onclick = function() {
window.open(this.toDataURL());
};
snapshots.unshift(canvas);
output.innerHTML = "";
}
output.appendChild(snapshots[0]);
},
false
);
function capture(video, scaleFactor) {
if (scaleFactor === null) {
scaleFactor = 1;
}
var w = video.videoWidth * scaleFactor;
var h = video.videoHeight * scaleFactor;
var canvas = document.createElement("canvas");
canvas.width = w;
canvas.height = h;
var ctx = canvas.getContext("2d");
ctx.drawImage(video, 0, 0, w, h);
return canvas;
}
function shoot() {
var video = document.getElementById(videoId);
var output = document.getElementById("output");
var canvas = capture(video, scaleFactor);
canvas.onclick = function() {
window.open(this.toDataURL());
};
snapshots.unshift(canvas);
output.innerHTML = "";
for (var i = 0; i < 4; i++) {
output.appendChild(snapshots[i]);
}
}