概述
@TOC
本文介绍
本文介绍利用C#获取IP摄像头拍摄到的实时视频
说在前面
首先需要一台支持rtsp协议的网络摄像头(购买的时候会有说明,或者问客服)
环境:visual studio 2017
网络摄像头的使用:(以我买的摄像头为例子)
买了以后看看他们的说明书,首先需要下载专门的软件,在摄像头通电以后用该软件扫摄像头上面的二维码添加设备,添加成功后就可以在手机上实时看到摄像头的拍摄内容了,同时也可以在这软件查到该摄像头的一些信息,例如IP地址网关等等(其中这个IP地址就是下面我们需要找到的rtsp地址的一部分,需要注意一下)
步骤
- 安装opencv
- 获取视频资源的代码书写
- 获取网络摄像头的rtsp地址
- 效果展示
安装opencv
安装opencv很简单 具体参考我之前的这篇文章
C# winform项目使用OpenCv调用电脑本机摄像头
获取视频资源的代码书写
所有代码如下
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摄像头)拍摄到的视频本文介绍所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复