我正在尝试使用javascript创建视频的缩略图。我需要在视频加载时从视频创建缩略图并将其显示在画布上。示例代码如下。任何帮助,将不胜感激。使用javascript生成视频缩略图
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]);
}
}
看看[这里](https://stackoverflow.com/questions/19175174/capture-frames-from-video-with-html5-and-javascript)and this [fiddle](https://jsfiddle.net/gdp00x2s/293/)。这是你在找什么? –
你基本上拥有你需要的一切。问题是什么? – pawel
嘿,谢谢哥们,这正是我正在寻找,可能是我应该搜索mroe关键字,请让你的答案我会接受, – Jeffin