Материал из for iRidium developers
Перейти к: навигация, поиск
Other languages:
English • ‎русский

IP камеры и DVR

Получение видео-потока с IP камер и цифровых видео-регистраторов

Видео с IP-камер

Динамические изображения (Dynamic Images) – потоковое видео или снепшоты, загружаемые из ресурса в Интернете или локальной сети. В качестве ресурса может выступать DVR, IP-камера, видео-регистратор, сервер.

Поддерживаются видео-кодеки:

  • JPEG / MJPEG - потоковое видео и по-кадровое получение данных от IP-камеры или регистратора кадры (снеп-шоты) - изображения *.jpg или *.png
  • H.264 / MPEG-4 - видео высокой степени сжатия


Для работы нужна прямая ссылка на изображение или видео-поток (без элементов интерфейса, компонентов ActiveX и т.п.).

где найти прямую ссылку на поток с IP-камеры:

Editor gallery project dynamic images.png

Добавим ссылку в проект iRidium:

GALLERY >
Project Gallery > Dynamic Images >
Add Dynamic Image

- добавить в проект ссылку на IP-камеру или поток с регистратора.


Пример ссылки на динамическое изображение:

http://root:root@192.168.0.100:80/source/video.mjpg

rtsp://root:root@mydomain.com:554/mpeg4/media.amp

протокол передачи данных (HTTP или RTSP)
логин:пароль доступа к камере
адрес ресурса - источника видео
порт подключения к источнику
ссылка на поток данных


Настроим ссылку в проекте:

Editor gallery window dynamic image.png
  • URI - ссылка на видео-поток (или поток кадров). Логин, пароль и порт доступа к камере можно указать в строках ниже
  • Port- для JPEG/MJPEG, по умолчанию, порт: 80, для MPEG-4/H.264 порт: 554
  • Login / Password - логин и пароль доступа к видео-потоку с камеры
  • Refresh (мс) - переподключение к источнику видео
    • Refresh: 0 (мс) - для потокового видео MJPEG/H.264/MPEG-4.
    • Refresh: 1000...n (мс) - для по-кадровой трансляции JPEG
  • Demuxer - автоматический или ручной выбор типа потока FFMPEG (для случаев, когда поток не определяется автоматически). Иногда используется при работе с Mobotix
  • Probe Size: 50000 (Кб) - размер буфера данных в Кб, который приложение загрузит перед началом воспроизведения видео. По умолчанию, если оставить 0, составляет 5 Мб. Можно уменьшить для камер с малым разрешением или для медленного соединения, но, не рекомендуются значения менее 20000 Кб
  • Param - строка для указания типа транспорта RTSP. Укажите
    • rtsp_transport=tcp; если RTSP поток с IP камеры загружается через Интернет или его качество неудовлетворительное
    • rtsp_transport=udp; или пустое поле подключает загрузку RTSP потока в локальной сети по UDP
  • Audio - определяет необходимость воспроизведения аудио-потока с mxpeg камеры (если таковой имеется)

Клавишей Test In Browser вы можете проверить работу JPEG/MJPEG ссылки: камера в браузере должна отображаться без элементов управления, рамок и др. программных оболочек.


Привяжем камеру к графическому элементу:

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

StretchIPCamera.png

Чтобы выбрать способ масштабирования потока с IP-камеры на графическом элементе, откройте вкладку "Stretch & Filtration" и укажите способ масштабирования для Image:

  • None - не масштабировать поток с IP-камеры
  • Proportional - масштабировать с сохранением пропорций
  • Full Size - масштабировать без сохранения пропорций, по размеру элемента


Число видимых камер в вашем проекте не должно быть больше 4-5 для стабильной работы проекта iRidium. К видимым относятся все камеры, находящиеся на открытых в данный момент страницах и попапах проекта. Чем больше разрешение камеры и чем меньше ресурсов у панели управления, тем меньше камер можно отобразить.

Превышение рекомендуемого числа камер может привести к проблемам при работе всего проекта.

Через скрипт можно привязать на графический элемент только одно динамическое изображение. Это значит, что нельзя через скрипт установить одно изображение в State 1, и другое - в State 2 элемента.



Погодные информеры

