js上传视频并获取视频帧做为封面
//上传点击事件
function toGetUpdate(){// 生成文件上传的控件let inputElement = document.createElement('input')inputElement.setAttribute('type' , 'file')inputElement.style.display = 'none'if (window.addEventListener) {inputElement.addEventListener('change', (e)=>{uploadFile(e)}, false)} else {inputElement.attachEvent('onchange', (e)=>{uploadFile(e)})}document.body.appendChild(inputElement)inputElement.click()
}
//上传方法
function uploadFile(el){if (el && el.target && el.target.files && el.target.files.length > 0) {// console.log(el)const files = el.target.files[0]const isLt100M = files.size / 1024 / 1024 < 100 //100M大小const size = files.size / 1024 / 1024 //文件大小单位为M,(做限制条件用)// console.log(files)//if (files.type.indexOf('mp4') === -1) { //如果不是视频格式(限制格式判断)//alert('请选择mp4文件')//}const reader = new FileReader(); // 创建读取文件对象reader.readAsDataURL(el.target.files[0]); // 发起异步请求,读取文件reader.onload = function(t) { // 文件读取完成后// console.log(t.target.result)//视频路径(可能已经不叫路径了,现在就是个数据流文件(@~__~@))let video = document.createElement("video");video.setAttribute('src', t.target.result);video.setAttribute('controls', 'controls');video.setAttribute('width', 400); //设置大小,如果不设置,下面的canvas就要按需设置video.setAttribute('height', 240);video.currentTime = 7 //视频时长,一定要设置,不然大概率白屏video.addEventListener('loadeddata', function() {let canvas = document.createElement("canvas"),width = video.width, //canvas的尺寸和图片一样height = video.height;canvas.width = width;//画布大小,默认为视频宽高canvas.height = height;canvas.getContext("2d").drawImage(video, 0, 0, width, height); //绘制canvaslet dataURL = canvas.toDataURL('image/png'); //转换为base64console.log(dataURL)video.setAttribute('poster', dataURL);//设置为视频封面//document.getElementById('output').appendChild(canvas)可以放到页面上看看效果//document.getElementById('output').appendChild(video)});}; }
}//改一改,同样适应图片上传
if (el && el.target && el.target.files && el.target.files.length > 0) {// console.log(el)const files = el.target.files[0]const isLt2M = files.size / 1024 / 1024 < 2const size = files.size / 1024 / 1024// 判断上传文件的大小// if (!isLt2M) {// alert('上传图片大小不能超过 2MB!')// } elseif (files.type.indexOf('image') === -1) { //如果不是图片格式alert('请选择图片文件')} else {const reader = new FileReader(); // 创建读取文件对象reader.readAsDataURL(el.target.files[0]); // 发起异步请求,读取文件reader.onload = function() { // 文件读取完成后// 读取完成后,将结果赋值给img的srcresolve(this.result)};}}
js上传视频并获取视频帧做为封面相关推荐
- 阿里云oss视频上传后,如何获取视频封面
前言:在阿里云oss视频上传后,我们如何获取视频封面呢?而不是通过上传方式获取封面.其实OSS本身提供了视频截帧功能 OSS提供的视频截帧功能和OSS图片服务功能使用的方式是类似的,都是通过传入x-o ...
- js上传视频,预览视频
js上传视频,预览视频 <videostyle="width:300px; height:auto;object-fit: fill;"playsinlinecontrols ...
- java实现MinIO文件上传,并将视频文件截图,将视频封面及视频通过MinIo上传到服务器中
java实现MinIO文件上传,并将视频文件截图,将视频封面及视频通过MinIo上传到服务器中 配置完毕,接下来开始代码编写. 说明 总过程分为两步. 1.配置MinIO的环境. 2.代码编写. 下面 ...
- WebUpload 视频上传,支持多视频上传
在项目中使用了WebUpload视频上传,由于对WebUpload的配置参数上不是很了解,走了不少弯路,以下是整理出来的代码. 前台jsp页面只有通过iframe引入该文件即可. file_uplo ...
- 抖音怎么上传无损画质_抖音上传视频为什么会模糊?如何才能上传高清无损视频?...
抖音上传视频为什么会模糊?如何才能上传高清无损视频? 文章首发"公众号"[四爷课堂],专注分享短视频运营干货,关注可领取100G抖音运营资料,仅限50个名额. 四哥初入抖音的时候, ...
- 小程序wx.chooseImage和wx.chooseVideo 上传多张图片和视频
直接看代码拉,可直接赋值实现噢 <view class="upload" style="overflow:hidden;">// 展示上传的图片&l ...
- 服务器在线看视频无法播放,上传到服务器的视频不能在线播放怎么办?
原标题:上传到服务器的视频不能在线播放怎么办? 问题:我们在本地测试视频播放时,常常遇到这种情况,本地测试视频是可以正常播放的,但项目上传服务器后,视频就无法播放了,原因通常有以下几种,原因及解决方案 ...
- 好看视频上传软件批量发布视频讲解
好看视频上传软件批量发布视频讲解 短视频具有哪些优势呢.短视频这么火极客思维小编粗略总结如下为什么短视频那么火形式互动短视频在形式上的互动性更强通常内容以故事为中心这类平台有完整且的编排和加工剪辑对每 ...
- html限制视频上传大小,微信公众号怎么上传大视频?可以上传多大的视频?
原标题:微信公众号怎么上传大视频?可以上传多大的视频? 想在公众号文章中插入视频,但不知道公众号可以传多大的视频,这篇文章会给你答案,继续看下去吧~ 微信公众号视频大小限制多少 当写公众号文章时,我们 ...
- 使用MATLAB读取视频并获取视频信息、分帧保存
题外话:初学MATLAB,是因为跟着老师做项目,与MATLAB机器学习相关,包含了智能信息处理,是从前未接触的领域.因此,想写博客来记录自己的学习进度.老师安排的第一次任务为:用MATLAB读取视频, ...
最新文章
- centos删除系统自带的httpd
- 汇编程序设计与计算机体系结构软件工程师教程笔记:函数、字符串、浮点运算
- mysql免安装教程
- Oracle数据库的轻松干净卸载
- 数据中心建设流程附带建设标准(推荐收藏)
- 安卓线程相关 HandlerThread Handler Thread Looper Message Runnable
- [51 nod 1238] 最小公倍数之和 V3(杜教筛)
- LeetCode 1773. 统计匹配检索规则的物品数量
- 电压压力蕊片_一文让你知道什么是压力变送器
- Python简易验证码生成程序
- 2018北语c语言程序2答案,北语21春《JAVA语言程序设计》作业2题目【标准答案】...
- ios 数组中的字典排序_iOS开发——根据数组中的字典中的某一元素排序
- 机器人把大龙拉出来_英雄联盟之我的电竞梦
- excel之快速输入带方块的对号和错号
- 浅谈JPA一:JPA是什么?
- hbase数据库scan操作_HBase scan命令详解
- 论实体图书馆的馆线制改革
- SDUT - 表达式语法分析——递归子程序法
- Java内存回收程序可否在指定的时间释放内存对象
- STM32cubemx——超声波测距
热门文章
- 如何给微信头像加个圣诞帽
- 贝思外贸软件-支持多种方式登录
- 使用vue-element-admin管理后台 更改浏览器图标
- 手机浏览器服务器重置怎么办,怎么能把手机重置路由器? | 192.168.1.1手机登陆...
- 如何在电脑上录制本机播放的音频
- matlab中男女变声变调,变声软件哪个好-怎样让男女声进行变换操作
- 旅行必备的地图,三分钟看懂方位图~
- 笔记本使用久了键盘脏东西怎么清理?笔记本电脑如何清洁键盘?
- Global.asax全局文件应用
- 非常实用的微信新功能,你都知道如何用吗?