[英]how to capture ip camera with C#
下面是我试图捕获Wanscam ip摄像机的代码,但是现在无法正常工作,正在引发一些异常并且完全没有异常,我真的不知道发生了什么
远程服务器返回错误:(401)未经授权。 有时这是例外,但很多时候甚至都不知道发生了什么样的例外。
因为现在谢谢大家,请任何人都可以发现一些东西。
表单中只有一个按钮,只要此按钮显示“停止”,循环就会更新图片框。
相机是Wanscam AJ-C2WA-C198,我知道这不是世界上最出色的相机。
和我的管理员名称和密码正确匹配。
编辑::我注意到在VLC上,我再次输入管理员和密码后会看到该图像,但是我已经在奇怪的URL上了
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Net;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace cam01
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public Thread _cameraThread;
private string metaUrl = "http://home-ip-camera.dyndns-server.com/videostream.asf?user=<USER_NAME>&pwd=<PASSWORD>resolution=64&rate=0";
public HttpWebRequest req;
public WebResponse res;
public System.IO.Stream stream;
private void button1_Click(object sender, EventArgs e)
{
if (btnMain.Text.Equals("Start"))
{
if (_cameraThread == null)
_cameraThread = new Thread(new ThreadStart(Run));
_cameraThread.Start();
btnMain.Text = "Stop";
}
else
{
btnMain.Text = "Start";
_cameraThread.Abort();
_cameraThread = null;
}
}
private void Run()
{
while (btnMain.Text.Equals("Stop"))
{
try
{
req = (HttpWebRequest)HttpWebRequest.Create(metaUrl);
req.AllowWriteStreamBuffering = true;
req.Timeout = 20000;
res = req.GetResponse();
stream = res.GetResponseStream();
pictureBox1.Image = Image.FromStream(stream);
res.Close();
}
catch (Exception e)
{
Console.WriteLine("Exception: {0}", e.ToString());
}
}
}
}
}
`
您可以检查http端口设置是否正确。 (在您的DDNS上路由或在get-query中指定)。 默认端口是99,而不是80!
此外,您还可以尝试使用/videostream.cgi?user=<USENAME>&pwd=<PASSWORD>
-它让你MJPEG流,而不是FFMPEG,提供videostream.asf
最后,尝试在您的请求中指定信用:
req.Credentials = new NetworkCredential("<USENAME>", "<PASSWORD>");
并尝试另一个查询参数: loginuse=<USENAME>&loginpass=<PASSWORD>
尝试在CD或公司网站上找到相机的sdk(软件开发套件)。出于性能原因,大多数相机SDK是用c / c ++编写的,请尝试将它们包装在C#中。 强烈建议不要在c#中使用指针,但仅出于Microsoft向后兼容非托管代码的原因而包含指针。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.