Погодный информер – расположенное по статической ссылке изображение, которое с определенной периодичностью обновляется и доступно для загрузки по НТТР. Коды информеров предоставляются различными сайтами, например:

Сервис предоставляет код для вставки на сайт, из которого нам понадобится только ссылка на изображение (картинку) в формате png или jpg, она настраивается аналогично ссылке на IP-камеру в Gallery > Project Gallery > Dynamic Images:


Пример погодного информера на сайте:

Editor informer dynamic image.png

Пример ссылки на погодный информер в iRidium:

Editor informer add dynamic image.png
  • URI - ссылка на изображение, проверенная в браузере, целиком вставляется в строку URI настроек камеры.
  • Refresh: 1000...n (мс) - частота обновления картинки, не указывайте меньше 1000 мс


http://info.weather.yandex.net/moscow/3_white.ru.png

протокол передачи данных (HTTP)
адрес ресурса - источника видео
ссылка на изображение-информер


Клавишей Test In Browser проверьте работу готовой ссылки.

Перетащите изображение на элемент. Размер элемента должен совпадать с разрешением информера для качественного отображения.

Редактировать ссылку можно по двойному клику на элемент, к которому она привязана.


PTZ контроль

PTZ контроль - это управление IP камерой или видео-регистратором по HTTP. Если ваша камера поддерживает команды PTZ, вы можете управлять ей: изменить положение камеры, если она оснащена приводом для поворота, изменить точку фокусировки, усатновить параметры записи и другое.

Команды PTZ необходимо отправлять с помощью драйвера AV & Custom Systems (HTTP), обычно они формируются как GET запросы, котрые можно отправить через барузер. Изучите REST API вашей камеры или регистратора, чтобы получить список команд PTZ, используйте этот список в соответствии с инстуркцией AV & Custom Systems (HTTP).


Видео с камер панели управления

Если i3 pro работает на iOS, Windows или Android устройстве, оснащенном фронтальной камерой (или на ноутбуке с веб-камерой), вы можете подключить отображение видео с этой камеры в проекте iRidium.

Обычно эта возможность используется при работе с SIP видео для демонстрации потока, котрый передается по протоколу SIP другому абоненту.


Чтобы отобразить видео с основной или фронтальной камеры панели управления в своем проекте, привяжите ссылку на камеру к графическому элементу и запустите получение потока. Настройка производится в редакторе скриптов (JS):

IR.AddListener(IR.EVENT_START,0,function()
{
   // link the camera image to display Item
   IR.GetItem("Page 1").GetItem("Item 1").GetState(0).Image = "ir_camera://";
});
function CameraStart ()
{
   // start the camera record and flip it into vertical position (if started on iPad)
   IR.Camera(IR.CAMERA_RECORD, IR.CAMERA_FRONT, IR.CAMERA_RESOLUTION_MEDIUM);
   IR.Camera(IR.CAMERA_FLIP_VERTICAL, 1);
}
function CameraStop ()
{
   // stop the camera record
   IR.Camera(IR.CAMERA_STOP);
}


Запустить и остановить демонстрацию видео вы можете, вызывая функции CameraStart и CameraStop командой ScriptCall:

JSguide helloFunction.png


То же самое можно сделать, добавив вызов функций по какому-то событию в скриптах:

IR.AddListener(IR.EVENT_APP_ENTER_FOREGROUND, 0, function()
{
    CameraStart (); // start video when iRidium in foreground
});
IR.AddListener(IR.EVENT_APP_ENTER_BACKGROUND, 0, function()
{
    CameraStop (); // stop video when iRidium in background
});


Настройки видео (качество, поворот картинки и др.) формируются при создании видео-потока методом IR.Camera(), котрый подробно описан в Справочнике по JavaScript.


SIP-видео

Во время видео-вызова SIP необходимо отображать видео-поток, присылаемый абонентом, с которым установлена связь.

Поток генерируется автоматически при установке видео-вызова средствами драйвера SIP, чтобы вывести поток, привяжите его к графическому элементу, который будет отображать видео. Привязка производится в редакторе скриптов (JS):

IR.AddListener(IR.EVENT_START,0,function()
{
   // display the SIP video
   IR.GetItem("Page 1").GetItem("Item 1").GetState(0).Image = "sip_image://";
});