目 录javascript
1. 概述... 2php
2. 未来集成到iNeuOS平台演示... 3css
3. iNeuVideo结构... 3html
4. iNeuVideo部署及应用... 3java
5. HTML5终端视频监测代码... 5mysql
6. 基于数据库应用使用效果... 6web
1. 概述sql
iNeuVideo是视频服务组件,主要负责把RTSP的视频流数据转码成WebSocket协议的视频流数据,为终端提供视频监测服务。iNeuVideo后期会集成到iNeuOS工业互联网平台的Web组态(iNeuView)上,拖动组件快速构建视频监测。结合物联网服务(iNeuKernel)采集设备或传感器的数据,造成视频数据+设备数据的总体监测服务。参见《iNeuKernel(物联网核心组件)远程控制标准化设计与实现》,能够实现远程控制。数据库
iNeuVideo如今仅支持RTSP->WebSocket,如今主流摄像头厂家(海康威视等)基本支持RTSP协议,能够很方便的接入视频数据流。后期集成RTSP->RTMP和RTSP->HTTP的协议。基于iNeuVideo服务,其余公司也能够造成本身的产品,后面应用会具体介绍。canvas
应用效果,以下图:
针对视频监测几个协议概念:RTSP、RTMP、HTTP和WebSocket等进行简单介绍:
(1)RSTP、RTMP、HTTP协议共同点,他们都是应用层协议。理论上这三种协议均可以作直播和点播,但直播通常用RTSP和RTMP点播用HTTP。
(2)RSTP、RTMP、HTTP协议区别
HTTP将数据做为文件处理,因此HTTP不是流媒体协议,RTMP和RTSP是流媒体协议。
RTMP是Adobe的私有协议,未彻底公开,RTSP和HTTP是共有协议。
RTMP通常传输flv,f4v格式流,RTSP传输ts,MP4格式流,HTTP没有特定的流。
RTSP通常须要2-3个通道,数据和命令通道分开,RTMP和HTTP在一个通道上传输命令和数据。
WebSocket协议,基于HTML5提供的一种在单个 TCP 链接上进行全双工通信的协议。针对终端与服务端交互应用较普遍。
在线演示:http://demo.ineuos.net (注:服务器比较慢,请耐心等待。自已注册用户,体验系统功能)
视频演示:http://www.ineuos.net/video/iNeuOS%20and%20app.mp4
驱动开发:http://www.ineuos.net/index.php/products/ineukernel-15.html (v2.1版本)
手机APP:http://demo.ineuos.net/app/ineuos_app.apk
视频源通常为RTSP协议,由iNeuVideo转码服务拉取视频流数据,通过代码转发服务向WebSocket链接的终端广播数据,HTML5终端进行数据展现。结构示意,以下图:
iNeuVideo基于.NETCore 3.1版本开发,.NETCore 3.1的安装部署参见:https://dotnet.microsoft.com/learn/dotnet/hello-world-tutorial/install。
iNeuVideo下载:百度网盘下载,包括服务、数据库脚本和HTML5脚本。这是绿化版本的软件,直接下载就能够应用,应用有两种模式:基于命令行和基于数据库。
(1)基于命令行的应用
首先使用管理员模式打开命令行,进入iNeuVideo目录,第一次运行的时候须要执行:dotnet iNeuVideoTool.dll,检测和配置当前系统。
其次输入参数执行:dotnet iNeuVideo.dll rtsp://192.168.101.1:18554/stream1,进行视频转换,视频转换后的WebSocket地址对应:ws:// 192.168.101.1:9091/ineuos/live1,live后边的编号自动增长。以下图:
(2)基于数据库的应用
其余公司可使用iNeuVideo服务组件,基于数据库的应用造成本身的产品,前台业务系统操做数据库能够完成对视频流拉取、转码、推送等全流程操做。
mysql数据库只有一个表:Video,只须要对这个表进行操做,表结构以下:
DROP TABLE IF EXISTS `video`; CREATE TABLE `video` ( `Id` varchar(32) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '主键', `Key` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT 'http://*.*/ineuos/live1,live1就是key.', `VideoSource` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '视频流源地址,通常为rtsp协议。', `VideoSourceProtocol` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '如今支持,包括:rtsp。', `VideoDest` varchar(255) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '视频流目标地址,从VideoSource转码到VideoDest,不须要设置,系统自动生成。', `VideoDestProtocol` varchar(10) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL COMMENT '如今支持,包括:websocket。', PRIMARY KEY (`Id`) USING BTREE, UNIQUE INDEX `Key`(`Key`) USING BTREE ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_bin ROW_FORMAT = Dynamic;
在iNeuVideo\iNeuKernel\ SourceConfig.cfg文件下配置数据库链接信息
以管理员的模式运行【start-win.bat】批处理文件,直接读取数据库的信息进行视频流的操做,不须要其余的操做。
基于MPEG标准的视频编码进行解码,底层使用canvas进行显示,也有其余的JS组件可使用。代码以下:
<!DOCTYPE html> <html> <head> <title>JSMpeg Stream Client</title> <style type="text/css"> html, body {text-align: center;} </style> </head> <body> <canvas id="video-canvas"></canvas> <canvas id="video-canvas1"></canvas> <script type="text/javascript" src="jsmpeg.min.js"></script> <script type="text/javascript"> var canvas = document.getElementById('video-canvas'); var url = 'ws://127.0.0.1:9091/ineuos/live1'; var player = new JSMpeg.Player(url, {canvas: canvas}); var canvas1 = document.getElementById('video-canvas1'); var url1 = 'ws://127.0.0.1:9091/ineuos/live2'; var player1 = new JSMpeg.Player(url1, {canvas: canvas1}); </script> </body> </html>
文章:
《.NET Core开发的iNeuOS工业互联网平台,发布 iNeuDA 数据分析展现组件,快捷开发图形报表和数据大屏》
《[视频演示].NET Core开发的iNeuOS物联网平台,实现从设备&PLC、云平台、移动APP数据链路闭环 》
《.NET Core开发的iNeuOS物联网平台部署树霉派(raspbian),从网关到云端总体解决方案》
《.NET Core开发的iNeuOS物联网平台部署在Ubuntu操做系统,无缝跨平台》
《iNeuOS 物联网云操做系统2.0发布,集成设备容器、视图建模、机器学习三大模块 》
物联网&大数据技术 QQ群:54256083
物联网&大数据合做 QQ群:727664080
联系QQ:504547114
合做微信:wxzz0151