• RTSP/GB28181/Ehome协议安防视频云平台EasyCVR级联至国标平台EasyGBS视频自动停播问题排查过程


    TSINGSEE青犀视频研发团队开发的新平台EasyCVR与以往的视频服务平台有所不同。以往的平台大多只能支持单一协议摄像头的接入,比如EasyNVR只支持RTSP协议,EasyGBS只支持国标GB28181协议,所以当一个项目场景中有多种不同协议的摄像头时,部署就会稍显复杂。

    EasyCVR的开发正是为了解决这一问题,EasyCVR可以是个协议融合平台,能够同时接入RTSP协议及GB28181协议的设备,并且已经开发集成了海康SDK、Ehome协议等私有协议,目前其他的协议也在拓展当中,有兴趣的用户可以看一下我们的Ehome协议开发过程(Ehome协议调用流程介绍)。

    最近研发人员发现EasyCVR通道向上级平台级联后,开启按需播放,上级平台播放一段时间后会停止播放,这一问题在我们开发其他平台及联的时候都有遇到过,是个比较普遍的问题。

    我们首先来复现一下问题:

    1. 将EasyCVR级联到EasyGBS中,并分配通道
    2. 在EasyGBS中播放级联上来的通道播放一段时间就会停止,过一会又开始播放。使用VLC播放,过一会就会自动停止。如果在EasyCVR中非按需,则能在GBS中持续播放

    从现象中分析是下级平台EasyCVR按需播放,GB28181协议级联invite消息,需要下级平台一直推流,如果下级平台设置成按需的话,按需时间到会断流停止推流。

    所以通过分析我们知道,要想平台不断流,下级平台就需要定时保活。我们可以按照以下代码保活视频流:

    		//流保活
    		ticker := time.NewTicker(15 * time.Second)
    		go func() {
    			defer func() {
    				if err := recover(); err != nil {
    					err_logger.Error(fmt.Sprintf("%s\n", err))
    					err_logger.Error(fmt.Sprintln(string(debug.Stack())))
    				}
    			}()
    			for {
    				select {
    				case <-ticker.C:
    					stream.TouchStream(streamObj.ChannelID, "main")
    
    					//_, err := uas.Server.TouchStream(stream.StreamID)
    					//if err != nil {
    					//	c.Client.dispatcher.Dispatch(fmt.Sprintf("Bye@%s", c.SipMsg.Req.User), stream.StreamID)
    					//	return
    					//}
    					//log.Println("级联流保活", stream.StreamID)
    				}
    			}
    		}()
    		ch := make(chan bool)
    		l := events.NewListener(fmt.Sprintf("Bye@%s", c.SipMsg.Req.User), func(i ...interface{}) bool {
    			ticker.Stop()
    			ch <- true
    			log.Println("级联流被中断")
    			return true
    		})
    		c.Client.dispatcher.AddListener(l)
    		defer c.Client.dispatcher.RemoveListener(l)
    		for {
    			select {
    			case <-ch:
    				return
    			}
    		}
    

    本文EasyCVR级联国标平台视频无法播放的原因分析到底就是一个保活的问题,实际上,EasyCVR的用途比其他视频平台更加广泛,如果大家有需求,欢迎联系我们了解详情。

  • 相关阅读:
    【NOIP16提高组】换教室
    【扬中集训Day6T1】 白日梦
    【POJ 1061】 青蛙的约会
    【扬中集训DAY5T1】 交换矩阵
    【USACO】 Balanced Photo
    【USACO】 Balanced Lineup

    POJ P3352 Road Construction 解题报告
    洛谷 P2783 有机化学之神偶尔会做作弊 解题报告
    洛谷 P2300 合并神犇 解题报告
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/13840982.html
Copyright © 2020-2023  润新知