在工业物联网的浪潮中,视频监控作为重要的数据源,其接入和管理一直是企业关注的焦点。GB/T 28181作为中国公共安全视频监控联网系统领域的国家标准,为我们提供了一套标准化的视频监控联网解决方案。本文将介绍国标GB28181软件LiteGBS的高效接入和管理。
一、SIP协议
SIP是一种基于文本的协议,它的语法和消息非常类似于HTTP协议,不同之处在于SIP不仅可以用TCP,也可以用UDP封装。SIP采用统一资源定位来指示会话的发起方(From)当前请求的目的地(RequestURL)和最终的接收方(To)。
SIP协议会与许多其它的协议协同工作,如SIP报文内容发送会话描述协议(Session Description Protocol,SDP),SDP协议描述了会话所使用流媒体细节,如:使用哪个IP端口,采用哪种编解码器等等。SIP(会话初始协议)负责建立和管理会话,而RTP(实时传输协议)才是实际承载语音或视频数据的核心。在GB28181协议框架下,联网系统在进行视音频传输和控制时,需要建立两个独立的通道:会话通道和媒体流通道。
二、注册
注册是指设备或系统在加入网络时,向SIP服务器(如FFmpeg这样的SIP用户代理服务器,UAS)进行登记的过程。在这个流程中,设备会向FFmpeg发送一个注册请求。一旦FFmpeg接收到这个请求,它会回复相应的确认消息,从而完成整个设备的注册过程。
三、保活
当用户代理(UA)检测到工作异常时,它应立即向其所属的SIP监控域内的SIP服务器发送状态更新。在系统运行正常的情况下,UA也应定期向同一SIP服务器发送状态报告。这些状态报告遵循IETFRFC3427标准中定义的MESSAGE方法。通过这种周期性的状态报告,可以建立注册服务器与源设备之间的状态监测和心跳机制,以确保系统的稳定运行。
四、数据流
在GB28181协议中,视频流可以是PS流、H.264流或MP4格式,国标流媒体服务器的作用是将这些格式的视频流转封装为ES流,然后通过RTSP、RTMP、FLV、HLS等协议进行分发,以实现在不同终端上的播放。PS流(Program Stream)和ES流(Elementary Stream)是两种不同的视频流格式,它们在视频数据的组织和封装方式上有所区别:
ES流,也称为基本码流,是直接从编码器出来的数据流,可以是编码过的视频数据流(如H.264、MJPEG等),音频数据流(如AAC),或其他编码数据流的统称。ES流由若干个存取单元(AU)组成,每个视频AU或音频AU都是由头部和编码数据两部分组成。1个AU相当于编码的1幅视频图像或1个音频帧。ES流不包含时间戳和音视频同步信息,因此不适合直接用于网络传输。
PS流,也称为节目流,是由PS包组成,而一个PS包又由若干个PES包组成。PS流对ES流进行了两层的封装,添加了同步信息与时钟恢复信息,使得数据流更加适合存储和传输。一个PS包最多可包含具有同一时钟基准的16个视频PES包和32个音频PES包。PS流的包结构是可变长度的,适合于信道环境较好、传输误码较低的场合。常用于DVD视频等存储介质中,也适用于一些网络传输场景。
五、传播方式
GB28181协议规定码流使用RTP包负载,推荐为PS流,也可以是ES流,对于媒体流的传输在原有UDP传输的基础中,增加了主动tcp和被动tcp的方式。
UDP被动是普遍的传输方式。GB28181流媒体服务器监听单个UDP端口,然后发送一个SIP信令(INVITE),其携带的SDP中包含了接收媒体的端口设备端收到信令后,解析该端口,然后设备主动通过UDP向流媒体服务端监听的端口上发送视频流。
TCP主动是由设备端告知服务端自己的媒体流tcp端口,服务端主动去连接设备端的该端口,获取数据,这种场景应用较少,可以忽略。
TCP被动是由流媒体服务器监听单个TCP端口,然后通过SIP信令(INVITE)告诉设备端口,设备主动向当前流媒体服务端发送视频流,基本等同于UDP流。
GB/T 28181协议的实施,使得不同品牌和型号的监控设备能够在同一平台上实现集成和管理,极大地提高了视频监控系统的灵活性和可扩展性。随着技术的发展和应用场景的不断扩展,国标GB28181软件LiteGBS将继续在公共安全视频监控联网系统中发挥其核心作用,为构建更加智能、高效的监控网络提供坚实的技术支撑。