搜了網上一些關于如何在python中實現海康威視相機的連接與畫面播放的資料,最直接的方式是通過rtsp流來實現。
海康的rtsp協議格式如下(參考:海康相機使用RTSP):
rtsp://[username]:[passwd]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream
主碼流:
rtsp://admin:12345@192.168.1.64:554/h264/ch1/main/av_stream
rtsp://admin:12345@192.168.1.64:554/MPEG-4/ch1/main/av_stream
子碼流:
rtsp://admin:12345@192.168.1.64/mpeg4/ch1/sub/av_stream
rtsp://admin:12345@192.168.1.64/h264/ch1/sub/av_stream
對于剛買的網絡相機,需要你更改相機的IP,將其更改到與自己電腦同一個網段,即前三個地址一致。并且設置好相機的用戶名和密碼。
方式一:網頁預覽
打開電腦的IE瀏覽器(或其他瀏覽器),在地址欄輸入你的相機的IP地址,如果還是全新的相機,請去海康官網下載SADP軟件來更改相機的IP并激活相機( 海康威視相機配置流程)。例如我在瀏覽器輸入:127.0.0.1 然后網頁顯示登錄界面如下:
輸入 相機的用戶名和密碼登錄,在預覽選項中可實時查看畫面
方式二:VLC視頻播放器預覽
打開你的VLC media player視頻播放器,選擇 媒體->打開網絡串流,在打開媒體->網絡->請輸入網絡URL中填寫上面提到的rtsp格式的URL;VLC下載地址
然后點擊播放,即可在該播放器中實時預覽相機視頻畫面;
方式三:python讀取rtsp流
其中將下面的代碼中的相應內容替換成你的就OK了,如相機用戶名,密碼,IP地址和端口號(常見為554)
import cv2 cap = cv2.VideoCapture("rtsp://username:passport@ip:port/Streaming/Channels/1") ret, frame = cap.read() while ret: ret, frame = cap.read() cv2.imshow("frame",frame) if cv2.waitKey(1) & 0xFF == ord('q'): break cv2.destroyAllWindows() cap.release()
運行上述代碼需要你安裝相應的opencv庫,我在anaconda下運行的,裝的是opencv-python庫。還需要你去官網下載海康的SDK(針對自己的電腦系統環境下載對應版本)將里面的HCNetSDKCom文件夾放在python代碼同目錄下!
方法三會出現畫面卡頓的現象,具體原因分析可參考:網絡攝像機畫面卡頓的主要原因有哪些? 視頻花屏分析
補充資料:
NTPLIB時間同步問題:
Python通過NTP同步獲取時間方法
python ntp服務器同步時間
使用python同步PC本地時間
Python中的NTP時間同步
https://www.cnblogs.com/general-seven/p/5893744.html
本文為張軍原創文章,轉載無需和我聯系,但請注明來自張軍的軍軍小站,個人博客http://m.eyofj.com
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
