计算机系统应用教程网站

网站首页 > 技术文章 正文

手机当做IP摄像头与OpenCV自动重连实验

btikc 2024-12-09 10:56:10 技术文章 47 ℃ 0 评论

最近在准备远程视频监控分析项目,IP摄像头还在选型,临时用闲置的手机作为IP摄像头来测试。另外,实际使用中,设备重启是时常需要的事情,这里模拟一下重启摄像头重连的试验。


  • IP摄像头软件,选择的是DroidCam,从软猫下载 https://softmall.net/apps/1272
  • 闲置手机是7-8年前的360,厂家不做了,手机应用商店作废了,无法直接安装程序。只能用电脑,下载360手机助手,通过手机usb线连接,上传IP摄像头软件到手机,从手机文件夹中安装。

OpenCV,搞IT的大概都知道,是视频处理的核心工具库。这里就直接上代码

import cv2
import time

ip_video="http://192.168.18.8:4747/video"   #DroidCam地址

"""网络ip摄像头重连"""

cap=cv2.VideoCapture(ip_video)
success=False
sleep_time=8

while True:
    if cap:
        if cap.isOpened():
            success,frame=cap.read()
        else:
            cap.release()
            time.sleep(sleep_time)
            cap = cv2.VideoCapture(ip_video)
        if not success:
            cap.release()
            time.sleep(sleep_time)
            cap = cv2.VideoCapture(ip_video)
        else:
            print(frame.shape)
            cv2.imshow("camera",frame)
    else:
        time.sleep(sleep_time)
        cap = cv2.VideoCapture(ip_video)
    if cv2.waitKey(1) & 0xFF == ord("q"):
        break

ip_video="http://192.168.18.8:4747/video" 打开DroidCam时,界面显示的地址。

核心的重连代码:

cap.release()   #cap非空时
time.sleep(sleep_time)
cap = cv2.VideoCapture(ip_video)

*当cap非空时,也就是中途视频断流,或重新开机,就先释放摄像头,等几秒钟,再重连

*当cap为空,也就是首次连接摄像头没成功,等几秒,再重连

注意:时间等待很重要,否则会出现有画面,但不更新的情况

大家可以自由的使用IP摄像头了,即使设备重启或临时中断,不久也能自动恢复视频画面。

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表