RTSP / gb28181 / home protocol security video cloud platform EasyCVR is cascaded to the national standard platform EasyGBS, and the video is automatically stopped. Troubleshooting process

The new platform EasyCVR developed by TSINGSEE Qingxi video R & D team is different from the previous video service platform. Most of the previous platforms can only support the access of single protocol cameras. For example, EasyNVR only supports RTSP protocol and EasyGBS only supports GB28181 protocol. Therefore, when there are multiple cameras with different protocols in a project scenario, the deployment will be slightly complicated.

EasyCVR is developed to solve this problem. EasyCVR can be a protocol integration platform, which can access RTSP protocol and GB28181 protocol at the same time, and has developed and integrated private protocols such as Haikang SDK and home protocol. At present, other protocols are also expanding. Interested users can take a look at our home protocol development process( Introduction to the calling process of Ehome protocol).

Recently, the R & D personnel found that after the EasyCVR channel is cascaded to the superior platform, the on-demand playback is started, and the playback will stop after the superior platform plays for a period of time. This problem has been encountered when we develop other platforms and links, which is a common problem.

Let's first repeat the question:

  1. Cascade EasyCVR into EasyGBS and allocate channels
  2. Play the cascaded channels in EasyGBS. The playback will stop for a period of time and start again later. Play with VLC and it will stop automatically after a while. If it is not on demand in EasyCVR, it can be played continuously in GBS

When the message is pushed from the lower platform to the lower platform, it will be analyzed according to the time when the message is pushed from the lower platform to the lower platform. If the message is pushed to the lower platform, it will be stopped according to the lower platform. If the message is pushed to the lower platform as needed, it will be analyzed according to the time when the message is pushed to the lower platform.

Therefore, through the analysis, we know that if the platform is to flow continuously, the subordinate platform needs to be kept alive regularly. We can keep the video stream alive according to the following code:

		//Flow preservation
		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("cascade flow keep alive", 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("Cascade flow interrupted")
			return true
		})
		c.Client.dispatcher.AddListener(l)
		defer c.Client.dispatcher.RemoveListener(l)
		for {
			select {
			case <-ch:
				return
			}
		}

In this paper, the reason why EasyCVR cascaded national standard platform video can not be played is a problem of keeping alive. In fact, EasyCVR is more widely used than other video platforms. If you have needs, please contact us for details.

Tags: EasyCVR

Posted by FURQAN on Wed, 11 May 2022 07:25:13 +0300