本文转自: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交互流程

  1. 启动EasyGB28181Server, 接受摄像机的注册;
  2. EasyGB28181Server将接收到的摄像机信息写入到Redis的设备列表;
  3. 与摄像机维持心跳;
  4. 打开网页客户端,即可看到所有的设备列表;
  5. 单击列表中的任一设备, EasyDSS则向EasyGB28181服务器请求音视频;
  6. EasyGB28181Server在收到EasyDSS的请求后,在Redis中找到负载最小的EasyGB28181StreamServer;
  7. EasyGB28181Server向找到的EasyGB28181StreamServer发送接收摄像机流的请求
  8. EasyGB28181StreamServer返回自身的外网IP和收流的端口
  9. EasyGB28181Server通知摄像机向EasyGB28181StreamServer的IP和Port发送音视频流
  10. EasyGB28181StreamServer收到摄像机的音视频后, 将PS流转换为ES流,再转换为RTMP协议,传到EasyDSS;
  11. EasyDSS再将RTMP流转发给网页客户端;

至此,EasyGB28181Server + EasyGB28181StreamServer + EasyDSS的整个流程完成;

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

EasyDarwin支持GB28181协议开发的更多相关文章

  1. NodeJS版本EasyDarwin开源流媒体服务器开发心得

    title: Node版本EasyDarwin开发心得 date: 2018-03-27 22:46:15 tags: 年后着手Node版本EasyDarwin的开发工作,截止到今天2018年03月2 ...

  2. 让Asp.net mvc WebAPI 支持OData协议进行分页查询操作

    这是我在用Asp.net mvc WebAPI 支持 OData协议 做分页查询服务时的 个人拙笔. 代码已经开发到oschina上.有兴趣的朋友可以看看,欢迎大家指出不足之处. 看过了园子里的几篇关 ...

  3. WebSocket协议开发

    一直以来,网络在很大程度上都是围绕着HTTP的请求/响应模式而构建的.客户端加载一个网页,然后直到用户点击下一页之前,什么都不会发生.在2005年左右,Ajax开始让网络变得更加动态了.但所有的HTT ...

  4. Qt 5.4正式发布!引入WP,支持HTML5混合开发

    北京时间12月11日消息,Digia全资子公司The Qt Company在其 官方博客上宣布,正式发布Qt 5.4,支持HTML5混合开发,引入对于Windows Phone的支持,以及众多跨桌面. ...

  5. netty(4)高级篇-Websocket协议开发

    一.HTTP协议的弊端 将HTTP协议的主要弊端总结如下: (1) 半双工协议:可以在客户端和服务端2个方向上传输,但是不能同时传输.同一时刻,只能在一个方向上传输. (2) HTTP消息冗长:相比于 ...

  6. netty高级篇(3)-HTTP协议开发

    一.HTTP协议简介 应用层协议http,发展至今已经是http2.0了,拥有以下特点: (1) CS模式的协议 (2) 简单 - 只需要服务URL,携带必要的请求参数或者消息体 (3) 灵活 - 任 ...

  7. 真正实现Netty私有协议开发

    首先<Netty权威指南>私有协议开发那一章的样例代码是编译不通过的(但是这丝毫不影响本书的价值)处理方案可以参考:http://www.itnose.net/detail/6112870 ...

  8. Python内置的urllib模块不支持https协议的解决办法

    Django站点使用django_cas接入SSO(单点登录系统),配置完成后登录,抛出“urlopen error unknown url type: https”异常.寻根朔源发现是python内 ...

  9. 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://) ...

随机推荐

  1. Android修改包名的方法,简单粗暴。

    几分钟之内,简单粗暴的修改包名! 序:Android的新手玩家可能对修改包名这件事情很是烦恼,我这里给出一个最快的修改包名的方法,简单粗暴,喜欢的可以收藏一下. 开始修改 第一步:修改自己app mo ...

  2. ASP.NET MVC创建静态页

    1.在MVC下新建一个类:StaticPageHelper public class StaticPageHelper { /// <summary> /// 根据View视图生成静态页面 ...

  3. svn安装配置使用小总结

    1svn:版本控制系统服务端与客户端协作服务端:subversion客户端:eclipse_svn_site-1.10.5.zip插件1安装问题:    1subversion版本过高    会出现版 ...

  4. Codeforces Gym 101194C Mr. Panda and Strips(2016 EC-Final,区间DP预处理 + 枚举剪枝)

    题目链接  2016 EC-Final 题意  现在要找到数列中连续两个子序列(没有公共部分).要求这两个子序列本身内部没有重复出现的数.   求这两个子序列的长度的和的最大值. 首先预处理一下.令$ ...

  5. Codeforces 739B Alyona and a tree(树上路径倍增及差分)

    题目链接 Alyona and a tree 比较考验我思维的一道好题. 首先,做一遍DFS预处理出$t[i][j]$和$d[i][j]$.$t[i][j]$表示从第$i$个节点到离他第$2^{j}$ ...

  6. 利用Jdk 6260652 Bug解析Arrays.asList

    在java.util.ArrayList源码中: c.toArray might (incorrectly) not return Object[] (see 6260652) 产生疑惑: 附上Jav ...

  7. Windows Server 2008 IE 无法调整安全级别

    开始”/“程序”/“管理工具”/“服务器管理器”命令,在弹出的服务器管理器窗口中,找到“安全信息”设置项,单击其中的“配置IE ESC”选项,打开如下图所示的IE增强安全配置窗口.

  8. Tiny4412 学习

    平台: Tiny4412ADK + S700 + 4GB FlashU-boot: 友善之臂提供的开源U-boot Linux: linux-3.0.31 Android: android_4_1_2 ...

  9. ef SaveChanges()报"更新条目时出错,有关详细信息请参见内部异常"

    报这个错误是因为表没有设置主键,设完主键后再重新更新Entity,就可以添加了

  10. 同步I/O 和 异步I/O

    所谓同步I/O是指在调用ReadFile.WriteFile等函数进行输入输出操作时,系统完毕了输入输出ReedFile.WriteFile才返回. 在操作系统进行I/O操作的过程上,用户态线程不能运 ...