视频的播放都是需要消耗带宽及流量的,由于有带宽及服务器的限制,在我们的流媒体平台都添加了“按需直播”的选择,以节省带宽。
在EasyNVR后台通道列表中,如果将通道设置为按需播放,在播放视频时会定时请求touchstreamclient接口进行拉流,如果通道离线了,在页面进行弹框提示。参数channel是一个指定通道号:
但是,如果在实时调阅中播放视频,并且16路按需流一起播放就会有16个touchstreamclient请求,这样会浪费资源,所以需要进行接口优化。
优化后的逻辑是在channel中传数组,每播放一路新的流就在列表中增加一个通道ID,并且过滤重复的通道ID,返回的数据也需要进行对应的修改。将原来的只返回特定通道的信息改为数组形式,所有通道信息都放入一个数组中,前端将数据处理后正确的通道进行播放,离线的通道弹窗提示,这样只需要一个请求就能完成所有播放通道的心跳保活。
播放如下:
实现如下: