2012-02-22 209 views
2

使用IP Camera Panasonic(BL-C111CE)时遇到问题。如何使用网络摄像机进行身份验证?

我想从这台相机获得运动JPEG流。所以我做以下步骤:当我启用摄像头的设置一般用户的特权视点视频

1. Open socket on HTTP port: 

mySocket = connect("192.168.1.253" /*ip*/, "80" /*port*/); 

2. Send the following string command to camera: 

"GET /nphMotionJpeg?&Resolution=640x480&Quality=Motion&Framerate=30 HTTP/1.1\r\n\r\n" 

此命令做工精细。但是,当我禁用此特权时,上述命令失败。

我搜索了,我知道我需要发送管理员的用户名和密码才能向Camera进行身份验证。

但我不知道发送我的用户名和密码的语法。我必须发送哪一步?

非常感谢,

海防勒

+0

尝试使用libcurl之类的东西。 – v01d 2012-02-22 14:47:13

+0

当您打开类型为“http:// username:[email protected]/foo/blah.jpeg”的文件名时,大多数媒体库(ffmpeg's libavformat)都不会为您做这件事吗? – Lalaland 2012-02-22 14:56:24

回答

1

我想你可能需要使用某种形式的HTTP认证,无论是BasicDigest。我使用基本身份验证先试,所以在您的请求发送额外的头部像

GET /nphMotionJpeg?&Resolution=640x480&Quality=Motion&Framerate=30 HTTP/1.1 
Authorization: Basic <AuthString> 

对于AuthString你创建一个字符串“用户名:密码”,并使用Base64编码它。

查看链接的维基百科文章,了解有关HTTP身份验证的更多信息。

+0

它工作得很好!非常感谢你^^ – Levanphong7887 2012-02-23 13:30:56

0

i加

request.setHeader解决关于授权的部分( “授权”, “基本” + Base64.encodeToString( “用户:密码” .getBytes(),Base64.NO_WRAP));

其中request是一个HttpGet实例;