vue 截取視頻第一幀作為視頻封面

做開發的時候碰到需要上傳視頻封面的問題,跟后臺討論了一波決定用前端截取,然后上傳 視頻封面,由于我這邊做了相冊功能,所有的圖片都由相冊統一管理,省的每次都的重復上傳,所以我用的直接是 url渲染后的視頻對象 ,你也可以自己js創建video對象下面代碼也有

<canvas id='mycanvas' v-show='false' ></canvas>

   findvideocover() {
        const  video = document.getElementById("upvideo"); // 獲取視頻對象
        // const video = document.createElement("video") // 也可以自己創建video
        // video.src='http://mall.private.netcente.com/cf0eec5e-6b17-4966-be4d-8b1b516970d9?e=1588057847&token=ew7Ezvrwgr2v8GBps2vP0TJFLK2G90ewUGzeFKam:IyXlq6S97GLEq7EiR27V6kU4dgg=' // url地址 url跟 視頻流是一樣的
        var canvas = document.getElementById('mycanvas') // 獲取 canvas 對象
        const ctx = canvas.getContext('2d'); // 繪制2d
        video.crossOrigin = 'anonymous' // 解決跨域問題,也就是提示污染資源無法轉換視頻
        video.currentTime = 1 // 第一幀
        video.oncanplay = () => {
          canvas.width = video.clientWidth; // 獲取視頻寬度
        canvas.height = video.clientHeight; //獲取視頻高度
        // 利用canvas對象方法繪圖
        ctx.drawImage(video, 0, 0, video.clientWidth,video.clientHeight)
        // 轉換成base64形式
        console.log(canvas.toDataURL ("image/png"))
        this.videoImg = canvas.toDataURL ("image/png") // 截取后的視頻封面
      }
    },

比較坑爹的就是后面發現青牛云直接提供了截取視頻第一幀的方法,我寫的又被棄用了

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容