我正在使用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的情况下获取数据,但导致了同样的错误。
答案 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;
此外,尝试启用访客访问权限并从代码中删除您的用户名/密码,看看是否有效。