任务:用脚本控制海康摄像头抓拍。
这个任务其实很简单,代码也就几行。但是对于没有接触过网络摄像头技术的小白来说,可能会不知从何下手。这里简单介绍一下原理,并提供参考代码。
现在的网络摄像头基本都提供了RTSP服务。 这个服务就是我们用python脚本控制镜头的抓手。
什么是RTSP服务呢? 一句话来概括,RTSP给我们提供了一个遥控器,用来远程操控镜头的视频流。
所以,开头那个任务就变成了“如何用python脚本控制遥控器”。
怎么控制呢?一个办法利用openCV库,下面是一个简单的demo。
# 这个代码注意点 设置好正确的用户名、密码、ip、端口,端口默认为554,
import cv2
#用户名
username = "用户名"
#密码
password = "密码"
#摄像头ip
ip = "192.168.100.100"
#端口
port = "554"
cap = cv2.VideoCapture("rtsp://" + username + ":" + password+ "@" + ip + ":" + port + "/Streaming/Channels/1")
# 摄像头是否处于打开状态可以通过isOpened()方法进行判断
isOpened = cap.isOpened()
if isOpened :
# 可以通过read() 方法读取图像
ret, frame = cap.read()
#再代码目录下生成tmp.jpg图片文件
cv2.imwrite("tmp.jpg", frame)
cap.release()
print('完成抓拍')