环境准备
在开始之前,需要从海康威视官网下载对应型号的工业相机 SDK 开发包。解压后通常包含动态库(.dll 或.so)和头文件。建议将 SDK 放置在无中文或特殊字符的本地路径下,避免加载时出现异常。
安装 Python 绑定库(以 hikvision 为例):
pip install hikvision
初始化与登录
SDK 使用的第一步是初始化环境并设置日志。这里通过 NET_DVR_Init 启动服务,同时指定日志级别和保存路径,方便后续排查问题。
from hikvision import NetSdk
NetSdk.NET_DVR_Init()
# 日志级别设为 3,保存到当前目录下的 sdk_log 文件夹
NetSdk.NET_DVR_SetLogToFile(3, "./sdk_log/")
接下来配置设备信息并登录。注意 IP、端口及账号密码需与实际设备一致,字符串编码建议使用 UTF-8。
device_info = NetSdk.NET_DVR_DEVICEINFO_V40()
login_params = NetSdk.NET_DVR_USER_LOGIN_INFO()
login_params.bUseTLS = 0
login_params.sDeviceAddress = "192.168.1.64".encode('utf-8')
login_params.wPort = 8000
login_params.sUserName = "admin".encode('utf-8')
login_params.sPassword = "password".encode('utf-8')
user_id = NetSdk.NET_DVR_Login_V40(login_params, device_info)
if user_id < 0:
print("Login failed, error code:", NetSdk.NET_DVR_GetLastError())
启动实时预览
登录成功后,即可配置预览参数。窗口句柄设为 0 表示不显示 UI 窗口,仅获取数据流;通道号和码流类型根据实际设备调整。
preview_params = NetSdk.NET_DVR_PREVIEWINFO()
preview_params.hPlayWnd = 0 # 窗口句柄,0 表示不显示
preview_params.lChannel = 1 # 通道号
preview_params.dwStreamType = 0 # 主码流
preview_params.dwLinkMode = 0 # TCP 模式
realplay_handle = NetSdk.NET_DVR_RealPlay_V40(user_id, preview_params)
if realplay_handle < 0:
(, NetSdk.NET_DVR_GetLastError())

