海康调用摄像头列表api
时间: 2023-12-17 22:20:32 浏览: 202
海康摄像头web调用
3星 · 编辑精心推荐
海康威视的摄像头列表API可以通过HTTP或SDK调用。这里提供两种不同的方式进行说明:
1. 使用HTTP调用
通过HTTP调用,需要先登录设备获取sessionID,然后使用sessionID进行后续的操作。具体步骤如下:
- 登录设备,获取sessionID
```
POST http://<设备IP>/<设备类型>/openapi/<版本号>/auth/login
```
请求参数:
```
{
"clientType": "Web3.0",
"ipAddress": "<客户端IP地址>",
"loginType": "Direct",
"password": "<密码>",
"userName": "<用户名>"
}
```
响应参数:
```
{
"sessionID": "<会话ID>"
}
```
- 获取摄像头列表
```
GET http://<设备IP>/<设备类型>/openapi/<版本号>/camera/<通道号>/list
```
请求参数:
```
{
"listType": "all",
"pageStart": 0,
"pageSize": 50
}
```
响应参数:
```
{
"cameraList": [
{
"cameraID": "<摄像头ID>",
"cameraName": "<摄像头名称>",
"cameraType": "<摄像头类型>",
"channelID": "<通道ID>",
"channelName": "<通道名称>",
"channelType": "<通道类型>",
"enable": true,
"ipAddress": "<摄像头IP地址>",
"loginType": "Direct",
"password": "<密码>",
"port": <端口号>,
"protocol": "hikvision",
"userName": "<用户名>",
"videoFormat": "h.264"
},
...
],
"total": <总数>
}
```
2. 使用SDK调用
使用SDK调用需要先安装海康威视的SDK,并在代码中引入相应的SDK库。具体步骤如下:
- 初始化SDK
```
NET_DVR_Init();
```
- 登录设备
```
NET_DVR_USER_LOGIN_INFO struLoginInfo = {0};
struLoginInfo.bUseAsynLogin = false;
strncpy(struLoginInfo.sDeviceAddress, "<设备IP>", NET_DVR_DEV_ADDRESS_MAX_LEN);
struLoginInfo.wPort = <端口号>;
strncpy(struLoginInfo.sUserName, "<用户名>", NET_DVR_LOGIN_USERNAME_MAX_LEN);
strncpy(struLoginInfo.sPassword, "<密码>", NET_DVR_LOGIN_PASSWD_MAX_LEN);
NET_DVR_DEVICEINFO_V40 struDeviceInfo = {0};
long lUserID = NET_DVR_Login_V40(&struLoginInfo, &struDeviceInfo);
```
- 获取摄像头列表
```
NET_DVR_IPPARACFG_V40 struIpParaCfg = {0};
DWORD dwReturned = 0;
NET_DVR_GetDVRConfig(lUserID, NET_DVR_GET_IPPARACFG_V40, 0, &struIpParaCfg, sizeof(struIpParaCfg), &dwReturned);
for (int i = 0; i < struIpParaCfg.dwDChanNum; i++)
{
NET_DVR_IPDEVINFO_V31 struIpDevInfo = struIpParaCfg.struIPDevInfo[i];
NET_DVR_IPCHANINFO_V41 struIpChanInfo = struIpParaCfg.struIPChanInfo[i];
// 摄像头信息在struIpDevInfo和struIpChanInfo中
}
```
注意:以上代码仅供参考,具体实现需要根据SDK提供的接口进行编写。
阅读全文