首页 > 其他分享 >js 操作视频帧

js 操作视频帧

时间:2023-01-22 13:00:29浏览次数:55  
标签:视频 canvas dataURL setAttribute height width video 操作 js

MDN https://developer.mozilla.org/zh-CN/docs/Web/API/Canvas_API/Manipulating_video_using_canvas

function getVideoBase64(url) {
	return new Promise(function(resolve, reject) {
		let dataURL = '';
		let video = document.createElement("video");
		video.setAttribute('crossorigin', 'anonymous'); //处理跨域
		video.setAttribute('src', url);
		video.setAttribute('width', 400);
		video.setAttribute('height', 240);
		video.setAttribute('controls', 'controls');
		video.currentTime = 7  //视频时长,一定要设置,不然大概率白屏
		video.addEventListener('loadeddata', function(e) {
			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); //绘制canvas
			dataURL = canvas.toDataURL('image/png'); //转换为base64
			var img = document.createElement("img");
			img.src = dataURL
			video.setAttribute('poster', dataURL);
			resolve(dataURL);
		});
	})
}

getVideoBase64(src).then(res=>{
	img.src = res  //你懂的(@——_——@)
})

标签:视频,canvas,dataURL,setAttribute,height,width,video,操作,js
From: https://www.cnblogs.com/sqmw/p/17064379.html

相关文章

  • dart遍历的时候操作list
    实际上,在遍历的时候,list对应的内存是被锁住的Listlist=[1,2,3,4];//这里使用了箭头函数,后面的表达式为true时会删除当前值list.removeWhere((value)=>value=......
  • sql base nodejs py go操作基本的db
    constmysql=require('mysql2');constconnection=mysql.createConnection({host:'localhost',user:'root',password:'root',database:'mybatis_pl......
  • 未备案域名解析至腾讯云服务器就直接封停?腾讯云的蜜汁操作让人无语
    按监管要求中国服务器绑定域名务必得到工信部备案,如果把未备案的域名解析到国内服务器上那么就会阻断访问。昨日发现自己的腾讯云服务器遭受封停,封停原因是别人将未备案的......
  • JS_11_操作form对象
    通过操作form对象,咱可以动态进行数据提交。  一、form对象获取form对象://使用id值获取form对象varfrm=document.getElementById('frm_id');//使用name值获......
  • 郭总云IOT Studio 1.0 演示视频拍摄方案
    标题:自建云平台,”潮“玩ESP8266标签:物联网IOTESP8266微信小程序云平台视频大纲上实物照片和和代码花絮;设备照:(面包板和裸板设备的合照;裸板设备各个角度的微距;给交......
  • js 插入节点
    apendChildelement.appendChild(aChild)如果sp2没有下一个节点,则它肯定是最后一个节点,则sp2.nextSibling返回null,且sp1被插入到子节点列表的最后面(即sp2后面)。......
  • javascript: node.js
     consthttp=require("http");http.createServer(function(request,response){response.writeHead(200,{'Content-type':'text/html'});response.end('<h1>......
  • MIT——6.828:操作系统工程——第3章:实验三:用户环境
    在本实验中,我们将实现运行受保护的用户模式环境(即“进程”)所需的基本内核设施。我们将增强JOS内核,设置数据结构来跟踪用户环境,创建单个用户环境,将程序映像加载到其中,并开始......
  • MongoDB cmd CRUD操作 对照SQL
    问题​​参考官方文档​​使用MogoDB你就要熟悉他的常用cmd命令,增删改查,聚合多表查询等基本操作,本片博客旨在教会大家快速上手MogoDB,对其有基本了解,会对照Oracle的SQL查询......
  • Vlc播放rtsp视频
    Vlc播放rtsp视频,网上的例子不少,我看后觉得有点不足的地方,就是他们没有设置播放rtsp视频时的参数,参数设置对播放网络视频是很重要的,如果设置不当,或不设置,可能你的程序就播放......