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