海康SDK方式对接摄像头

1知识相关:

OpenAPI:对外开放的接口

Http Methodhttp:请求的方法,常用的方法有GET/POST/PUT/DELETE等请求

Path:http请求路径,指域名/IP(端口号)之后的部分,如请求地址为"www.example.com/artemis/api",则path指"/artemis/api"

appKey\appSecret:一对appKey/appSecret用于标识一个调用方,appSecret作为密钥参与签名计算

AK:AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 本文中特指appKey

SK:SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 本文中特指appSecret

RTSP:实时串流协议(Real Time Streaming Protocol,RTSP)是一种网络应用协议,专为娱乐和通信系统的使用,以控制流媒体 服务器。该协议用于建立和控制终端之间的媒体会话。媒体服务器的客户端发布VCR命令,例如播放,录制和暂停,以便于实时控制从服务器到客户端(视频点播)或从客户端到服务器(语音录音)的媒体流。

RTMP:实时消息协议(英语:Real-Time Messaging Protocol,缩写RTMP)也称实时消息传输协议,是最初由Macromedia为通过互联网在Flash播放器与一个服务器之间传输流媒体音频、视频和数据而开发的一个专有协议。

HLS:HTTP Live Streaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。

RTP:实时传输协议(Real-time Transport Protocol或简写RTP)是一个网络传输协议,它是由IETF的多媒体传输工作小组1996年在RFC 1889中公布的。

STREAMFORM:视频封装格式,将已经编码压缩好的视频轨和音频轨按照一定的格式放到一个文件中。目前支持的有PS封装、TS封装、RTP封装、gb28181封装。

2对接使用流程:

1.新建Java工程,从Hikvision AI Cloud开放平台网站(海康开放平台)上下载“OpenAPI安全认证库(Java)”,获取artemis-http-client.jar,导入到Java工程中。安全认证库已上传公网仓库,maven依赖坐标:

<dependency>

<groupId>com.hikvision.ga</groupId>

<artifactId>artemis-http-client</artifactId>

<version>1.1.3</version>

</dependency>

  1. 设置认证信息,设置ArtemisConfig的host,appKey(AK),appSecret(SK)。

 

设置接口URL。

  1. 设置接口入参。

5.接口调用,调用doPostStringArtemis方法(该方法内部实现了登入认证逻辑),传入接口URL,接口入参,数据提交类型等信息,完成接口调用。

6.Demo java源码如下:

import com.hikvision.artemis.sdk.ArtemisHttpUtil;

import com.hikvision.artemis.sdk.config.ArtemisConfig;

import java.util.HashMap;

import java.util.Map;

public class GetCameraPreviewURL {

    public static String GetCameraPreviewURL() {

        /**

         * STEP1:设置平台参数,根据实际情况,设置host appkey appsecret 三个参数.

         */

        ArtemisConfig.host = "127.0.0.1:443"; // 平台的ip端口

        ArtemisConfig.appKey = "29180881";  // 密钥appkey

        ArtemisConfig.appSecret = "XO0wCAYGi4KV70ybjznx";// 密钥appSecret

        /**

         * STEP2:设置OpenAPI接口的上下文

         */

        final String ARTEMIS_PATH = "/artemis";

        /**

         * STEP3:设置接口的URI地址

         */

        final String previewURLsApi = ARTEMIS_PATH + "/api/video/v1/cameras/previewURLs";

        Map<String, String> path = new HashMap<String, String>(2) {

            {

                put("https://", previewURLsApi);//根据现场环境部署确认是http还是https

            }

        };

        /**

         * STEP4:设置参数提交方式

         */

        String contentType = "application/json";

        /**

         * STEP5:组装请求参数

         */

        JSONObject jsonBody = new JSONObject();

        jsonBody.put("cameraIndexCode", "748d84750e3a4a5bbad3cd4af9ed5101");

        jsonBody.put("streamType", 0);

        jsonBody.put("protocol", "rtsp");

        jsonBody.put("transmode", 1);

        jsonBody.put("expand", "streamform=ps");

        String body = jsonBody.toJSONString();

        /**

         * STEP6:调用接口

         */

        String result = ArtemisHttpUtil.doPostStringArtemis(path, body, null, null, contentType , null);// post请求application/json类型参数

        return result;

    }

    public static void main(String[] args) {

        String result = GetCameraPreviewURL();

        System.out.println("result结果示例: " + result);

    }

}

猜你喜欢

转载自blog.csdn.net/Temp_1998_H/article/details/125070426