获取海康综合安防管理平台(区域,监控点,时效性rtsp流)数据
目录
一 . 开发准备
1. 海康安防平台OpenApi参考文档地址
2. 登录运管中心,获取海康安防平台 ( AppKey,App_Secret)
二. 下载 OpenAPI安全认证库(Python)
1. OpenAPI安全认证库-Python版本下载
2. AK \ SK认证
3. 查询安防平台区域列表v2(区域)
(1)请求示例代码如下
(2)请求示例结果
4. 根据区域获取下级资源列表v2(监控点)
(1)请求示例代码如下
(2)请求示例结果
5. 根据编号查询资源详细信息(ip,端口等)
(1)请求示例代码如下
(2)请求示例结果
6. 时效性rtsp流生成 (该功能是把资源监控点编号参数传进去,生成时效性rtsp流)
(1)请求示例代码如下
(2)请求示例结果
三. 完整封装类代码
四 . 总结
本文介绍了如何通过接口与海康综合安防管理平台进行数据交互,获取平台中的区域信息、监控点数据以及时效性 RTSP 流。通过调用平台的 API,我们能够有效地获取和管理安防系统中的各类资源,支持多种数据类型的获取与分析,进而为平台的监控、管理与调度提供数据支持。
一 . 开发准备
1. 海康安防平台OpenApi参考文档地址
https://open.hikvision.com/docs/docId?version=%2F29c78ef52ca842c7933bd2b8e051e9d0&tagPath=%E6%96%87%E6%A1%A3%E8%AF%B4%E6%98%8E
2. 登录运管中心,获取海康安防平台 ( AppKey,App_Secret)
二. 下载 OpenAPI安全认证库(Python)
1. OpenAPI安全认证库-Python版本下载
目前官网没有提供 Python认证库,大家可以点击下方网盘链接下载
OpenAPI安全认证库zip下载链接https://pan.baidu.com/s/1IVi3ZMM2XVIfFF8QTibWSg?pwd=0205%C2%A0
2. AK \ SK认证
接口鉴权统一使用AK\SK认证,其中AK\SK是通过API网关发放的。AK\SK摘要认证方案如下
# -*- coding: UTF-8 -*-
import hashlib
import hmac
import base64
import time
import uuid
import requests
import json
#Step1:配置host地址、端口号、appKey和appSecret
# api config
host ='https://192.168.139.246'
port ='443'
artemis='artemis'
appKey = '24481068'
appSecret = 'wTdNalUIHRlN5ZknxWzc'
methon = 'POST'
# 请求头构造
def Signature(appSecret,methon,appKey,artemis,api):
## Timestamp
t = time.time()
nowTime = lambda:int(round(t * 1000))
timestamp=nowTime()
timestamp=str(timestamp)
# uuid
nonce= str(uuid.uuid1())
#signature
secret=str(appSecret).encode('utf-8')
message = str(methon+'\n*/*\napplication/json\nx-ca-key:'+appKey+'\nx-ca-nonce:'+nonce+'\nx-ca-timestamp:'+timestamp+'\n/'+artemis+api).encode('utf-8')
signature = base64.b64encode(hmac.new(secret, message, digestmod=hashlib.sha256).digest())
# print(signature)
#header
header_dict = dict()
header_dict['Accept'] = '*/*'
header_dict['Content-Type'] = 'application/json'
header_dict['X-Ca-Key'] = appKey
header_dict['X-Ca-Signature'] = signature
header_dict['X-Ca-timestamp'] = timestamp
header_dict['X-Ca-nonce'] = nonce
header_dict['X-Ca-Signature-Headers'] = 'x-ca-key,x-ca-nonce,x-ca-timestamp'
# print (header_dict)
return header_dict
3. 查询安防平台区域列表v2(区域)
根据查询条件查询区域列表信息,主要用于区域信息查询过滤。
相对V1接口,支持级联场景的区域查询
(1)请求示例代码如下
# -*- coding: UTF-8 -*-
import hashlib
import hmac
import base64
import time
import uuid
import requests
import json
#Step1:配置host地址、端口号、appKey和appSecret
# api config
host ='https://192.168.139.246'
port ='443'
artemis='artemis'
appKey = '24481068'
appSecret = 'wTdNalUIHRlN5ZknxWzc'
methon = 'POST'
# 请求头构造
def Signature(appSecret,methon,appKey,artemis,api):
## Timestamp
t = time.time()
nowTime = lambda:int(round(t * 1000))
timestamp=nowTime()
timestamp=str(timestamp)
# uuid
nonce= str(uuid.uuid1())
#signature
secret=str(appSecret).encode('utf-8')
message = str(methon+'\n*/*\napplication/json\nx-ca-key:'+appKey+'\nx-ca-nonce:'+nonce+'\nx-ca-timestamp:'+timestamp+'\n/'+artemis+api).encode('utf-8')
signature = base64.b64encode(hmac.new(secret, message, digestmod=hashlib.sha256).digest())
# print(signature)
#header
header_dict = dict()
header_dict['Accept'] = '*/*'
header_dict['Content-Type'] = 'application/json'
header_dict['X-Ca-Key'] = appKey
header_dict['X-Ca-Signature'] = signature
header_dict['X-Ca-timestamp'] = timestamp
header_dict['X-Ca-nonce'] = nonce
header_dict['X-Ca-Signature-Headers'] = 'x-ca-key,x-ca-nonce,x-ca-timestamp'
# print (header_dict)
return header_dict
# 获取安防平台视频区域信息
def get_video_area():
"""
'code': '0', 状态码
'msg': 'success', 请求成功
'data': {'total': 12, 'pageNo': 1, 'pageSize': 1000, 'list': [] } 数据
:return:
"""
payload = {
"pageNo": 1,
"pageSize": 1000,
"resourceType": 'region',
# 传region时查询的为用户有配置权限的区域树,
# 传资源类型如:camera、encodeDevice查询用户对该类资源有权限的区域树;
}
api = '/api/irds/v2/region/nodesByParams'
url = host + ':' + port + '/' + artemis + api
data = requests.post(url, headers=Signature(appSecret,methon,appKey,artemis,api), json=payload,verify=False)
return json.loads(data.text)['data']['list']
print(get_video_area())
(2)请求示例结果
4. 根据区域获取下级资源列表v2(监控点)
根据区域编码、资源类型、资源操作权限码分页获取当前区域下(不包含子区域)有权限的资源列表,主要用于逐层获取区域下的资源信息。
(1)请求示例代码如下
# -*- coding: UTF-8 -*-
import hashlib
import hmac
import base64
import time
import uuid
import requests
import json
#Step1:配置host地址、端口号、appKey和appSecret
# api config
host ='https://192.168.139.246'
port ='443'
artemis='artemis'
appKey = '24481068'
appSecret = 'wTdNalUIHRlN5ZknxWzc'
methon = 'POST'
# 请求头构造
def Signature(appSecret,methon,appKey,artemis,api):
## Timestamp
t = time.time()
nowTime = lambda:int(round(t * 1000))
timestamp=nowTime()
timestamp=str(timestamp)
# uuid
nonce= str(uuid.uuid1())
#signature
secret=str(appSecret).encode('utf-8')
message = str(methon+'\n*/*\napplication/json\nx-ca-key:'+appKey+'\nx-ca-nonce:'+nonce+'\nx-ca-timestamp:'+timestamp+'\n/'+artemis+api).encode('utf-8')
signature = base64.b64encode(hmac.new(secret, message, digestmod=hashlib.sha256).digest())
# print(signature)
#header
header_dict = dict()
header_dict['Accept'] = '*/*'
header_dict['Content-Type'] = 'application/json'
header_dict['X-Ca-Key'] = appKey
header_dict['X-Ca-Signature'] = signature
header_dict['X-Ca-timestamp'] = timestamp
header_dict['X-Ca-nonce'] = nonce
header_dict['X-Ca-Signature-Headers'] = 'x-ca-key,x-ca-nonce,x-ca-timestamp'
# print (header_dict)
return header_dict
# 获取安防平台视频区域信息
def get_video_area():
"""
'code': '0', 状态码
'msg': 'success', 请求成功
'data': {'total': 12, 'pageNo': 1, 'pageSize': 1000, 'list': [] } 数据
:return:
"""
payload = {
"pageNo": 1,
"pageSize": 1000,
"resourceType": 'region',
# 传region时查询的为用户有配置权限的区域树,
# 传资源类型如:camera、encodeDevice查询用户对该类资源有权限的区域树;
}
api = '/api/irds/v2/region/nodesByParams'
url = host + ':' + port + '/' + artemis + api
data = requests.post(url, headers=Signature(appSecret,methon,appKey,artemis,api), json=payload,verify=False)
return json.loads(data.text)['data']['list']
# print(get_video_area())
# 根据区域编号获取下一级区域列表v2
def get_video_area_info(data):
"""
'code': '0', 状态码
'msg': 'success', 请求成功
'data': {'total': 12, 'pageNo': 1, 'pageSize': 1000, 'list': [] } 数据
:return:
"""
payload = {
"regionIndexCode": data,
# "regionIndexCode": 'root000000',
"pageNo": 1,
"authCodes": [
"view"
],
"pageSize": 1000,
"cascadeFlag": 0,
"resourceType": "camera",
}
api = '/api/irds/v2/resource/subResources'
url = host + ':' + port + '/' + artemis + api
data = requests.post(url, headers=Signature(appSecret,methon,appKey,artemis,api), json=payload,verify=False)
return json.loads(data.text)['data']['list']
# get_video_area()方法返回各区域indexCode 选取一个区域indexCode进行下级数据请求
print(get_video_area_info('6847cabd-1240-4f70-9ac6-4ed8c5da12ff'))
(2)请求示例结果
5. 根据编号查询资源详细信息(ip,端口等)
根据资源类型、资源编号查询单个资源详细信息及总条数,列表中资源类型必须一致。
(1)请求示例代码如下
# -*- coding: UTF-8 -*-
import hashlib
import hmac
import base64
import time
import uuid
import requests
import json
#Step1:配置host地址、端口号、appKey和appSecret
# api config
host ='https://192.168.139.246'
port ='443'
artemis='artemis'
appKey = '24481068'
appSecret = 'wTdNalUIHRlN5ZknxWzc'
methon = 'POST'
# 请求头构造
def Signature(appSecret,methon,appKey,artemis,api):
## Timestamp
t = time.time()
nowTime = lambda:int(round(t * 1000))
timestamp=nowTime()
timestamp=str(timestamp)
# uuid
nonce= str(uuid.uuid1())
#signature
secret=str(appSecret).encode('utf-8')
message = str(methon+'\n*/*\napplication/json\nx-ca-key:'+appKey+'\nx-ca-nonce:'+nonce+'\nx-ca-timestamp:'+timestamp+'\n/'+artemis+api).encode('utf-8')
signature = base64.b64encode(hmac.new(secret, message, digestmod=hashlib.sha256).digest())
# print(signature)
#header
header_dict = dict()
header_dict['Accept'] = '*/*'
header_dict['Content-Type'] = 'application/json'
header_dict['X-Ca-Key'] = appKey
header_dict['X-Ca-Signature'] = signature
header_dict['X-Ca-timestamp'] = timestamp
header_dict['X-Ca-nonce'] = nonce
header_dict['X-Ca-Signature-Headers'] = 'x-ca-key,x-ca-nonce,x-ca-timestamp'
# print (header_dict)
return header_dict
# 获取安防平台视频区域信息
def get_video_area():
"""
'code': '0', 状态码
'msg': 'success', 请求成功
'data': {'total': 12, 'pageNo': 1, 'pageSize': 1000, 'list': [] } 数据
:return:
"""
payload = {
"pageNo": 1,
"pageSize": 1000,
"resourceType": 'region',
# 传region时查询的为用户有配置权限的区域树,
# 传资源类型如:camera、encodeDevice查询用户对该类资源有权限的区域树;
}
api = '/api/irds/v2/region/nodesByParams'
url = host + ':' + port + '/' + artemis + api
data = requests.post(url, headers=Signature(appSecret,methon,appKey,artemis,api), json=payload,verify=False)
return json.loads(data.text)['data']['list']
# print(get_video_area())
# 根据区域编号获取下一级区域列表v2
def get_video_area_info(data):
"""
'code': '0', 状态码
'msg': 'success', 请求成功
'data': {'total': 12, 'pageNo': 1, 'pageSize': 1000, 'list': [] } 数据
:return:
"""
payload = {
"regionIndexCode": data,
# "regionIndexCode": 'root000000',
"pageNo": 1,
"authCodes": [
"view"
],
"pageSize": 1000,
"cascadeFlag": 0,
"resourceType": "camera",
}
api = '/api/irds/v2/resource/subResources'
url = host + ':' + port + '/' + artemis + api
data = requests.post(url, headers=Signature(appSecret,methon,appKey,artemis,api), json=payload,verify=False)
return json.loads(data.text)['data']['list']
# get_video_area()方法返回各区域indexCode 选取一个区域indexCode进行下级数据请求
# print(get_video_area_info('6847cabd-1240-4f70-9ac6-4ed8c5da12ff'))
# 根据下级区域父indexCode 获取到录像机信息
def get_video_area_vcr_info(data):
"""
'code': '0', 状态码
'msg': 'success', 请求成功
'data': {'total': 12, 'pageNo': 1, 'pageSize': 1000, 'list': [] } 数据
:return:
"""
payload = {
"resourceType": "encodeDevice",
"resourceIndexCodes": data,
}
api = '/api/resource/v1/resource/indexCodes/search'
url = host + ':' + port + '/' + artemis + api
data = requests.post(url, headers=Signature(appSecret,methon,appKey,artemis,api), json=payload,verify=False)
return json.loads(data.text)['data']['list']
# get_video_area_info()方法返回监控点 parentindexCode 选取监控点 parentindexCode进行数据请求
print(get_video_area_vcr_info(['431e5596e4d641a9b7bbe7d084c42688']))
(2)请求示例结果
6. 时效性rtsp流生成 (该功能是把资源监控点编号参数传进去,生成时效性rtsp流)
下方链接为文档案例(如何进行标准rtsp取流及取流url无法播放问题处理)
网页渠道https://knowbot.hikvision.com/webchatbot-pc/#/sharingPath?params=384907&sysNum=1718948770440&type=1利用流媒体服务进行rtsp流转换可以参考下文链接
(aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器_srs转码-CSDN博客文章浏览阅读1.2k次,点赞20次,收藏23次。定义启动和停止 RTSP 转码任务的方法# 开始转码方法# 检查相同RTSP是否已有子进程在处理# 使用Semaphore限制并发进程数量# 实际的转码操作,这里需要调用ffmpeg或其他工具'ffmpeg','-i', ip,# 创建异步子进程# 将任务添加到字典中# 等待子进程完成# 从字典中移除已完成的任务# 停止转码方法# 停止转码任务process.terminate() # 发送终止信号await process.wait() # 等待进程结束。_srs转码https://blog.csdn.net/m0_56659620/article/details/135459605?spm=1001.2014.3001.5502
以上为官方调用
(1)请求示例代码如下
# -*- coding: UTF-8 -*-
import hashlib
import hmac
import base64
import time
import uuid
import requests
import json
#Step1:配置host地址、端口号、appKey和appSecret
# api config
host ='https://192.168.139.246'
port ='443'
artemis='artemis'
appKey = '24481068'
appSecret = 'wTdNalUIHRlN5ZknxWzc'
methon = 'POST'
# 请求头构造
def Signature(appSecret,methon,appKey,artemis,api):
## Timestamp
t = time.time()
nowTime = lambda:int(round(t * 1000))
timestamp=nowTime()
timestamp=str(timestamp)
# uuid
nonce= str(uuid.uuid1())
#signature
secret=str(appSecret).encode('utf-8')
message = str(methon+'\n*/*\napplication/json\nx-ca-key:'+appKey+'\nx-ca-nonce:'+nonce+'\nx-ca-timestamp:'+timestamp+'\n/'+artemis+api).encode('utf-8')
signature = base64.b64encode(hmac.new(secret, message, digestmod=hashlib.sha256).digest())
# print(signature)
#header
header_dict = dict()
header_dict['Accept'] = '*/*'
header_dict['Content-Type'] = 'application/json'
header_dict['X-Ca-Key'] = appKey
header_dict['X-Ca-Signature'] = signature
header_dict['X-Ca-timestamp'] = timestamp
header_dict['X-Ca-nonce'] = nonce
header_dict['X-Ca-Signature-Headers'] = 'x-ca-key,x-ca-nonce,x-ca-timestamp'
# print (header_dict)
return header_dict
# 获取安防平台视频区域信息
def get_video_area():
"""
'code': '0', 状态码
'msg': 'success', 请求成功
'data': {'total': 12, 'pageNo': 1, 'pageSize': 1000, 'list': [] } 数据
:return:
"""
payload = {
"pageNo": 1,
"pageSize": 1000,
"resourceType": 'region',
# 传region时查询的为用户有配置权限的区域树,
# 传资源类型如:camera、encodeDevice查询用户对该类资源有权限的区域树;
}
api = '/api/irds/v2/region/nodesByParams'
url = host + ':' + port + '/' + artemis + api
data = requests.post(url, headers=Signature(appSecret,methon,appKey,artemis,api), json=payload,verify=False)
return json.loads(data.text)['data']['list']
# print(get_video_area())
# 根据区域编号获取下一级区域列表v2
def get_video_area_info(data):
"""
'code': '0', 状态码
'msg': 'success', 请求成功
'data': {'total': 12, 'pageNo': 1, 'pageSize': 1000, 'list': [] } 数据
:return:
"""
payload = {
"regionIndexCode": data,
# "regionIndexCode": 'root000000',
"pageNo": 1,
"authCodes": [
"view"
],
"pageSize": 1000,
"cascadeFlag": 0,
"resourceType": "camera",
}
api = '/api/irds/v2/resource/subResources'
url = host + ':' + port + '/' + artemis + api
data = requests.post(url, headers=Signature(appSecret,methon,appKey,artemis,api), json=payload,verify=False)
return json.loads(data.text)['data']['list']
# get_video_area()方法返回各区域indexCode 选取一个区域indexCode进行下级数据请求
# print(get_video_area_info('6847cabd-1240-4f70-9ac6-4ed8c5da12ff'))
# 根据下级区域父indexCode 获取到录像机信息
def get_video_area_vcr_info(data):
"""
'code': '0', 状态码
'msg': 'success', 请求成功
'data': {'total': 12, 'pageNo': 1, 'pageSize': 1000, 'list': [] } 数据
:return:
"""
payload = {
"resourceType": "encodeDevice",
"resourceIndexCodes": data,
}
api = '/api/resource/v1/resource/indexCodes/search'
url = host + ':' + port + '/' + artemis + api
data = requests.post(url, headers=Signature(appSecret,methon,appKey,artemis,api), json=payload,verify=False)
return json.loads(data.text)['data']['list']
# get_video_area_info()方法返回监控点 parentindexCode 选取监控点 parentindexCode进行数据请求
# print(get_video_area_vcr_info(['431e5596e4d641a9b7bbe7d084c42688']))
# 根据对应监控点indexCode获取时效性rtsp流
def get_video_area_rtsp_info(code):
"""
'code': '0', 状态码
'msg': 'success', 请求成功
'data': {'type': 0, 'code': '0', 'msg': 'success', 'data':} 数据
:return:
"""
api = '/api/vnsc/mls/v1/preview/openApi/getPreviewParam'
payload = {
"indexCode": code,
"transmode": 1,
"streamType": 0,
"protocol": "rtsp",
"expireTime": -1
}
url = host + ':' + port + '/' + artemis + api
data = requests.post(url, headers=Signature(appSecret,methon,appKey,artemis,api), json=payload,verify=False)
return json.loads(data.text)
print(get_video_area_rtsp_info('bf4a0923239a4d6db45fef5507e2197e'))
(2)请求示例结果
三. 完整封装类代码
# -*- coding: UTF-8 -*-
import hashlib
import hmac
import base64
import time
import uuid
import requests
import json
# 安防平台SDK参考文档地址
# https://open.hikvision.com/docs/docId?version=%2F29c78ef52ca842c7933bd2b8e051e9d0&tagPath=%E6%96%87%E6%A1%A3%E8%AF%B4%E6%98%8E
# 海康安防平台获取资源信息类
class HikVisionAPI:
def __init__(self, host, port, app_key, app_secret, artemis='artemis', method='POST'):
"""
初始化类,配置海康威视 API 相关信息
:param host: 安防平台主机地址
:param port: 安防平台端口号
:param app_key: 安防平台合作方的 AppKey
:param app_secret: 安防平台合作方的 AppSecret
:param artemis: artemis 服务器路径前缀
:param method: 请求方法(默认为 POST)
"""
self.host = host
self.port = port
self.app_key = app_key
self.app_secret = app_secret
self.artemis = artemis
self.method = method
def _generate_signature(self, api):
"""
生成请求头中的签名信息
:param api: API 路径
:return: 包含签名的请求头字典
"""
timestamp = str(int(round(time.time() * 1000))) # 当前时间戳(毫秒级)
nonce = str(uuid.uuid1()) # 生成唯一随机数
secret = self.app_secret.encode('utf-8')
# 构造签名消息
message = f"{self.method}\n*/*\napplication/json\nx-ca-key:{self.app_key}\nx-ca-nonce:{nonce}\nx-ca-timestamp:{timestamp}\n/{self.artemis}{api}".encode(
'utf-8')
# 计算 HMAC-SHA256 签名并进行 Base64 编码
signature = base64.b64encode(hmac.new(secret, message, digestmod=hashlib.sha256).digest())
# 构造请求头
headers = {
'Accept': '*/*',
'Content-Type': 'application/json',
'X-Ca-Key': self.app_key,
'X-Ca-Signature': signature,
'X-Ca-timestamp': timestamp,
'X-Ca-nonce': nonce,
'X-Ca-Signature-Headers': 'x-ca-key,x-ca-nonce,x-ca-timestamp',
}
return headers
def _post(self, api, payload):
"""
向 HikVision API 发起 POST 请求
:param api: API 路径
:param payload: 请求体参数
:return: API 返回的 JSON 数据
"""
url = f"{self.host}:{self.port}/{self.artemis}{api}" # 构造完整 URL
headers = self._generate_signature(api) # 获取带签名的请求头
response = requests.post(url, headers=headers, json=payload, verify=False, timeout=3) # 发起 POST 请求
return response.json() # 返回 JSON 数据
def get_video_area(self, page_no=1, page_size=1000, resource_type='region'):
"""
获取视频区域信息
:param page_no: 页码(默认第 1 页)
:param page_size: 每页记录数(默认 1000 条)
:param resource_type: 资源类型(默认 "region")
:return: 区域列表数据
"""
api = '/api/irds/v2/region/nodesByParams'
payload = {
"pageNo": page_no,
"pageSize": page_size,
"resourceType": resource_type,
}
return self._post(api, payload).get('data', {}).get('list', [])
def get_video_area_info(self, code, page_no=1, page_size=1000):
"""
获取指定区域的子资源信息
:param code: 区域编号
:param page_no: 页码(默认第 1 页)
:param page_size: 每页记录数(默认 1000 条)
:return: 子资源列表数据
"""
api = '/api/irds/v2/resource/subResources'
payload = {
"regionIndexCode": code,
"pageNo": page_no,
"authCodes": ["view"],
"pageSize": page_size,
"cascadeFlag": 0,
"resourceType": "camera",
}
return self._post(api, payload).get('data', {}).get('list', [])
def get_rtsp_url(self, code):
"""
获取带有效期的 RTSP URL
:param code: 资源编号
:return: RTSP URL(字符串)
"""
api = '/api/vnsc/mls/v1/preview/openApi/getPreviewParam'
payload = {
"indexCode": code,
"transmode": 1,
"streamType": 0,
"protocol": "rtsp",
"expireTime": -1
}
return self._post(api, payload).get('data', {}).get('url', None)
def get_video_area_vcr_info(self, resource_index_codes):
"""
根据资源索引编号获取录像机信息
:param resource_index_codes: 资源索引编号列表
:return: 录像机信息数据
"""
api = '/api/resource/v1/resource/indexCodes/search'
payload = {
"resourceType": "encodeDevice",
"resourceIndexCodes": resource_index_codes,
}
return self._post(api, payload).get('data', {})
# 使用类调用示例
if __name__ == "__main__":
# 实例化 配置相关参数
hik_api = HikVisionAPI(
host='https://192.168.139.246',
port='443',
app_key='24481068',
app_secret='wTdNalUIHRlN5ZknxWzc'
)
# 获取视频区域信息
video_areas = hik_api.get_video_area()
print("视频区域信息:", video_areas)
# 获取区域子设备信息
region_code = '61dbda98-7ed5-4e63-b5d1-55d485d4645e'
sub_resources = hik_api.get_video_area_info(region_code)
print("子设备信息:", sub_resources)
# 获取 时效性 RTSP URL
rtsp_url = hik_api.get_rtsp_url('d2e884e4b9384065957721d11d711932')
print("RTSP URL:", rtsp_url)
# 获取录像机信息(传入参数为监控点资源信息parent_Indexcode)
vcr_info = hik_api.get_video_area_vcr_info(['431e5596e4d641a9b7bbe7d084c42688'])
print("录像机信息:", vcr_info)
四 . 总结
最后,希望大家通过本次学习和实现,能够更好地理解海康综合安防管理平台的接口对接方法,通过实际操作,对代码有更深层次的认知,希望大家在今后的工作中能够不断学习,来年胜今年!