一、GB28181流媒体服务方案
GB28181流媒体服务器是提供流转发服务,负责将GB28181设备/平台推送的PS流转成ES流,然后提供RTSP、RTMP、FLV、HLS多种格式进行分发,实现web浏览器、手机浏览器、微信、PC客户端等各终端无插件播放。
流媒体服务器对外提供HTTP API接口,通过接口可以获知流媒体转发服务的运行状态信息,转发会话信息,服务器配置和版本信息等;
GB28181流媒体服务器提供以下功能:
1. 接收GB28181设备或者平台注册、注销功能,管理所有注册的28181设备或者平台。
2. 接受和处理GB28181设备的推流;
3. 接受和处理GB28181接入服务器的推流请求;
4. 接受和处理GB28181接入服务器的断开推流请求;
5. 接收GB28181设备或者平台心跳功能,心跳超时能将内存里面的管理设备或者平台下线回调事件功能;
6. 实时流媒体处理,PS(TS)转ES;
7. 实时快照、视频数据获取;
8. 设备状态监测,获取GB28181设备或者平台的资源列表功能,并对获取的到设备列表进行管理,设备管理可以达到1000路以上;
9. 对GB28181设备或者平台进行系统目录订阅,接收到消息根据事件回调出接口;
10. 对GB28181设备或者平台进行历史视频点播开始和结束功能,并对每路设备实时视频码流状态进行管理,将码流回调到上层接口;
11. 对GB28181设备或者平台进行历史视频进行下载功能,并对每路设备实时视频码流状态进行管理,将码流回调到上层接口。
12. 提供RTSP、RTMP、HTTP-FLV、HLS等多种协议流输出;
13. 音视频转码;
14. 对外提供服务器获取状态、信息,控制等http API接口;
15. 对GB28181设备或者平台进行PTZ控制功能,支持向上、向下、向左、向右、放大、缩小、聚焦、预置位设置、预置位调用、预置位删除等功能。
16. 对GB28181设备或者平台进行录像查询功能
二、GB28181流媒体服务架构图
三、基于GB28181协议的流媒体点播详细流程
LiveGBS分为接入管理服务LiveSIPCMS和流媒体服务LiveSIPSMS。
1、 接入服务器LiveSIPCMS发送Invite请求
接入服务器LiveSIPCMS向流媒体服务器LiveSIPSMS发送Invite请求,请求流媒体服务返回携带SDP 消息体,消息体中
描述了媒体服务器LiveSIPSMS接收媒体流的IP、端口、媒体格式等内容;
Invite请求代码如下:
2 、流媒体服务LiveSIPSMS接受Invite请求处理并ACK应答
我们在SDP消息体中提供了两种流传输方式,分别是TCP和UDP,通过Invite请求所带的 “rtpovertcp ”参数来控制,TCP方式因为其不丢包的传输方式在GB28181设备推流到公网服务器的方案中得以广泛应用.
3 、接入服务器接收ACK应答并Invite请求设备开始推流
在InviteDevice请求完成后,我们在返回Response处理过程中做过一次特殊处理,即:如果TCP拉流时发现设备拉流应答中返回其推流模式依然是’RTP/AVP’的UDP模式,我们认为其设备不支持TCP模式,从而向上层返回700,不支持的流媒体传输方式。
4 、Invite设备正常返回200应答并传递给流媒体服务器
5 、流媒体服务接受拉流请求成功应答
至此,整个拉流过程已经完成,成功通过LiveGBS流媒体软件,使用GB28181协议获取到监控的视频流转成可以在物联网上直播的RTSP、RTMP、HTTP-FLV、HLS格式
四、客户端平台的实现
是国家针对安防领域制定的一个通信协议标准,目的是解决不同平台、不同设备间通信协议不统一的问题。GB28181标准从2011制定的第一个版本开始,到最近的2016版本,制定的协议内容越来越细,越来越完善,这个标准在安防领域已经用得非常广泛。虽然是统一了协议标准,但是各个厂家都是按照自己的理解去研发自己的平台,实现出来的产品总有一些差异性,并且采取封闭策略,平台软件只用在自己项目中,不提供对外使用,而下游厂家、工程商在项目对接的时候经常遇到各种各样的问题。很多刚接触国标的开发员由于不熟悉国标指令,都想找到一款免费的国标测试平台软件来帮助代码调试和测试。目前,互联网上也有一些类似的国标测试软件,但是很多都不太稳定或者部署起来比较困难,并且大部分只对2011版本的功能作了支持,而2016年标准里的功能则支持得很少。而QuickGBLink开发的这个国标平台将会为那些苦苦寻求国标解决方案的开发员、企业提供一个良好的测试平台。