node.js 實現html5視訊播放截圖
最近在做一個視訊會議專案相關的預研,要實現桌面端的視訊播放和截圖等。
所有的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上,並輸出到檔案。最終儲存。
相關推薦
node.js 實現html5視訊播放截圖
最近在做一個視訊會議專案相關的預研,要實現桌面端的視訊播放和截圖等。 所有的js , html5 , css,electron 的技術對我來說都是全新的技術點,所以在開始前請先了解這些基本的語法和框架。 考慮到前期的投入時間短,技術點多,所以實現選擇的是一個
自己動手實現html5視訊播放器倍數播放功能
自己動手實現html5視訊播放器倍數播放功能 <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>阿酷TONY--Tangni&
android視訊播放截圖並製作成gif圖片
導言: 根據文章標題,按三步走,一、視訊播放;二、連續截圖;三、轉換成gif。視訊播放很自然想到用MediaPlayer或者VideoView,但我在這裡踩了幾個坑,寫在這裡也希望別人少走點彎路。首先,是MediaPlayer+SurfaceView的坑,如果只
js實現視訊截圖,視訊批量截圖,canvas實現
## 擷取視訊的某一時間的影象並儲存 利用canvas的繪畫能力畫出視訊某一幀的視訊畫面, 獲得到影象之後轉換成base64影象, 再利用a標籤的實現自動儲存到本地 * html程式碼 ``` html 開始截圖 去下載 ```
html5 websocket + node.js 實現網頁聊天室
1 client: socket.io server: node.js + express + socket.io 一個簡單的聊天室 demo,沒有註冊,內建了一些測試使用者
HTML5呼叫攝像頭+視訊特效+錄製視訊+錄音+截圖+變聲+濾波+音訊視覺化
1.寫在前面 根據最近的學習,寫了一個demo, 可以通過navigator.mediaDevices.getUserMedia()方法呼叫電腦攝像頭,並實現了錄製音訊,錄製視訊,對攝像頭的內容進行截圖下載;通過AudioContext使用web audio
如何使用html5 canvas畫布對本地視訊進行截圖並上傳至伺服器
前端程式碼: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8">
jsp html5 video實現線上視訊播放原始碼,支援IE6,7,8,10,11,谷歌,火狐等瀏覽器
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <% String path = request.getContextPath(); String basePath = request.getSche
Android視訊部分截圖功能實現
最近想用將android視訊接收app上加上螢幕截圖功能,直接在網上查詢截圖程式碼,發現結出來的圖不對勁,視訊視窗變成黑色的了,沒有截圖成功。而且網上大多數的方法都是利用view套件裡的getDrawingCache()函式。我繼續在網上查詢答案,發現有人這樣解
[js高手之路]Node.js實現簡易的爬蟲-抓取博客所有文章列表信息
r.js 目錄 ref 抓取 {} attr 視頻 json clist 抓取目標:就是我自己的博客:http://www.cnblogs.com/ghostwu/ 需要實現的功能: 抓取博客所有的文章標題,超鏈接,文章摘要,發布時間 需要用到的庫: node.js自帶的h
視頻播放截圖及簡要文字介紹——Thunder團隊
es2017 本地 我愛你 wid height 個人 字體大小 各類 str 視頻播放截圖及簡要文字介紹 圖一:團隊Logo ——從此我們有了自己的標誌 圖二:掃描本地書籍 ——可閱讀本地的喜愛書籍 圖三:在本地添加自己喜愛的圖書 ——將自己喜愛的書籍加入書架
node.js實現圖片上傳(包含縮略圖)
http close path return new tde log img thumb 圖片上傳 使用multiparty插件實現上傳 安裝multiparty npm i --save multiparty 代碼實現 const multiparty = requi
js 利用canvas + flv.js實現 視頻流 截屏 、本地下載功能實現,兼容火狐,谷歌, 截屏跨域的坑
font 方案 function can 屬性和方法 load() com DG ren 1 本地視頻截屏(canvsa) <!DOCTYPE html> <html> <head> <meta charset=
Four-operations: 使用node.js實現四則運算程序
任務 stand 設計 soft war 文檔 代碼規範 node 項目 一. 項目基本信息 項目成員: 陳旭欽, 郭鵬燕 項目倉庫: https://github.com/Yanzery/Four-operations 二. PSP2.1表格 PSP2.1 Pers
node——8-node.js 實現 apache 功能
初步實現 apache 功能 var http = require('http'); var fs = require('fs'); // 任意目錄地址 var wwwDir = 'E:/desk/my-pro/QD-practice/node/2/www'; // 1. 建立
phantomjs實現免費線上網頁截圖工具-toolfk程式設計師線上工具網
本文要推薦的[ToolFk]是一款程式設計師經常使用的線上免費測試工具箱,ToolFk 特色是專注於程式設計師日常的開發工具,不用安裝任何軟體,只要把內容貼上按一個執行按鈕,就能獲取到想要的內容結果。ToolFk還支援 BarCode
微信小程式推廣二維碼海報Node.js實現版
引言 最近公司的微信小程式專案由於業務需求需要實現二維碼推廣海報,而小程式的服務端程式碼是用node.js實現的,由於是第一次使用node.js作為服務端來實現圖片的相關處理,不免走了一些坑。所以為了避免大家也像我一樣花費不必要的時間爬坑,就將我再開發過程中遇到的一些過程記錄下來,供大家參考,水平有限,請相
node.js實現傳送郵件功能
準備事項 QQ郵箱設定:進入QQ郵箱->設定->賬戶->POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服務->開啟POP3/SMTP服務,並複製pass祕鑰 安裝nodemailer :npm install nodem
Node.js實現對mysql資料庫的crud時報加密方式錯誤解決方案
本人在學習全棧開發過程中做一個Node的web專案在連線本地MySQL8.0版本的資料庫時,發現Navicat連線不上,它報了一個數據庫的加密方式導致連線不上的錯誤,錯誤如下: MySQL8.0版本的加密方式和MySQL5.0的不一樣,連線會報錯。 解決方法如下: 開啟mysql的命令列進入
Node.js實現支付寶H5支付
1、 建立支付應用 1.1、根據需要選擇介面型別,這裡選擇支付應用。 1.2、選擇使用環境 1.3、簽約當面付(線下支付) 2、 使用alipay-sdk 2.1、 引入服務端SDK模組 npm i alipay-sdk 2.2、 配置app資訊 var AlipaySdk