我是靠谱客的博主 激昂巨人,这篇文章主要介绍C#通过OpenCv获取网络摄像头(IP摄像头)拍摄到的视频本文介绍,现在分享给大家,希望可以做个参考。

@TOC

本文介绍

本文介绍利用C#获取IP摄像头拍摄到的实时视频

说在前面

首先需要一台支持rtsp协议的网络摄像头(购买的时候会有说明,或者问客服)
环境:visual studio 2017
网络摄像头的使用:(以我买的摄像头为例子)
买了以后看看他们的说明书,首先需要下载专门的软件,在摄像头通电以后用该软件扫摄像头上面的二维码添加设备,添加成功后就可以在手机上实时看到摄像头的拍摄内容了,同时也可以在这软件查到该摄像头的一些信息,例如IP地址网关等等(其中这个IP地址就是下面我们需要找到的rtsp地址的一部分,需要注意一下)

步骤

  1. 安装opencv
  2. 获取视频资源的代码书写
  3. 获取网络摄像头的rtsp地址
  4. 效果展示

安装opencv

安装opencv很简单 具体参考我之前的这篇文章
C# winform项目使用OpenCv调用电脑本机摄像头

获取视频资源的代码书写

所有代码如下

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using OpenCvSharp; using OpenCvSharp.Blob; using OpenCvSharp.Extensions; using OpenCvSharp.UserInterface; using System.Threading; namespace Call_the_camera_for_OpenCv { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { //VideoCapture后面参数为0表示获取电脑本机摄像头拍摄的内容 如果输入rtsp地址就是获取网络摄像头的拍摄内容 //var capture = new VideoCapture(0); string rtspStr = "rtsp://账号:密码@IP摄像头的IP地址:554/stream1"; var capture = new VideoCapture(rtspStr); //此处参考网上的读取方法 int sleepTime = (int)Math.Round(1000 / capture.Fps); // 声明实例 Mat类 Mat image = new Mat(); // 进入读取视频每镇的循环 while (true) { capture.Read(image); //判断是否还有没有视频图像 if (image.Empty()) break; // 在picturebox中播放视频, 需要先转换成bitmap格式 pictureBox1.Image = OpenCvSharp.Extensions.BitmapConverter.ToBitmap(image); Cv2.WaitKey(sleepTime); } } } }

注意代码
需要添加一个button控件 并且为这个button控件添加 一个 Click事件button1_Click
我们知道 视频就是无数张图片的集合 所以我们需要添加一个picturebox控件,本项目控件名字为pictureBox1 主要是为了显示拍摄到的视频

如果不清楚如何新建C#项目添加控件 可以先上网查查
或者参考我这篇文章
添加链接描述

看过上面的代码我们就知道
VideoCapture后面参数为0表示获取电脑本机摄像头拍摄的内容 如果输入rtsp地址就是获取网络摄像头的拍摄内容
那么如何获取摄像头的rtsp地址呢

获取网络摄像头的rtsp地址

首先网络摄像头的rtsp地址格式每个品牌都不一样,着需要我们去问客服问卖家,只有他们知道。
一些比较出名的品牌的话可能在百度也能查到
我用的是京目摄像头
通过问淘宝客服知道rtsp格式为
rtsp://密码:账号@网络摄像头的IP地址/stream1
我们需要找到的是IP地址和账号以及密码

首先是IP地址的查找
这个我们可以在买摄像头的时候专门用来查看监控的软件上面查到(每个网络摄像头都会有专门的软件来查看拍摄的视频,主要是为了远程监控吧)
也可以问客服要一个搜索摄像头IP地址的工具,我当时就问了他要。
这个搜索工具是一个电脑软件,首先需要电脑和摄像头连接在同一个wifi上,也就是局域网,然后打开软件就能立马搜索到连接在这个wifi上面的摄像头,话说可能这个工具可以在外面查查附近有没有监控,挺好用的。

剩下的就是密码账号的查找
这个可以直接问客服
但是我当时问客服客服说是123456后来我发现是错的(当时真的弄了我半天没搞成,立马给了客服差评)
也可以浏览器中靠运气试出来(我当时就是试出来的),具体操作就是,因为在IP搜索工具上面查到了摄像头的IP地址嘛而且他说端口是80端口,然后我就在浏览器中输入 ip地址:80 这样,然后就打开了一个登录界面(注意前提是电脑和摄像头连接在同一个wifi下),登录界面需要输入账号和密码,然后我就按照客服给的rtsp账号和密码登录结果不行然后密码换成12345就可以了,那就可以知道rtsp的账号和密码了
在这里插入图片描述
后来发现这个网页里面也可以找到摄像头的IP地址

找到完整的rtsp地址以后,就可以代入代上面的代码里面了,点击运行就能看到效果。注意电脑和摄像头必须连接在同一个wifi下

最后

以上就是激昂巨人最近收集整理的关于C#通过OpenCv获取网络摄像头(IP摄像头)拍摄到的视频本文介绍的全部内容,更多相关C#通过OpenCv获取网络摄像头(IP摄像头)拍摄到内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部