vue 擷取視訊第一幀
最近自己寫專案,在專案中涉及功能點又擷取視訊幀的點;需求澄清:移動端封面展示,平臺上傳圖片(多張上傳)取第一張上傳圖片為封面圖;如上傳視訊則擷取視訊第一幀作為封面圖;
實現思路;h5 video標籤,canvas;上傳視訊成功之後把返回視訊地址放到video標籤內,通過canvas畫布擷取視訊第一幀;
元件程式碼:
<el-form-item ref="videocontentvideo" style="display:none;">
<img :src="imgurl">
<video width="320" height="240" controls id="upvideo">
</video>
<img :src="modlevidel" />
</el-form-item>
複製程式碼
<el-form-item class="upload-demo-content" v-show="formLabelAlign.type==2">
<el-upload class="upload-demo" :limit="1" :on-exceed="exceedhandle" drag :file-list="filsListArray" :action="configuploadurl" :on-success="successuploadhandle" accept="video" name="fileList" :before-upload="beforeUploadVideo">
<i class="el-icon-upload"></i>
<div class="el-upload__text">將視訊檔案拖到此處,或
<em>點選上傳</em>
</div>
<div class="el-upload__tip" slot="tip"></div>
</el-upload>
</el-form-item>
複製程式碼
複製程式碼
successuploadhandle(response, file, fileList) {
this.formLabelAlign.video = this.modlevidel =
response.data.fileList[www.mingrenf178.com].url;
this.filsListArray =www.mingrenf178.com [];
this.filsListArray.push({
name: this.formLabelAlign.video,
url: this.formLabelAlign.video
});
this.findvideocover(www.mcyllpt.com);
},
複製程式碼
exceedhandle(files, fileList) {
this.$message.error("只能上傳一個視訊額");
},
複製程式碼
beforeUploadVideo(file) {
if (
[
"video/mp4",
"video/ogg",
"video/flv",
"video/avi",
"video/wmv",
"video/rmvb"
].indexOf(file.type) == -1
) {
this.$message.error("請上傳正確的視訊格式");
return false;
}
},
複製程式碼
主要程式碼=》擷取視訊第一幀:
複製程式碼
findvideocover() {
let _this = this;
this.$nextTick(() => {
let video = document.getElementById("upvideo");
let source = document.createElement("source");
// source.src = require("../../assets/5b086751dbb7af1ea8fa8d05e66fe5c3.mp4");this.formLabelAlign.video
source.src = this.formLabelAlign.video;
source.type = "video/mp4";
video.appendChild(source);
video.addEventListener("loadeddata", function() {
var canvas = document.createElement("canvas");
canvas.width = "320";
canvas.height = "320";
canvas
.getContext("2d")
.drawImage(video, 0, 0, canvas.width, canvas.width);
var img = document.createElement("img");
let imgsrc = canvas.toDataURL("image/png");
_this.Videoframehandle(imgsrc.split(",")[1]);
});
});
},
複製程式碼
視訊預覽:
複製程式碼
showvideohandle() {
this.$alert(
`<video width="320" height="240" controls>
<source src="${
this.filsListArray[0].url
}" type="video/mp4">
您的瀏覽器不支援 HTML5 video 標籤。
</video>`,
"視訊預覽",
{
dangerouslyUseHTMLString: true
}
);
},
相關文章
- wasm + ffmpeg實現前端擷取視訊幀功能ASM前端
- 使用javacv 獲取視訊第一幀 做封面Java
- php ffmpeg 視訊擷取PHP
- Android CameraX ImageAnalysis 獲取視訊幀Android
- 三種方法使用FFMPEG擷取視訊片斷
- 獲取網路視訊任意幀畫面
- 使用JavaCV實現讀取視訊資訊及自動擷取封面圖Java
- 音訊擷取分割工具音訊
- 上傳影片,取第一幀,縮圖demo
- opencv提取視訊每一幀OpenCV
- win10系統如何擷取視訊片段儲存為圖片Win10
- 字串擷取字串
- js擷取JS
- vue自定義指令擷取圖片中心顯示Vue
- 擷取第一個字用php生成一個頭像PHP
- 前端字型擷取前端
- H5 video標籤列表渲染用canvas擷取視訊畫面做封面H5IDECanvas
- 視訊直播:Windows中各類畫面源的擷取和合成方法總結Windows
- PHP擷取html文章PHPHTML
- OpenCV計算機視覺學習(1)——影像基本操作(影像視訊讀取,ROI區域擷取,常用cv函式解釋)OpenCV計算機視覺函式
- 短視訊平臺搭建,指定視訊中的某一幀做為視訊的封面
- MediaCodeC解碼視訊指定幀,迅捷、精確
- 直播帶貨app原始碼,獲取直播影片的第一幀APP原始碼
- 批量擷取pdf檔案
- MySQL 欄位擷取拼接MySql
- jQuery字串擷取詳解jQuery字串
- Java 圖片裁剪,擷取Java
- MySQL查詢擷取分析MySql
- 直播平臺原始碼,vue圖片中劃框擷取部分圖片原始碼Vue
- 新手都如何批量調整視訊幀速率的?
- 求擷取圖片等比公式公式
- MySQL 字串函式:字串擷取MySql字串函式
- substr擷取函式 筆記函式筆記
- opencv python 從攝像頭獲取視訊/從檔案獲取視訊 /儲存視訊OpenCVPython
- 使用正則擷取URL,獲取你想要的
- php 擷取中英文混合字串PHP字串
- Linux下的字串擷取詳解Linux字串
- JavaScript 擷取指定指定區間字串JavaScript字串