2015-03-12 2 views
1

У меня есть 16 аналоговых камер, которые подаются на мой DVR Defender. Я могу получить доступ к каналам камеры локально, перейдя на конкретный порт и введя данные для входа, используя элемент управления ActiveX в IE. Я также могу просматривать их через приложения из приложений Apple, рвущихся на iPad, просто вводя внешний IP-адрес, номер порта и учетные данные для входа.Как захватить широковещательную передачу DVTV CCTV для пользовательского приложения

Мой вопрос: если я хотел создать приложение, подобное тем, что находятся в магазине приложений. Как бы я общался с потоком видео/изображений DVR?

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

Кажется, что многие DVR откладывают на те же приложения на рынке, что и я предполагаю, что все они соответствуют стандарту при выводе данных.

спасибо.

+0

Вам необходимо получить спецификацию API для вашего видеорегистратора. Спросите производителя. –

+0

Производитель не хотел предоставлять эту информацию. –

ответ

1

Множество камер передают данные по HTTP с использованием Mixed-Replace Content-Type. Если вы можете получить доступ к своей камере в браузере, очень вероятно, что он использует HTTP.

Предполагая, что это ваш случай, вам нужно будет выяснить, какой URL-адрес использует ваша камера для обслуживания потока. Таким образом, вы могли бы:

  • Попробуйте найти список как this в Интернете, по погуглить модель камеры
  • Осматривая браузер самостоятельно (это потребует некоторых знаний о HTML5)

После того как вы есть URL, вы можете быть уверены, что если вы имеете дело с Mixed-Replace запроса, если у вас есть терминал с завитком, вы можете использовать что-то вроде:

$ curl --head http://user:[email protected]/video.cgi 

Мой са Mera возвращает следующий заголовок:

HTTP/1.0 200 OK 
Server: alphapd 
Date: Thu Jan 9 09:04:59 2014 
Pragma: no-cache 
Cache-Control: no-cache 
Content-Type: multipart/x-mixed-replace;boundary=video boundary-- 

Это означает, что у меня есть Mixed-Заменить ответ отделенной строкой «--video boundary--» (смотрите в поле Content-Type).

тело запроса выглядит следующим образом:

--video boundary-- 
<metadata> 
<image> 
--video boundary-- 
<metadata> 
<image> 
... 
(Neverending request body of real time delivered images) 

Теперь ваш подход будет зависеть от того, какое приложение вы хотите встроить поток. В моем случае, мне просто нужно положить их на веб-страницы, так что Firefox сделал мне одолжение, и я мог бы интегрировать его с:

<img src="http://user:[email protected]/video.cgi"> 

Но вы, возможно, придется разбора и захвата каждого входящего изображения самостоятельно в зависимости по вашей заявке.

+0

Спасибо за подробное описание здесь. Это хорошо. Я последую за этим и посмотрю, где он меня принимает. Полагаю, я также могу наблюдать за трафиком из других приложений iPad, которые делают то же самое, чтобы увидеть, где и как они ищут изображения. –

0

Есть стандарты, поэтому вам нужно просто осмотреться и не ожидайте, что какой-либо производитель dvr предоставит вам доступ к api, многие из которых попробовали, они просто не отдают его, как бы вы не хотели привязываться к конкретная реализация dvr, я бы посоветовал вам начать с кода ispy C# http://www.ispyconnect.com, и это даст вам представление о том, как это работает вообще, поскольку Ispy поддерживает многие типы камер, будь то ip или веб-камера ...

Код для аналоговых камерам будет сложнее найти такую ​​удачу ...