EasyNVR视频广场按需播放HLS直播流总是断流原因排查

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");
});

修改后可以看到参数正常返回,直播流正常:

 

posted on 2021-10-14 17:33  EasyNVR  阅读(150)  评论(0编辑  收藏  举报