EasyCVR级联时上级国标平台可获取下级设备录像的代码设计

2022-04-01 17:48:54 浏览数 (1)

EasyCVR视频融合云平台具备优秀的视频能力,包括视频监控直播、云端录像与存储、检索与回放、告警上报、云台控制、平台级联等等。其中,平台级联是指EasyCVR可作为下级平台,将所有视频通道通过GB28181协议级联到上级国标平台,且支持同一通道级联到多个上级平台。

我们在上次的文章中也提及过关于EasyCVR平台在级联时,可实现上级平台查看下级平台的云端录像,具体可参考这篇文章:EasyCVR级联时如何让上级平台获取到下级平台本地云端录像?

近期我们又实现了新功能:EasyCVR平台级联到上级国标平台,上级平台可以查看到EasyCVR平台下的设备录像。今天来和大家分享一下代码实现过程。

添加如下代码,当EasyCVR级联的上级平台,查询EasyCVR接入的设备录像时,需要将上级要查询的设备转换为EasyCVR平台上实际的设备,查询出对应的设备录像,再返回给上级:

代码语言:javascript复制
var gbsChns []models.Channel

		db.SQLite.Model(models.Channel{}).Where("`index`=?", id).Find(&gbsChns)

		if len(gbsChns) != 1 {

			return

		}

		gbDevID := gbsChns[0].DeviceID

		sipDev := uas.Server.GetDevice(gbDevID)

		if sipDev == nil {

			log.Printf("级联: 没有找到设备[%s]", serial)

			return

		}

		channelInfo := models.GetChannel(gbsChns[0].ID, gbsChns[0].DeviceID)

		if channelInfo == nil {

			log.Printf("没有找到通道[%s:%s]", serial, code)

			return

		}

		if channelInfo.Status != "ON" {

			log.Printf("通道[%s:%s] 离线", channelInfo.DeviceID, channelInfo.ID)

			return

		}

查询成功后,便进行播放。

EasyCVR平台支持7*24h录像,可通过时间轴精确控制录像回放,也支持获取设备端的录像:

  • 支持获取海康、大华等前端设备/平台录像文件,进行录像回看
  • 支持输出对应的HTTP接口,方便录像检索、点播、回放功能的调用

在视频能力接入与分发上,EasyCVR不仅能支持标准协议(RTSP、RTMP、Onvif、GB28181等协议),还能支持厂家私有协议(海康/大华SDK、Ehome协议)的接入,分发的视频流(RTSP、RTMP、FLV、HLS、WebRTC等)可兼容多终端、多平台,在很多实际场景中均有落地项目应用,如智慧工地、智慧安防、智慧工厂、智慧园区等。感兴趣的用户可以前往演示平台体验。

0 人点赞