EasyNVR视频监控综合管理平台支持多种格式视频流的直播播放,包括HLS、FLV、RTSP等,今年我们在此基础上又开发了WebRTC格式的播放,并且将该格式拓展到其他平台,比如EasyGBS。如果大家有兴趣可以直接下载测试。
我们测试EasyNVR视频广场HLS流直播的时候,发现直播流会断掉。分析其原因,了解到直播m3u8返回#EXT-X-ENDLIST(播放结束),只发送了touch channel命令,播放结束后未发送ts请求,m3u8文件未加载,导致直播流播放结束。
解决问题:
在播放器添加是否开启按需直播参数,在播放器监听播放结束中判断是否为直播、按需直播,如果符合两个判断条件则初始化播放器重新请求流,代码如下:
this.player.on("ended", () => {
if (this.live === true && this.onDemand === true){
this.destroyVideoJS();
this.initVideoJS();
}
this.$emit("ended");
});
修改后可以看到参数正常返回,直播流正常: