js实现截取视频帧图片作为封面预览图
前端需要把视频文件的第一帧图像截取出来,并做为缩略图显示在页面上,这里需要利用html5中强大的画布canvas来实现该功能。
代码如下:
<video id="video" controls="controls">
<source src="../../assets/img/vedio/tomandjerry.mkv">
</video>
<div id="output"></div>
<script type="text/javascript">
(function(){
var video, output;
var scale = 0.3;
var initialize = function() {
output = document.getElementById("output");
video = document.getElementById("video");
video.addEventListener('click',captureImage);
};
var captureImage = function() {
var canvas = document.createElement("canvas");
canvas.width = video.videoWidth * scale;
canvas.height = video.videoHeight * scale;
canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height);
var img = document.createElement("img");
img.src = canvas.toDataURL("image/png");
output.appendChild(img);
};
initialize();
})();
</script>说明:
在使用canvas.toDataURL('image/png')的时候出现跨越问题 ,在服务器添加如下代码:Access-Control-Allow-Origin: *即可。
当然目前大部分云服务上,他们是有相应的接口来获取某一帧的画面。
本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!