EasyDarwin支持GB28181协议开发
本文转自:http://blog.csdn.net/gavin1010/article/details/77926853
EasyGB28181服务器开发
背景
当前的安防行业,除了私有协议,普遍使用的是Onvif 和 GB/T28181标准协议进行通讯;
两种不同的协议决定了适用的环境:
Onvif倾向于局域网环境,因为音视频流是走RTSP,所以需要主动的访问前端摄像机或NVR;
GB/T28181是摄像机主动注册,适用于服务器在公网,而摄像机或NVR在局域网的环境;
目前EasyNVR采用的是Onvif协议接入云平台, 而EasyGB28181Server则是以GB/T28181方式接入云平台;
架构
使用EasyGB28181Server和EasyDSS组建云平台的环境
EasyDSS + EasyGB28181Server + EasyGB28181StreamServer + Redis
EasyDSS不用多说, 详见http://www.easydss.com
EasyGB28181Server 负责接收前端摄像机的注册,维护心跳,及向摄像机发送控制指令;
EasyGB28181StreamServer: 负责接收前端摄像机发送过来的音视频流,将PS流解析为ES流,再转换为RTMP协议推送到EasyDSS;
Redis: 负责摄像机列表的存储,国标服务器、国标流媒体服务器及EasyDSS服务器信息的存储;
EasyGB28181Server交互流程
- 启动EasyGB28181Server, 接受摄像机的注册;
- EasyGB28181Server将接收到的摄像机信息写入到Redis的设备列表;
- 与摄像机维持心跳;
- 打开网页客户端,即可看到所有的设备列表;
- 单击列表中的任一设备, EasyDSS则向EasyGB28181服务器请求音视频;
- EasyGB28181Server在收到EasyDSS的请求后,在Redis中找到负载最小的EasyGB28181StreamServer;
- EasyGB28181Server向找到的EasyGB28181StreamServer发送接收摄像机流的请求
- EasyGB28181StreamServer返回自身的外网IP和收流的端口
- EasyGB28181Server通知摄像机向EasyGB28181StreamServer的IP和Port发送音视频流
- EasyGB28181StreamServer收到摄像机的音视频后, 将PS流转换为ES流,再转换为RTMP协议,传到EasyDSS;
- EasyDSS再将RTMP流转发给网页客户端;
至此,EasyGB28181Server + EasyGB28181StreamServer + EasyDSS的整个流程完成;
获取更多信息
Copyright © EasyDarwin.org 2012-2017

EasyDarwin支持GB28181协议开发的更多相关文章
- NodeJS版本EasyDarwin开源流媒体服务器开发心得
title: Node版本EasyDarwin开发心得 date: 2018-03-27 22:46:15 tags: 年后着手Node版本EasyDarwin的开发工作,截止到今天2018年03月2 ...
- 让Asp.net mvc WebAPI 支持OData协议进行分页查询操作
这是我在用Asp.net mvc WebAPI 支持 OData协议 做分页查询服务时的 个人拙笔. 代码已经开发到oschina上.有兴趣的朋友可以看看,欢迎大家指出不足之处. 看过了园子里的几篇关 ...
- WebSocket协议开发
一直以来,网络在很大程度上都是围绕着HTTP的请求/响应模式而构建的.客户端加载一个网页,然后直到用户点击下一页之前,什么都不会发生.在2005年左右,Ajax开始让网络变得更加动态了.但所有的HTT ...
- Qt 5.4正式发布!引入WP,支持HTML5混合开发
北京时间12月11日消息,Digia全资子公司The Qt Company在其 官方博客上宣布,正式发布Qt 5.4,支持HTML5混合开发,引入对于Windows Phone的支持,以及众多跨桌面. ...
- netty(4)高级篇-Websocket协议开发
一.HTTP协议的弊端 将HTTP协议的主要弊端总结如下: (1) 半双工协议:可以在客户端和服务端2个方向上传输,但是不能同时传输.同一时刻,只能在一个方向上传输. (2) HTTP消息冗长:相比于 ...
- netty高级篇(3)-HTTP协议开发
一.HTTP协议简介 应用层协议http,发展至今已经是http2.0了,拥有以下特点: (1) CS模式的协议 (2) 简单 - 只需要服务URL,携带必要的请求参数或者消息体 (3) 灵活 - 任 ...
- 真正实现Netty私有协议开发
首先<Netty权威指南>私有协议开发那一章的样例代码是编译不通过的(但是这丝毫不影响本书的价值)处理方案可以参考:http://www.itnose.net/detail/6112870 ...
- Python内置的urllib模块不支持https协议的解决办法
Django站点使用django_cas接入SSO(单点登录系统),配置完成后登录,抛出“urlopen error unknown url type: https”异常.寻根朔源发现是python内 ...
- iOS App 不支持http协议 App Transport Security has blocked a cleartext HTTP (http://)
目前iOS已经不支持http协议了,不过可以通过info.plist设置允许 App Transport Security has blocked a cleartext HTTP (http://) ...
随机推荐
- Mysql varchar长度问题
http://dinglin.iteye.com/blog/914276 http://www.cnblogs.com/fakis/archive/2011/03/07/1976532.html ...
- Linux(三) 一些命令
系统信息 arch 显示机器的处理器架构(1) uname -m 显示机器的处理器架构(2) uname -r 显示正在使用的内核版本 dmidecode -q 显示硬件系统部件 - (SMBIOS ...
- Microsoft JET Database Engine(0x80004005)未指定错误的解决方法
今天在给一台新的电脑安装IIS,安装成功,建立虚目录后,运行一个已经在别的机器上的正确的asp文件,就是不成功,提示:Microsoft JET Database Engine (0x80004005 ...
- mac 安装 redis
安装命令 brew install redis 开机启动redis命令 $ ln -sfv /usr/local/opt/redis/*.plist ~/Library/LaunchAgents 使用 ...
- Sublime3破解教程[转载]
sublime text 3 这个IDE相信很多人认识,尤其是python的.相对pycharm ide而言,速度快.界面清爽等优点,下面就分享下各个版本的破解方法 用UltraEdit等编辑器打开s ...
- 怎样推断server为虚拟机还是物理真机?
dmidecode |grep -A20 "Memory Device$"|sed -n -e'/Locator/p' -e '/Size/p'|grep -v "Ban ...
- iOS_GET_网络请求
同步的 get 请求 #pragma mark - 同步的 get 请求 - (IBAction)GETSynButtonDidClicked:(UIButton *)sender { // 1.网址 ...
- Cardboard虚拟现实开发初步(一)
Google Cardboard 虚拟现实眼镜开发初步(一) 虚拟现实技术简单介绍 不得不说这几年虚拟现实技术逐渐火热,伴随着虚拟现实设备的价格迅速平民化,越来越多的虚拟现实设备来到了我们眼前,也因此 ...
- 效率提升最重要的原则 - Doing one thing at a time
前段时间流行的时间管理方法 - url=NotLrz-4f4eCgENFAECrXNw88mSLoJ2Rc2MrkP4aes1yQvPjNQRlmdYcbz9oP9U8JoBzJeY-DSUhhInx ...
- jQuery--基础(操作标签)
jQuery-样式操作 .css() 可以直接使用来获取css的值 .css("color") 使用方法,如果想给查找到的标签添加样式: .css("colo ...