EasyNVR级联到上级平台多屏播放时总会一次停止多路视频是什么原因?
了解我们产品的用户知道,作为音视频流媒体行业的视频能力平台设计者,我们的产品不限设备品牌只要协议支持就可以接入做流转换,其中EasyNVR主要作为RTSP协议设备/平台接入,EasyGBS主要作为GB28181协议设备/平台接入。当有的用户现场设备环境复杂,需要同时使用EasyGBS和EasyNVR两个平台,但是又不希望两个平台件是互相独立的,我们就可以考虑将EasyNVR接入到EasyGBS中,使其方便管理。
EasyNVR也可以级联其他支持GB28181协议的平台,有时级联到上级平台后,开启按需通道多屏播放,如果发送级联停止消息使播放器停止播放一路视频时,其它视频也会同时被停止播放。
我们排查了一下视频流,流在EasyNVR平台播放时正常,没有出现中断现象,说明流正常,那就有可能是保活机制的问题,在级联保活的地方打断点调试发现当上级平台发送停止消息关闭了定时器后其它通道的保活也都停止了,查找代码发现保活的定时器是全局共用一个的,定时器关闭后所有的保活都会受到影响。
所以需要在Invite消息里单独为每个通道设置定时器并放在一个切片中:
在收到停止消息时关闭定时器并删除切片里对应的定时器:
在EasyNVR里停用国标级联时要关闭所有定时器并清空inviteArr: