背景分析
互联网的更新换代过程不断加快,将摄像头进行网络直播的应用程序和场景也越来越广泛,此过程需要将普通的安防摄像头的视频转到公网流媒体服务器,公网流媒体服务器再提供流格式转换,转成RTSP、RTMP、HTTP-FLV、HLS等可以Web、微信等直接播放的格式。
目前国内各种摄像头最常见的接入就是通过GB28181协议。
该协议是摄像头、NVR或其他视频平台等设备端主动向上级注册并保活的,因此设备端可以不需要固定的公网IP,局域网中的设备、4G网络等网络环境下的设备都可以通过GB28181主动注册到公网的服务器上。
EasyGBS视频接入后自动停止传输问题
最近在做EasyGBS国标GB28181对接华为vcn智能安防信息服务平台时遇到一个奇怪的现象,就是华为VCN平台接入到EasyGBS后,视频播放大概1分钟左右视频就自动停止传输了,而这个现象在我们国标GB28181对接海康、大华、宇视等平台时并没有出现这种情况。
问题分析
于是我们在EasyGBS平台端进行了抓包,发现了一个现象:
从上面我们发现我们已经向华为平台回复了ACK,但好像华为VCN平台并没有收到,还在反复不断回复SIP/SDP消息,回复几次之后,就停止了重发回复,后面也就将流断开了;
理解一下,我们通常情况下,消息的一发一收算做是一个完整的来回,而这里,华为VCN平台将整个国标GB28181的INVITE/SDP/ACK三个当做一个整体消息来回,而这整个来回都是以CSeq来做区分的;
问题解决
基于以上问题,我们发现EasyGBS在这个过程中将整个INVITE/SDP/ACK的CSeq值保持一致,就可以完美解决此问题了。