2012-02-22 3 views
2

У меня возникла проблема при работе с IP-камерой Panasonic (BL-C111CE).Как проверить подлинность с помощью IP-камеры?

Я хочу получить поток 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" 

Эта команда отлично работает, когда я включил просмотр видео привилегий для обычного пользователя в настройках камеры. Но когда я отключу эту привилегию, вышеуказанная команда не выполнена.

Я искал, и я знал, что мне нужно отправить имя пользователя и пароль администратора для аутентификации на Камере.

Но я не знаю синтаксиса для отправки моего имени пользователя и пароля. И какой шаг я должен отправить?

Большое спасибо,

Фонг Le

+0

Попробуйте что-нибудь вроде libcurl. – v01d

+0

Не большинство медиа-библиотек (libvformat) ffmpeg делают это для вас, когда вы открываете имя файла типа «http: // имя пользователя: [email protected]/foo/blah.jpeg»? – Lalaland

ответ

1

Я думаю, что вам, возможно, придется использовать какие-то проверки подлинности HTTP, либо Basic или Digest. Я хотел бы попробовать с проверкой подлинности первого, так отправить дополнительный заголовок в запросе, как

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

Для AuthString вы строите «имя пользователя: пароль» строку и кодировать его с помощью base64.

Просмотрите связанные статьи Википедии для получения дополнительной информации об аутентификации HTTP.

+0

Все прошло отлично! Большое вам спасибо ^^ – Levanphong7887

0

я разрешила часть о разрешении на

request.setHeader ("Авторизация", "Basic" + Base64.encodeToString ("пользователь: пароль" .getBytes(), Base64.NO_WRAP));

где запрос - экземпляр HttpGet;

Смежные вопросы