vue实现mp4视频截图

需求:按帧数(时间)截取图片

/*** @description : 视频截图* @param {String} url : 视频地址* @param {Number} currentTime : 视频帧数* @param {download} hasDownload : 是否下载* @result : 返回base64,打开下载则下载*/
export function videoSnapshot(url, currentTime = 1, hasDownload = true) {return new Promise((resolve, reject) => {const canvas = document.createElement('canvas') //  创建canvas 用来截图const video = document.createElement('video') //  创建video 用来存放被截图的视频video.setAttribute('crossOrigin', 'anonymous') //  支持跨域document.body.appendChild(video) //  把视频插入页面里video.style.visibility = 'hidden' //  视频不显示video.setAttribute('src', url) //  设置video路径// 监听视频播放video.onplay = function() {// 暂停video.pause()// 指定播放时间 视频播放的当前位置(以秒计)video.currentTime = currentTime// 设置视频容器的宽高播放 如果设置一项会自动按照比例生成  这里是高固定,宽自动video.height = video.clientHeight// 设置canvas的截图大小,如果没给定宽高值会取视频容器的宽高canvas.width = video.clientWidthcanvas.height = video.height/*  使用定时器为了视频跳转到某一帧的时候视频进行缓冲,等视频加载完成之后进行截图如果截图是黑屏说明视频未加载完成就开始截屏了*/setTimeout(() => {//  使用canvas进行绘画 视频画面canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height)let b64 = canvas.toDataURL('image/png')if(hasDownload) {let link = document.createElement('a')link.href = b64link.setAttribute('download', '视频截图.png')link.style.display = 'none'document.body.appendChild(link)link.click()}resolve(b64)document.body.removeChild(video)}, 1000)}// 当视频准备就绪的时候 video.onloadeddata = () => {// 播放它video.play()}})
}

vue实现mp4视频截图相关推荐

  1. vue前端video视频截图与录影功能的简单实现

    目录 截图:截取图片后可以进行涂鸦编辑,并能清除,撤销. 录影:点击按钮后录制10s左右的视频文件. 文件上传服务器示例 最近项目开发中,需要实现在video 视频上截图,录影后将文件上传到阿里云服务 ...

  2. 基于Vue+canvas实现视频截图功能

    开发过程中遇到一个实际问题,上传的视频需要提供视频封面(视频封面必填).封面可以自己制作并上传,但是这样需要脱离网站,用其他方式制作封面,使用体验并不友好,因此第一个想到的方案是:上传视频时,若人员未 ...

  3. 多文件断点续传,上传视频自动转MP4和截图,图片格式转换

    功能:自己写的一个组件,根据调用传过来的的fileType判断是上传视频还是图片还是音频.可以选择多文件上传,同时也可以暂停,继续,取消,断网重连续传.如果上传的是视频,会自动转为mp4,自动截取一帧 ...

  4. vue实现视频截图(webRTC、屏幕快照)笔记

    使用到的第三方库 canvas,html2canvas,kscreenshot 代码 //安装插件 npm install kscreenshot //在截图的页面引入 import kscreens ...

  5. js截屏 video_canvas与html5实现视频截图功能

    这段时间一直在研究canvas,突发奇想想做一个可以截屏视频的功能,然后把图片拉去做表情包,哈哈哈哈哈哈~~ 制作方法: 1.在页面中加载视频 在使用canvas制作这个截图功能时,首先必须保证页面上 ...

  6. js截屏 video_用原生JS和html5进行视频截图并保存到本地

    Video视频截图 body, h1, h2, p { margin:0; padding:0; } html { font-family:"微软雅黑"; background-c ...

  7. [html] H5播放的video视频,如何实现对视频截图?

    [html] H5播放的video视频,如何实现对视频截图? <video controls src="./assets/demo.mp4" width="400& ...

  8. ffmpeg 截图 java_Java Web 中使用ffmpeg实现视频转码、视频截图

    视频网站中提供的在线视频播放功能,播放的都是FLV格式的文件,它是Flash动画文件,可通过Flash制作的播放器来播放该文件.项目中用制作的player.swf播放器. 多媒体视频处理工具FFmpe ...

  9. 【Javascript】【视频录制】通过video标签和canvas实现视频截图录制和下载

    录像原理 创建一个画布,video标签本身不具备记录画面功能,所以我们需要通过Canvas来达成这个功能 创建一个录制器,与CanvasStream绑定,这样画布绘制什么,录制器都能触发回调 创建一个 ...

最新文章

  1. 不太平凡的2020、平凡的我
  2. Ansible(四)ansible roles实现(apache+haproxy+keepalived)负载均衡+高可用
  3. mysql 根据总分排名
  4. 隐马尔可夫模型通俗导论
  5. mx250显卡天梯图_mx250显卡天梯图_2020年最新笔记本显卡天梯图,看看你的显卡排在哪!...
  6. 重装系统时提示在引导修复时检测到错误怎么办
  7. 零基础python教程视频
  8. 计算机硬件系统测试,介绍几个常用的电脑硬件检测工具
  9. SQL SERVER代理的权限设置
  10. 十分钟理解线性代数的本质_十分钟理解线性代数的本质
  11. 汽车驾驶 - 道路交通标线和标志
  12. Oracle (04)日期类型.约束
  13. 告别户外弱网困扰,4G多卡聚合设备增强弱网环境下应急救援信号
  14. iPhone 12 发布了
  15. 多规格的商品选择不同的规格值影响其他规格使之不可选
  16. 特斯拉员工年薪曝光:软件工程师 109 万元
  17. oracle ebcdic 转换,使用sqlldr导入EBCDIC格式数据并新增Oracle字符集
  18. 业务:品类和品类管理
  19. javascript-轮播图
  20. 最新『资源分享』IT视频教程

热门文章

  1. android 屏幕长截图,对标iOS?Android 11或无缘屏幕长截图
  2. RDkit&mol2vec :基于逻辑回归的靶标抑制剂活性二分类对比
  3. 《精神论》 有关的范畴
  4. 长春兄弟计算机培训,长春兄弟电脑培训
  5. ionic3+angular5 App项目打包全过程
  6. 安卓android怎么打开方式,安卓手机USB调试在哪 安卓手机怎么打开USB调试
  7. 2.单元格的跨列居中和自动换行
  8. CentOS8用户和组管理
  9. php 字符串转换时间_php 字符串怎么转化为时间
  10. 都说00后是躺平的一代,公司新来的00后把我卷哭了...