国标GB28181协议EasyGBS视频平台TCP主动模式拉流异常情况修复

EasyGBS是基于国标GB28181协议的视频平台,可支持视频直播、录像、云存储、检索与回放、云台控制、告警上报、语音对讲等功能。EasyGBS平台功能全面、综合性强、视频能力灵活,能够涵盖所有视频监控领域的需求,已经在大量的项目中落地应用,如明厨亮灶、平安乡村、雪亮工程等。

 

EasyGBS平台可以设置三种拉流模式,UDP、TCP主动、TCP被动。

1)UDP:
服务端监听UDP端口,通过INVITE信令告知设备端口,设备主动向服务端发起流传输。

2)TCP被动:
服务端监听TCP端口,通过INVITE信令告知设备端口,设备向服务端发起流传输。

3)TCP主动:
设备端告知服务端监听的TCP端口情况,服务端主动向设备拉流,但是此种场景较少。

 

在某用户的项目中,EasyGBS作为上级平台,下级设备拉流设置为TCP被动,那么相对应上级EasyGBS要设置TCP主动模式拉流,但是在用户现场,则是一直拉流超时报错,于是我们对此情况进行了排查。查看主动模式拉流代码是否存在问题。

TCP主动模式中,EasyGBS需要向设备端发送INVITE消息,等待收流前发送SYN消息与下级建立连接,而现场则在发送SYN的时候,一直报端口占用(如下图)错误,于是我们分析是在发送SYN之前,程序已经对本次的拉流端口进行监听了。

 

查看代码发现,在拉流的时候,判断主动模式未成功,进入了TCP被动模式中,所以一直无法使用TCP主动拉流,修改后如下图:

 

修改后,上述问题已经成功解决。

 

EasyGBS强大的视频能力既可以作为业务平台,也能作为视频能力平台进行调用。通过GB28181标准协议实现平台之间的级联,可实现与其他平台系统的数据共享共用,在应用场景中达到视频资源汇聚、协同监督、平台联动等目的,感兴趣的用户可以前往演示平台进行体验或部署测试。

posted on 2022-06-24 17:35  EasyGBS  阅读(284)  评论(0编辑  收藏  举报