对上传的二进制视频文件进行第一帧截取

在一个视频系统中,需要截取视频首帧为图片上传当封面。

实现此功能的思路大致是:

  • 通过drawImage方法,将video转为canvas
  • 使用canvas.toBlob将canvas转为img
// file 是上传或获取后的二进制文件file
var src = ''
var fileUrl = '' if (window.createObjectURL != undefined) {
     // basic fileUrl = window.createObjectURL(file); } else if (window.URL != undefined) {
     // mozilla(firefox) fileUrl = window.URL.createObjectURL(file); } else if (window.webkitURL != undefined) {
     // webkit or chrome fileUrl = window.webkitURL.createObjectURL(file); } var videoElement = document.createElement("VIDEO") videoElement.src = fileUrl videoElement.autoplay = true const _this = this videoElement.addEventListener("loadeddata", function(_event) { var canvas = document.createElement("canvas"); canvas.width = videoElement.videoWidth * 0.8; canvas.height = videoElement.videoHeight * 0.8; canvas.getContext('2d').drawImage(videoElement, 0, 0, canvas.width, canvas.height);
     // 转为图片src src = canvas.toDataURL("image/png"); });

  

posted @ 2022-03-05 11:07  MaxLucio  阅读(184)  评论(0编辑  收藏  举报