来自IP Camera HttpWebRequest的Aforge直播

时间:2012-09-04 13:51:23

标签: c# aforge ip-camera

我正在使用Aforge尝试从IP摄像头获取实时流。我的问题是,我的连接由于某种原因不断关闭。出于测试目的,我将相机直接连接到我的计算机,并通过此LAN连接到它。

错误:

  

基础连接已关闭:连接已关闭   出乎意料。

以下是我正在使用的代码:

stream.NewFrame += new NewFrameEventHandler(video_NewFrame);
stream.VideoSourceError += new VideoSourceErrorEventHandler(stream_VideoSourceError);
stream.Login = "login";
stream.Password = "pass";
stream.RequestTimeout = 10000;
stream.Source = "http://192.168.0.33/nphMotionJpeg?Resolution=320x240&Quality=Standard";  
stream.Start();

我已经看到有些人建议在app.config中设置一个设置,我也这样做了:

<system.net>
  <settings>
    <httpWebRequest useUnsafeHeaderParsing="true"/>
  </settings>
</system.net>

没有编辑关闭app.config,我得到一个不同的错误。 (违反协议)

有没有人遇到过这些问题或知道如何让它发挥作用?

注意:我还尝试在没有Aforge like this的情况下获取数据,但导致了同样的错误。

2 个答案:

答案 0 :(得分:2)

尝试以下操作,看它是否有效。

stream.Login = "login";
stream.Password = "pass";
stream.ForceBasicAuthentication = true;
stream.RequestTimeout = 10000;
stream.Source = "http://192.168.0.33/nphMotionJpeg?Resolution=320x240&Quality=Standard";  
stream.Start();

答案 1 :(得分:1)

我不相信它是aforge(https://code.google.com/p/aforge/source/browse/trunk/Sources/Video/MJPEGStream.cs)中的一个选项,但看起来相机需要HTTP v1.0。请参阅第56页的手册http://csj.psn-web.net/netwkcam_net/download/us/document/NEW_Camera_CGI_Interface_v4.30.pdf

  

(1)开始接收建立连接(打开套接字),然后发送   以下命令字符串到HTTP端口。 “得到   http:// xxx.xxx.xxx.xxx:yy/nphMotionJpeg?Resolution=320x240&Quality=Standard    HTTP / 1.0 \ r \ n “xxx.xxx.xxx.xxx:IP地址或域名yy:HTTP端口   没有。 (如果端口号设置为80,则不需要)

如果您可以访问代码,可以尝试

//setting http v1.0 in c#
HttpWebRequest request = (HttpWebRequest)base.GetWebRequest(address);
request.ProtocolVersion = HttpVersion.Version10;

此外,尝试启用访客访问权限并从代码中删除您的用户名/密码,看看是否有效。