菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
263
0

【开发记录】国标GB28181协议视频人脸识别/车牌识别平台EasyCVR添加实时快照接口

原创
05/13 14:22
阅读数 43720

视频上云网关EasyCVR在上线的时候,就效仿EasyNVR、EasyGBS等平台做了直播快照的实时显示,EasyCVR原有的快照生成配置如下:

不同的接入协议有不同快照配置,而且只能配置定时获取快照功能,没有实时快照的功能。目前新版的EasyCVR 1.0.40会将快照配置统一如下:

并且新增了实时快照接口的调用,用户调用EasyCVR实时快照接口时,生成快照并返回,返回类型根据传入参数可选为压缩和非压缩。接口相关调用规则见下图:

Postman调用示例:

示例代码:

/**
 * @api {get} /api/v1/devices/channelsnap 通道快照
 * @apiGroup device
 * @apiName DeviceChannelSnap
 * @apiParam {Number} device 设备ID
 * @apiParam {Number} channel 通道ID
 * @apiParam {Boolean=true,false} [realtime=false] 实时快照
 * @apiParam {Boolean=true,false} [encode=false] 是否将图片编码,为true时返回base64编码图片数据
 * @apiParam {Number} [timeout=${snap_timeout}] 实时快照为 true 时有效, 实时快照抓取超时(秒)
 *
 * @apiSuccessExample 成功
 * HTTP/1.1 200 OK
 * image/jpeg 格式, http body 为图片Base64数据
 */
func (h *APIHandler) DeviceChannelSnap(c *gin.Context) {
   var err error
   defer func() {
      if p := recover(); p != nil {
         err = fmt.Errorf("%v", p)
      }
      if err != nil {
         c.AbortWithStatusJSON(400, err.Error())
         return
      }
   }()
   type Form struct {
      Device   uint `form:"device" binding:"required"`
      Channel  uint   `form:"channel" binding:"required"`
      Realtime bool   `form:"realtime"`
      Timeout  uint   `form:"timeout"`
      Encode   bool   `form:"encode"`
   }
   var form = Form{
      Realtime: false,
      Timeout:  1,
   }
   if err := c.Bind(&form); err != nil {
      return
   }

关于EasyCVR视频上云平台直播快照的开发,大家可以参考此文:视频上云网关平台EasyCVR是否能够显示直播快照。EasyCVR作为视频协议融合平台,在很多环境及设备复杂的项目现场发挥了作用,如果大家想了解更多或者直接测试,欢迎联系我们。

发表评论

0/200
263 点赞
0 评论
收藏