任務(wù):用腳本控制海康攝像頭抓拍李皇。
這個(gè)任務(wù)其實(shí)很簡(jiǎn)單削茁,代碼也就幾行。但是對(duì)于沒(méi)有接觸過(guò)網(wǎng)絡(luò)攝像頭技術(shù)的小白來(lái)說(shuō)掉房,可能會(huì)不知從何下手茧跋。這里簡(jiǎn)單介紹一下原理,并提供參考代碼卓囚。
現(xiàn)在的網(wǎng)絡(luò)攝像頭基本都提供了RTSP服務(wù)瘾杭。 這個(gè)服務(wù)就是我們用python腳本控制鏡頭的抓手。
RTSP默認(rèn)端口是554
什么是RTSP服務(wù)呢哪亿? 一句話來(lái)概括粥烁,RTSP給我們提供了一個(gè)遙控器,用來(lái)遠(yuǎn)程操控鏡頭的視頻流蝇棉。
所以讨阻,開(kāi)頭那個(gè)任務(wù)就變成了“如何用python腳本控制遙控器”。
怎么控制呢篡殷?一個(gè)辦法利用openCV庫(kù)钝吮,下面是一個(gè)簡(jiǎn)單的demo。
# 這個(gè)代碼注意點(diǎn) 設(shè)置好正確的用戶名板辽、密碼奇瘦、ip、端口劲弦,端口默認(rèn)為554耳标,
import cv2
#用戶名
username = "用戶名"
#密碼
password = "密碼"
#攝像頭ip
ip = "192.168.100.100"
#端口
port = "554"
cap = cv2.VideoCapture("rtsp://" + username + ":" + password+ "@" + ip + ":" + port + "/Streaming/Channels/1")
# 攝像頭是否處于打開(kāi)狀態(tài)可以通過(guò)isOpened()方法進(jìn)行判斷
isOpened = cap.isOpened()
if isOpened :
# 可以通過(guò)read() 方法讀取圖像
ret, frame = cap.read()
#再代碼目錄下生成tmp.jpg圖片文件
cv2.imwrite("tmp.jpg", frame)
cap.release()
print('完成抓拍')