EasyGBS网络不稳定情况下重复请求视频拉流问题的优化
EasyGBS是基于国标GB28181协议的视频云服务平台,支持将国标协议的设备统一接入并进行集中管理。平台具备优秀的视频能力,包括视频监控直播、录像、云存储、回放、平台级联、语音对讲、智能告警等功能,在线下场景中已有大量落地应用。
我们在项目测试中发现,EasyGBS通过web页面请求拉流时,在网络不稳定的情况下,用户多次点击播放,会造成后端重复拉流的情况,消耗了设备的流量。此类操作会产生一定的流量费用,尤其是在流量较为敏感的项目中,造成了不必要的花费。因此针对上述情况,我们进行了代码优化。
在网络不稳定的情况下,用户有可能点击多次,导致多次传给后端,后端则会同时多次请求invite,导致这个设备有两路推流,因此设备持续发流,消耗了设备流量,如下图:
解决方法:在请求拉流的方法中,加入锁来控制每个设备同时只能进行一次invite。代码如下:
这样一来,就不会造成设备的重复拉流了。
在视频能力上,EasyGBS可将GB/T28181设备/平台推送的PS流转成ES流,并提供RTSP、RTMP、FLV、HLS、WebRTC等多种格式视频流的分发服务,实现Web浏览器、手机浏览器、微信端、PC客户端等各终端无插件播放。平台基于云边端架构优势,已经在大量的线下场景中应用,包括明厨亮灶、雪亮工程、平安乡村等等。感兴趣的用户可以前去演示平台进行体验或部署测试。