跳到主要内容

接入Hikvision摄像头

获取模板

examples/rtspDeviceShifu 中查看模板文件。

修改配置

examples/rtspDeviceShifu/camera-deployment/deviceshifu-camera-deployment.yaml 中:

spec:
...
template:
...
spec:
containers:
...
- image: edgehub/camera-python:v0.0.1
...
env:
- name: EDGEDEVICE_NAME
value: "edgedevice-camera"
- name: EDGEDEVICE_NAMESPACE
value: "devices"
- name: IP_CAMERA_ADDRESS
value: "192.168.14.254" # 修改此值
- name: IP_CAMERA_USERNAME
value: "admin" # 修改此值
- name: IP_CAMERA_PASSWORD
value: "password" # 修改此值
- name: IP_CAMERA_CONTAINER_PORT
value: "11112" # 修改此值
...
推荐使用Secret存储密码,对于接入设备这是不必要的,但是这样会大大加强安全性
  1. 创建 Secret,在 rtsp_password 字段填写密码
kubectl create secret generic deviceshifu-secret --from-literal=rtsp_password=your_password -n deviceshifu
  1. 将环境变量IP_CAMERA_PASSWORD的值修改为从Secret中获取
- name: IP_CAMERA_PASSWORD
valueFrom:
secretKeyRef:
name: deviceshifu-secret
key: rtsp_password
optional: false
提示

查看摄像头的ip地址可以使用海康威视提供的官方工具:

SADP

部署deviceShifu

执行下面的命令:

kubectl apply -f examples/rtspDeviceShifu/camera-deployment

与deviceShifu交互

examples/rtspDeviceShifu/camera-deployment/deviceshifu-camera-configmap.yaml 中:

data:
...
instructions: |
...
instructions:
capture:
info:
stream:
move/up:
move/down:
move/left:
move/right:

您可以通过这些指令与数字孪生交互,这等同于操作实际的海康威视摄像头。

通过浏览器访问摄像头

我们可以通过service 来实现对 pod 的访问 , 在默认的yaml 文件中我们已经设置了对应的 service , 现在只需要用它启用端转发

通过下面的命令获得当前的 service列表

kubectl get svc -A 

其中存在时间最短的应该就是我们刚刚添加的service , 通过下面命令我们开启端口转发

kubectl port-forward -n deviceshifu svc/<填入刚刚添加的service名> 3000:

运行顺利的话我们可以看到如下输出

Forwarding from 127.0.0.1:3000 -> 8080
Forwarding from [::1]:3000 -> 8080

然后就可以实现从浏览器访问摄像头了 比如访问 localhost:3000/info 应该就会显示摄像头相关的信息 将info 替换为其他的 instruction 就可以实现对应的功能