EasyGBS视频平台TCP主动模式拉流异常情况修复

2022-06-24 17:11:02 浏览数 (1)

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标准协议实现平台之间的级联,可实现与其他平台系统的数据共享共用,在应用场景中达到视频资源汇聚、协同监督、平台联动等目的,感兴趣的用户可以前往演示平台进行体验或部署测试。

udp

0 人点赞