海康 综合安防管理平台 对接

海康摄像头对接,通过海康综合安防管理平台对接

1. 海康综合安防管理平台介绍

1.1 官网介绍

在这里插入图片描述

1.2 个人理解

综合安防管理平台部署之后,有2个系统,一个是综合安防管理平台:是用户端系统,一个是运营中心:是综合安防平台的后台管理系统,可提供api与业务平台对接,实现实时预览、录播回放、语音对讲、报警订阅等功能。

1.3 综合安防管理平台

在这里插入图片描述

1.4 运行管理中心系统

在这里插入图片描述

2. 需求

通过对接综合安防平台API实现摄像头的实时预览,录播回放,语音对讲,安全帽监测

3. 对接步骤

3.1 运行管理中心创建合作方并授权对应的api权限

在这里插入图片描述

3.2 获取合作方的秘钥

在这里插入图片描述
说明: 该秘钥是获取api权限的秘钥

3.3 拿到该秘钥,想要调用对应API接口还需要获取某一个摄像头的主键,cameraIndexCode

3.3.1 官网api地址

在这里插入图片描述

3.3.2 代码编写

controller

 /**
     * 调用POST请求类型接口,分页获取监控点资源
     *
     * @return
     */
    @ApiOperation(value = "分页获取监控点资源")
    @GetMapping(value = "/GetResource")
    public String postGetResource() {
        return cameraService.callPostApiGetResources();
    }

