2012-02-22 37 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實例;