【发布时间】:2017-08-25 15:40:59
【问题描述】:
我正在开发一个网站,我正在处理视频。
我需要在另一个页面上显示 gif 和预览/预告片,重定向到视频。
HTML
<div id=thumbs></div>
CSS
#video {width:320px}
JS
var i =0;
var video = document.createElement("video");
var thumbs = document.getElementById("thumbs");
video.addEventListener('loadeddata', function() {
thumbs.innerHTML = "";
video.currentTime = i;
}, false);
video.addEventListener('seeked', function() {
var j = video.duration;
var u = j/4;
// now video has seeked and current frames will show
// at the time as we expect
generateThumbnail(i);
// when frame is captured, increase
i+=u;
// if we are not passed end, seek to next interval
if (i <= video.duration) {
// this will trigger another seeked event
video.currentTime = i;
}
}, false);
video.preload = "auto";
video.src = "https://www.html5rocks.com/en/tutorials/video/basics/devstories.webm";
function generateThumbnail() {
var c = document.createElement("canvas");
var ctx = c.getContext("2d");
c.width = 160;
c.height = 90;
ctx.drawImage(video, 0, 0, 160, 90);
thumbs.appendChild(c);
thumbs.replaceChild(c, thumbs.childNodes[0]);
}
我所做的是从它的 Url 获取一个视频,然后在相同的时间获取 5 帧。它给了我画布,我想将它们显示为 gif 或一系列图像。
【问题讨论】:
-
最简单的方法是使用你的画布和一个简单的动画循环来每隔一段时间绘制你的静止图像。
-
@Kaiido 不幸的是,如果您有时间制作演示/一些代码或给我一些提示,我并没有真正使用太多 JS(我是初学者)做这个 ?太棒了!
标签: javascript html video canvas html5-video