node.js 实现html5视频播放截图
来源:互联网 发布:网络管理培训 编辑:程序博客网 时间:2024/05/20 20:03
最近在做一个视频会议项目相关的预研,要实现桌面端的视频播放和截图等。
所有的js , html5 , css,electron 的技术对我来说都是全新的技术点,所以在开始前请先了解这些基本的语法和框架。
考虑到前期的投入时间短,技术点多,所以实现选择的是一个做桌面应用的的框架Electron。不打算部署B/S架构。直接在前端中用html5的video来实现,很简单,后期再考虑用Ext.js等框架来做。
先简单实现:
html:
<div id="video_area"> <!--video的样式可以自定义 --> <link rel="stylesheet" type="text/css" href="../../css/video.css" /> <video id="video" autoplay="autoplay" style="width:100%;height:100%"> <!--本地测试一个视频,可以改为其他网络地址,但是直接的rtsp的源是不支持的,需要转换,这个后面在研究通过ffmpeg怎么转换之类的。--> <source src="./test.mp4" type='video/mp4'/> 你不支持这个视频播放! </video> </div> <div id="foot"> <link rel="stylesheet" type="text/css" href="../../css/function.css" /> <button id="home_btn" onclick="return Exit_function()" style="margin-top:5px;margin-left:15px;border-radius:20px;height:50px;width:12%;">主界面</button> <button id="record_btn" onclick="return start()" style="height:50px;width:16%;;font-size:15px ">录像</button> <button id="shoot_btn" onclick="return shoot()" style="height:50px;width:16%;;font-size:15px ">截屏</button> <button id="dial_btn" onclick="show_hide()" style="height:50px;width:16%;;font-size:15px ">拨号盘</button> <button id="address_book_btn" onclick="" style="height:50px;width:16%;;font-size:15px ">通讯录</button> <button id="back_btn" onclick="return Exit_function()" style="margin-top:5px;margin-right:15px;float:right;border-radius: 20px;height:50px;width:12%;">返回</button> </div>
截图按键绑定shoot函数,通过js中的shoot来实现图片保存到本地。
> /*视频截图 */ shoot = function() {> var player = document.getElementById("video");> var canvas = document.createElement("canvas");> canvas.width = 500;> canvas.height = 400;> canvas.getContext('2d').drawImage(player, 0, 0, canvas.width, canvas.height);> var img = document.createElement("img");> img.src = canvas.toDataURL('image/png');> > console.log(img.src);> console.log("shoot cut one!");> > //文件名> var filename = 'image_' + (new Date()).getTime() + '.' + 'png';> > //去掉前缀信息的图片内容> var base64Data = img.src.replace(/^data:image\/\w+;base64,/, "");> > var pictureBuff = new Buffer(base64Data, 'base64');> > //判断目录是否存在,不存在则创建> fs.exists(__dirname, function(exists) {> var ret = exists ? ret = '文件夹存在' : '文件夹不存在';> console.log(ret);> if (exists) {> > } else {> fs.mkdir(__dirname + m_dir, function(err) {> if (err) {> console.log("创建目录失败!");> } else {> console.log("创建目录成功!");> }> });> }> });> > //将图片数据写入文件> fs.writeFile(path.join(__dirname, filename), pictureBuff, function(err) {> if (err) {> console.log("保存失败");> alert("保存失败");> } else {> console.log("保存成功!");> alert("截图" + filename + "保存成功!");> }> }); }
后期可以修改把目录设置为配置文件中读取。
当前是HTML中读取本地的视频资源,通过按键截图,并把截图绘制到canvas上,并输出到文件。最终保存。
阅读全文
0 0
- node.js 实现html5视频播放截图
- js+HTML5实现视频截图的方法
- html5视频截图实现
- HTML5实现视频播放
- html5实现视频播放<video>
- canvas与html5实现视频截图功能
- 使用AVPlayer播放m3u8视频时,实现视频截图
- js实现视频播放器
- 通过(Node Js||.Net)基于HTML5的WebSocket实现实时视频文字传输(上)
- 通过(Node Js||.Net)基于HTML5的WebSocket实现实时视频文字传输(上)
- 通过(Node Js||.Net)基于HTML5的WebSocket实现实时视频文字传输1
- 用HTML5实现音乐播放器和视频播放器
- html5 websocket + node.js 实现网页聊天室
- surfaceview播放视频截图黑屏
- Android播放网络视频截图
- SurfaceView播放视频的截图
- android播放网络视频截图
- JS实现HTML5音频播放自定义UI
- vb.net注册表基本操作
- [effectiv c++]条款39:明智而审慎地使用private继承
- 文档对象模型DOM
- IntelliJ IDEA 2016&2017注册方法和注册码
- 三种纯CSS实现三角形的方法
- node.js 实现html5视频播放截图
- JSP中的include动作元素与include指令区别
- 第三周项目2
- ionic 创建新项目,在ionic start时遇到的问题及npm install
- Depth-first Search -- Leetcode problem104. Maximum Depth of Binary Tree
- java文件下载中Content-disposition的定义
- Leetcode之Search in Rotated Sorted Array 问题
- Python
- 【NOIP2012】疫情控制