使用手机摄像头做网络ip摄像头 并用opencv获取rtsp视频流

这里写自定义目录标题

  • 前言
  • 准备工作
  • DroidCam使用方法
  • IP摄像头使用方法
  • 使用opencv调用摄像头

前言

最近要做一个和图像有关的项目,需要获取热成像摄像头的输入进行处理,最终调研找到了一款网络摄像机。苦于没有网络摄像机的使用经验,怕到时候花了几千大洋买的摄像机不能用,便想先验证一下opencv是否可以获取网络摄像机的实时视频流,就用半天多时间做了这个测试。

准备工作

  1. 带摄像头的安卓手机一部
  2. 电脑一台
  3. 电脑上需要有浏览器
  4. app软件:DroidCam或IP摄像头
  5. 为了验证可以用opencv获取视频数据,电脑上需要安装python+opencv(或其他版本的也可以,我用的python,不需要用opencv获取图像的同学可以忽略这一条)

DroidCam使用方法

  1. 安装软件(废话,不安装咋用?)

  2. 打开软件

  3. 打开手机wifi,连接路由器,使手机和电脑处于同一个局域网

  4. 在电脑上打开浏览器,输入3中屏幕上显示的ip地址

  5. 完活!
    在这里插入图片描述

IP摄像头使用方法

  1. 安装软件

  2. 打开软件

  3. 打开手机wifi,连接路由器,使手机和电脑处于同一个局域网

    4.在电脑上打开浏览器,输入3中屏幕上显示的ip地址

  4. 完活!
    在这里插入图片描述

使用opencv调用摄像头

DroidCam会报错,这里使用ip摄像头
先贴代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import cv2

url = 'rtsp://admin:[email protected]:8554/live'  
cap = cv2.VideoCapture(url)

while(cap.isOpened()):
    # Capture frame-by-frame  
    ret, frame = cap.read()
    # Display the resulting frame  
    cv2.imshow('frame',frame)
   
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
# When everything done, release the capture  
cap.release()
cv2.destroyAllWindows()

代码来源:用OpenCV调用IP摄像头(python版)

  1. 打开IP摄像头,记得在rtsp那里打勾?
  2. 把代码里的ip改成自己的,用户名和密码自己在app的设置里面改
  3. 用python运行代码可以得到如下结果:

在这里插入图片描述

参考链接:
[1] 用OpenCV调用IP摄像头(python版)
[2] python+opencv调用ip摄像头(基于RTSP实现)
[3] 各品牌网络监控摄像头RTSP地址查询