sereviceImpl

 /**
     * 调用POST请求类型接口,分页获取监控点资源
     * 接口实际url:https://ip:port/artemis/api/resource/v1/cameras
     *
     * @return
     */
    @Override
    public String callPostApiGetResources() {
        /**
         * https://ip:port/artemis/api/resource/v1/cameras
         * 过查阅AI Cloud开放平台文档或网关门户的文档可以看到分页获取监控点资源的定义,这是一个POST请求的Rest接口, 入参为JSON字符串,接口协议为https。
         * ArtemisHttpUtil工具类提供了doPostStringArtemis调用POST请求的方法,入参可传JSON字符串, 请阅读开发指南了解方法入参,没有的参数可传null
         */
        ArtemisConfig config = new ArtemisConfig();
        config.setHost(artemisHost); // 代理API网关nginx服务器ip端口
        config.setAppKey(artemisAppKey);  // 秘钥appkey
        config.setAppSecret(artemisAppSecret);// 秘钥appSecret
        String getCamsApi = ARTEMIS_PATH + "/api/resource/v1/cameras";
        Map<String, String> paramMap = new HashMap<String, String>();// post请求Form表单参数
        paramMap.put("pageNo", "1");
        paramMap.put("pageSize", "20");
        String body = JSON.toJSON(paramMap).toString();
        Map<String, String> path = new HashMap<String, String>(2) {
            {
                put("https://", getCamsApi);
            }
        };
        String result = null;
        try {
            result = ArtemisHttpUtil.doPostStringArtemis(config, path, body, null, null, "application/json");
            log.info(MessageFormat.format("分页获取监控点资源{0}", result));
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

返回值

{
    "code": "0",
    "msg": "success",
    "data": {
        "total": 1,
        "pageNo": 1,
        "pageSize": 100,
        "list": [
            {
                "cameraIndexCode": "a8f74dcf14f846bb95c8dff6684f897e",
                "cameraName": "193GB_IPCamera 01",
                "cameraType": 0,
                "cameraTypeName": "1",
                "capabilitySet": "645f0a62-05ff-4396-a687-944c3f0406d6",
                "capabilitySetName": "0",
                "intelligentSet": "0",
                "intelligentSetName": "null",
                "channelNo": "1",
                "channelType": "analog",
                "channelTypeName": "null",
                "createTime": "null",
                "encodeDevIndexCode": "73c2e4903a4547f8812a26d329802cd0",
                "encodeDevResourceType": "null",
                "encodeDevResourceTypeName": "null",
                "gbIndexCode": "null",
                "installLocation": "29",
                "keyBoardCode": "ga_h264",
                "latitude": "null",
                "longitude": "null",
                "pixel": 1,
                "ptz": 1,
                "ptzController": 1,
                "ptzControllerName": "123",
                "ptzName": "1234",
                "recordLocation": "0",
                "recordLocationName": "0",
                "regionIndexCode": "123",
                "status": 1,
                "statusName": "123",
                "transType": 0,
                "transTypeName": "1",
                "treatyType": "1",
                "treatyTypeName": "1",
                "viewshed": "123",
                "updateTime": "1234567489"
            }
        ]
    }
}


拿到对应的摄像头的主键cameraIndexCode,保存到数据库,后面调用实时预览接口,对应哪一个摄像头设备,用到这个cameraIndexCode

3.4 拿到该秘钥,就可以调用对应的实时预览接口,获取实时预览的串流url

3.4.1 官网api接口地址

https://open.hikvision.com/docs/docId?productId=5c67f1e2f05948198c909700&version=%2Ff8356830af1d40f3b1da7db12baa47af&tagPath=API%E5%88%97%E8%A1%A8-%E8%A7%86%E9%A2%91%E4%B8%9A%E5%8A%A1-%E8%A7%86%E9%A2%91%E5%8A%9F%E8%83%BD#c93b92ea
在这里插入图片描述

3.4.2 代码编写

controller

 /**
     * 调用POST请求类型接口,获取当前监控点的预览url
     *
     * @return
     */
    @ApiOperation(value = "获取当前监控点的预览url")
    @GetMapping(value = "/getOnePreviewUrl")
    public AjaxResult getOnePreviewUrl(@RequestParam(value = "cameraIndexCode") String cameraIndexCode) {
        String url = cameraService.callPostApiPreviewUrl(cameraIndexCode, "rtmp");
        return AjaxResult.successData(url);
    }

serviceImpl


    /**
     * 调用POST请求类型接口,获取监控点预览取流URL
     * 接口实际url:https://ip:port/artemis/api/resource/v1/cameras
     *
     * @return
     */
    @Override
    public String callPostApiPreviewUrl(String cameraIndexCode, String protocol) {
        ArtemisConfig config = new ArtemisConfig();
        config.setHost(artemisHost); // 代理API网关nginx服务器ip端口
        config.setAppKey(artemisAppKey);  // 秘钥appkey
        config.setAppSecret(artemisAppSecret);// 秘钥appSecret
        String getCamsApi = ARTEMIS_PATH + "/api/video/v1/cameras/previewURLs";
        Map<String, Object> paramMap = new HashMap<String, Object>();// post请求Form表单参数
        paramMap.put("cameraIndexCode", cameraIndexCode);
        paramMap.put("streamType", 0);
        paramMap.put("protocol", protocol);
        String body = JSON.toJSON(paramMap).toString();
        Map<String, String> path = new HashMap<String, String>(2) {
            {
                put("https://", getCamsApi);
            }
        };
        String result = null;
        try {
            result = ArtemisHttpUtil.doPostStringArtemis(config, path, body, null, null, "application/json");
            log.info(MessageFormat.format("获取监控点预览取流URL{0}", result));
            JSONObject jsonObject = JSON.parseObject(result);
            String code = jsonObject.getString("code");
            if("0".equals(code)){
                String data = jsonObject.getString("data");
                return data;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return result;
    }

返回值

{
    "code": "0",
    "msg": "success",
    "data": {
        "url": "rtsp://10.2.145.66:655/EUrl/CLJ52BW"
    }
}

根据返回值中的url,放到vlc播放器中可测试是否正确(点击媒体-打开网络串流)
在这里插入图片描述
测试正确,播放正常,把该yrl返回给前端,让前端调用h5播放器,播放该url即可。

  • 7
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
海康综合安防管理平台php是一种集成了海康安防产品的开发平台,通过使用php语言进行开发,提供全面的安防管理功能。该平台可以帮助用户实现对安防设备的集中化管理和控制,提高安防管理的效率和便捷性。 海康综合安防管理平台php具备以下特点和优势: 1. 全面的功能:平台提供了丰富的安防管理功能,包括视频监控、门禁控制、报警管理、人员定位等多个方面。用户可以通过一个统一的界面实现对各种设备和功能的管理和控制,大大简化了操作流程。 2. 强大的扩展性:海康综合安防管理平台php具备灵活的扩展性,可以根据用户的需求进行二次开发和定制。用户可以根据自身的实际情况,进行系统功能的扩展和改造,以满足特定的管理需求。 3. 高度集成化:该平台可以集成海康安防产品,如摄像机、录像机、门禁控制器等。通过与海康的硬件设备的无缝集成,可以实现对设备的实时监控、远程回放、报警处理等功能。 4. 可靠的安全性:海康综合安防管理平台php采用了严格的数据加密和安全验证机制,确保用户的数据和系统安全。同时,平台还提供完善的权限管理机制,用户可以根据实际需求设置用户权限,保障系统的安全和隐私。 总之,海康综合安防管理平台php将安防设备的管理和控制集成到一个平台上,实现了一体化的管理和操作,提高了安防管理的效率和便捷性,为用户提供了可靠的安全保障。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值