что такое onvif в камерах видеонаблюдения

Как подключить IP камеру по Onvif или RTSP?

1. ONVIF

Начнем с протокола ONVIF (Open Network Video Interface Forum).
ONVIF — это общепринятый протокол для совместной работы IP-камер, видеорегистраторов NVR, программного обеспечения, на случай, если все устройства разных производителей.
Убедитесь, что подключаемые устройства имеют поддержку ONVIF, на некоторых устройствах ONVIF может быть выключен по умолчанию.
Либо может быть отключена авторизация по ONVIF это значит, что логин/пароль будет всегда по умолчанию независимо от логина/пароля для WEB.

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

Что доступно при подключении по ONVIF?

Эти параметры зависят от совместимости версий протокола ONVIF. В некоторых случаях часть параметров недоступна или работает некорректно.

Разберем пример подключения камеры к видеорегистратору OMNY с использованием ONVIF:

Камеры OMNY PRO и OMNY Base используют ONVIFпорт 80, в регистраторе он указывается как Порт устройства/HTTP-порт (На моделях OMNY PRO до 2017 года ONVIF-порт 8080).
TCP — устанавливает соединение между отправителем и получателем, следит за тем, чтобы все данные дошли до адресата без изменений и в нужной последовательности, также регулирует скорость передачи.
В отличие от TCP, UDP не устанавливает предварительного соединения, а вместо этого просто начинает передавать данные. UDP не следит чтобы данные были получены, и не дублирует их в случае потерь или ошибок.
UDP менее надежен, чем TCP. Но с другой стороны, он обеспечивает более быструю передачу потоков благодаря отсутствию повторения передачи потерянных пакетов.

Второй способ подключения — это RTSP (Real Time Streaming Protocol).

RTSP-потоковый протокол реального времени, в котором описаны команды для управления видеопотоком. С помощью этих команд происходит трансляция видеопотока от источника к получателю. Например, от IP-камеры к видеорегистратору или серверу.

Что доступно при подключении по RTSP?

Преимущество этого протокола передачи в том, что он не требует совместимости по версиям. На сегодняшний день RTSP поддерживают практически все IP-камеры и NVR.
Недостатки протокола в том, что кроме передачи видео- и аудиоданных больше ничего не доступно.

Разберем пример подключения камеры к видеорегистратору OMNY с использованием RTSP:

Пример запроса для OMNY BASE:

Зачем нужен дополнительный поток?

На локальном мониторе, подключенном к регистратору в мульти-картинке, регистратор использует дополнительный поток для экономии ресурсов. К примеру, в маленьких картинках по 16 окон совсем не обязательно декодировать Full HD разрешение, достаточно D1.
Ну а если Вы открыли 1/4/8 окон, то в этом случае декодируется основной поток с высоким разрешением.

3. Не получается подключить по ONVIF

Если не получается подключить IP камеру в ПО или NVR по ONVIF, нужно убедиться:

ONVIF Device Manager

Проверить работоспособность ONVIF в камере, вы можете через независимое ПО ONVIF Device Manager. Для проверки правильности параметров ONVIF необходимо использовать ODM в локальной сети, исключив другие ПО и NVR.

Источник

Что такое ONVIF протокол?

Аналоговые камеры видеонаблюдения не имели никаких проблем совместимости – можно было купить камеру от любого производителя и использовать ее с видеорегистратором от другого – никаких трудностей при этом не возникало. С появлением IP камер на раннем этапе развития технологии возникали определенные затруднения, касающиеся совместимости оборудования для видеонаблюдения от различных производителей, которые были обусловлены тем, что каждая компания использовала свой собственный стандарт/протокол. В связи с этим, оборудование от одного производителя было полностью совместимо между собой, но при попытке совмещения устройств от разных производителей начинались проблемы. В связи с этим было принято решение разработать единый протокол, который бы решил данную проблему.

Содержание:

Создание общего стандарта безопасности для IP камер

В 2008 году компании Sony, Bosch и Axis разработали стандарт под названием Open Network Video Interface Forum (ONVIF). Данный стандарт призван решить проблему несовместимости оборудования различных производителей для упрощения создания системы видеонаблюдения на базе IP камер. Протокол ONVIF имеет стандартизированный цифровой интерфейс оборудования для видеонаблюдения, и объединяет в себе такие аспекты взаимодействия оборудования, как:

В процессе развития ONVIF претерпел некоторые изменения и сегодня имеет много стандартных версий:

Профили ONVIF

На начальном этапе работы стандарта ONVIF возникли определенные трудности, вызванные несовместимостью различных версий протокола. В связи с этим была принята концепция «profiles», которая подразумевает разделение версий ONVIF протокола на определенные профили для упрощения проверки соответствия оборудования для IP видеонаблюдения без необходимости анализа технических деталей устройств.

Основные профили стандарта ONVIF

На сегодняшний день существует 6 профилей стандарта ONVIF, последний из которых находится пока в стадии тестирования:

Профиль G протокола ONVIF

Итак, принятие профилей ONVIF позволило легко определять функции, поддерживаемые тем или иным устройством без необходимости анализа совместимости между версиями ONVIF.

ONVIF против PSIA

PSIA является еще одним стандартом, нацеленным на решение проблемы несовместимости между оборудованием для IP видеонаблюедния – камерами, датчиками, системами КУД, видеоаналитики, управления информационной безопасностью, и т. д. Основной проблемой данного стандарта является его низкая популярность – на сегодняшний день количество подключенных компаний составляет около 50, когда как ONVIF насчитывает более 500 членов, которые предлагают более 5000 тыс. продуктов, поддерживающих ONVIF протокол.

Читайте также:  что значит давить на жалость

Проблемы с совместимостью

Несмотря на то, что производители оборудования утверждают, что оно совместимо со стандартом ONVIF, иногда возникают определенные проблемы. Например, при попытке установки и настройки камер видеонаблюдения, обнаруживается, что видеорегистратор напрочь отказывается их видеть, находясь при этом в той же локальной сети, либо не работает датчик движения или любые другие программные функции. С чем же связаны подобные трудности?

Во-первых, вы должны полностью удостовериться, что все ваши устройства действительно поддерживают ONVIF протокол. Некоторые производители часто отмечают свои продукты, как совместимые с ONVIF протоколом, хотя на деле оказывается, что это далеко не так. Для минимизации риска несовместимости лучше всего использовать оборудование для видеонаблюдения от производителей, имеющих официальное членство в ONVIF.

Во-вторых, несовместимость может вызываться различием профилей оборудования. Одна только поддержка ONVIF еще не означает, что устройства будут совместимы между собой. Для полной уверенности необходимо убедиться, что все оборудование вашей системы поддерживает Profile S, так как наличие поддержки данного профиля увеличивает вероятность совместимости по всем основным параметрам любой версии ONVIF.

Источник

Еще раз о видеонаблюдении, камерах, RTSP, onvif. И «велосипед»!

Non-Interleaved Mode.
RTSP устанавливает связь и передает в камеру информацию о том «куда слать» данные (UDP порты).
Пример общения RTSP

Запоминаем
Transport: RTP/AVP;unicast;destination=10.112.28.33;source=10.112.28.231;client_port=49501-49502;server_port=6970-6971

Interleaved Mode.
Разница с Non-Interleaved Mode в том что все пакеты будут сыпаться в этот же порт.
Пример:

Запоминаем
Transport: RTP/AVP/TCP;unicast;interleaved=0-1

Теперь смотрим что и как.
Камеры шлют видео и аудио в разные RTP потоки. 2n поток — данные, 2n+1 поток — RTCP.
На видео нам идет 0 и 1 канал, на аудио 2 и 3 канал.
Теперь смотрим
Transport: RTP/AVP;unicast;destination=10.112.28.33;source=10.112.28.231;client_port=49501-49502;server_port=6970-6971
Transport: RTP/AVP/TCP;unicast;interleaved=0-1

В первом случае указаны порты, во втором каналы.

С с Non-Interleaved Mode всё понятно. Просто RTP пакеты сыпятся в порты и их можно читать как то так:
DatagramPacket packet = new DatagramPacket(buffer, buffer.length);
s.receive(packet);

Проблемы начинаются с Interleaved mode.
По факту ни каких проблем быть не должно. По RFC мы ищем magic char «$», следующий байт — канал (он указывается в подключении 0-4 у нас) и 2 байта Length. Всего 4 байта.
Но есть не нормальные камеры. Например D-ling DCS-2103 «Досыпает» какие то данные после rtp пакета. frame дает размер 1448,
шлет 1448 фрейма, и после 827 байт какого то мусора. (Так делает Dlink DCS-2103 прошивка 1.00 и 1.20)

И такое у «них» происходит постоянно. Этим частенько страдают китайские камеры. Qihan (356) этим не страдали.
Кроме как пропускать этот мусор идей больше нет.
В RTP сыпятся полезные данные. При DESCRIBE RTSP возвращается SDP пакет
Примеры SDP (h264, mjpeg, mpeg4):

Прочитать про SDP
Так как мода была mjpeg и текущая на h264, то рассмотрим их.
С MJpeg всё предельно ясно. А вот с H264 начинаются различия в камерах.
Формат h264 состоит из блоков с NAL заголовками (7.4.1 NAL unit semantics).
Чтобы можно было декодировать h264 необходимо помимо данных самого h264 иметь данные SPS (Sequence parameter set) и PPS(Picture parameter set). Первый описывает последовательность, второй параметры картинки. Так как сам кодек h264 знаю очень плохо, то большего описания не будет. SPS имеет тип 7, PPS 8. Без них невозможно декодировать h264.
Самое интересное — Qihan шлет SPS и PPS прям в RTP пакетах, Dlink не шлет их в RTP пакетах. Но SPS и PPS шлется в SDP пакете в параметре sprop-parameter-sets в кодировке base64.
sprop-parameter-sets=Z2QAKK2EBUViuKxUdCAqKxXFYqOhAVFYrisVHQgKisVxWKjoQFRWK4rFR0ICorFcVio6ECSFITk8nyfk/k/J8nm5s00IEkKQnJ5Pk/J/J+T5PNzZprQCgDLSpAAAAwHgAAAu4YEAAPQkAABEqjve+F4RCNQ=,aO48sA==
Шлются они через запятую
Вариант декодирования.

Так как камеры 720p или 1080p, то в 1 RTP пакет ни jpeg фрейм, ни h264 фрейм не поместится, то они режутся на пакеты.
RTP Payload Format for JPEG-compressed Video
RTP Payload Format for H.264 Video

JPEG
RTP пакет содержит main JPEG header

а дальше может варьироваться от Type и Q

Для декодирования jpeg нужно знать или вычислить quantization tables.
В моих камерах quantization tables шли в стартовом пакете Jpeg, по этому они просто брались оттуда.
Все вычисления есть в RFC.
Последний пакет фрейма вычисляется по RTP header Marker bit. Если он 1, то это последний пакет фрейма.

Single NAL Unit Packet
Это как раз SPS и PPS. Type=7 или Type=8

Если фрейм h264 не влезает в RTP пакет (1448 байт), то фрейм режется на фрагменты. (5.8. Fragmentation Units (FUs))
Type = 28

Эти заголовки следуют сразу после RTP заголовка

Для декодера h264 NAL — нужная информация. Если идет фрагментация фрейма, то NAL нужно восстанавливать. (FU)
нужно взять первые 3 бита из FU indicator и слить их с 5 последними FU header.

Читайте также:  что значит свапать в игре

Теперь самое главное — сохраняем поток.
Jpeg

NON_IDR_PICTURE — необходим для декодирования, «разделяем» фреймы. (h264)
Тут нужно меня поправить, так как это просто «костыль» и обоснований пока нет. Просто работает.
Получается такой поток: 00000001 + SPS + 00000001 + PPS + 00000001 + NAL…
erlyvideo: 0,0,0,1 — это префикс AnnexB записи H264. Это не часть H264 NAL-юнита, а разделитель между юнитами.

ну и обработка «всего» этого

в 2х словах. Получаем RTSP Interleaved Frame (например Channel: 0x00, 1448 bytes), читаем 1448 байт, делаем writeRawToStream, полиморфизм делает свое дело.

Дальше это нужно обкатать.
Казалось бы что для поддержания потока RTSP нужно делать RTCP отчеты, но нет, всё оказалось проще
Dlink, Qihan, VLC просто «едят» GET_PARAMETER:

шлем его раз в 55 секунд и всё.

При простом просмотре генерируется m3u файл и кормится в VLC
4

При склеивании ffmpeg клеит, после запускается VLC
5

Программа нарезает поток на файлы, интервал задается в настройках

Что делает ffmpeg:
Клеит

«Нормализует» (просчитывает заголовки и т.д.)

На выходе куча файлов
6

По хорошему можно писать в любой OutputStream
Git hub
Дальнейшей жизни программы может и не быть. Возможно допишу когда нибудь RTP классы для звука. (так как увлекаюсь до сих пор SIP)

Ну и самое вкусное.
Есть стандарт видео наблюдения ONVIF
Есть профессиональные железки, которые с камерами работают только по нему.
Есть камеры, которые работают по нему (Qihan, он же Proline), а ссылки rtsp приходится гуглить.
Есть опенсорсный продукт Onvif device manager для управления подобными железяками.
Я же в программу добавил поддержку onvif без авторизации и с авторизацией.
7
Git hub

Если пройтись по ссылкам выше, то можно получить всю документацию по Onvif.
Ответ:

Дальнейшее общение по onvif без авторизации идет в этом же ключе.

А вот пример общения но уже с авторизацией

Т.е. нужно слать заголовок. (тестилось на D-link DCS-2103, остальные камеры без авторизации работали, китай).

и пароль (Password_Digest = Base64 ( SHA-1 ( nonce + created + password ) ))

Всё было сделано в образовательных целях. Если есть вопросы и вдруг понадобиться более подробное описание чего либо — пишите.
Надеюсь кому нибудь пригодится.

PS Не надо писать в комментариях про организацию на большую букву «I». Их Server использует SQLite, SSL, avcodec (ffmpeg), а в папке \Resources есть божественный файлик с названием camera_list.json, но моя наглость не позволила его прикрутить к своей программе 🙂 Но я не видел у них поддержку Onvif, видимо потому что они выпускают «свои» камеры. UPDATED: см комментарии от ivideon

Если прикрутить к программе OpenVPN и OpenCV, то будет забавное решение и «велосипед»
Ну и вот вам полезная ссылка на базу ссылок потоков камер

Источник

Протокол ONVIF

В то время, когда камеры видеонаблюдения работали с аналоговым сигналом, не было никаких проблем совместимости. Проблемы появились с распространением IP-камер. Дело в том, что каждый производитель оборудования для видеонаблюдения применял собственное оборудование, стандарты работы и протоколы. Но с появлением ONVIF протокола практически все проблемы совместимости сошли на нет.

Что такое протокол ONVIF?

У заинтересовавшихся информацией о протоколе следующий вопрос звучит так: «Что такое ONVIF?». В 2008 году коллегиум корпораций Sony, Bosch, Axis разработал единый стандарт для решения проблем совместимости IP-оборудования от разных производителей. Дали этому протоколу имя Open Network Video Interface Forum (ONVIF).

Современные спецификации протокола ONVIF заточены под веб-сервисы, написанные на языке WSDL с использованием стандартов видеосжатия H.264, MPEG-4, MJPEG и протоколов SOAP (XML), RTP/RTSP.

Для чего нужен этот протокол?

С 2015 года число участников форума перевалило за отметку в 500 компаний. О работе форума и протокола можно узнать с официального сайта https://www.onvif.org.

Естественно, на начальных этапах и при дальнейшем развитии протокола, сопряженные технологии развивались вместе с ним. Чтобы не возникало путаницы с несовместимыми устройствами, не поддерживающими тот или иной перечень опций, предложенный ONVIF, была принята концепция профилей.

Профили ONVIF

Разделение разных версий ONVIF по профилям упрощает проверку соответствия IP-камеры и дополнительного оснащения. Чтобы определись, по какому профилю работает гаджет, не нужно анализировать технические составляющие девайса.

Отличие ONVIF от PSIA

Здравая конкуренция – это всегда хорошо. Конкуренты стимулируют друг друга, соревнуются, а рынок тем временем пожинает хорошие плоды этого противостояния. Так вот, у ONVIF тоже имеется конкурент. Имя ему Public Security Investigative Agency (PSIA). Он начал свое развитие параллельно оговорённому протоколу в 2008 году, разработав собственную, более расширенную версию стандарта.

PSIA существует до сих пор, найти полноценную информацию о нем можно на сайте psialliance.org. К сожалению, в борьбе за первенство стандарт проигрывает, потому как количество работающих с ним компаний достигает до 50 штук. По сравнению с консорциумом в более чем 5000 компаний и выпускаемой их продукцией, ONFIV, если его поставить в ряд с PSIA, выглядит как Гулливер.

Читайте также:  что значит если кошка лижет руки

Плюсы и минусы ONVIF

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

Кроме того, сотрудничество с ONVIF выгодно для системных интеграторов и компаний, занимающихся разработкой аппаратного и программного обеспечения. Благодаря наработкам стандарта можно отшлифовать совместимость собственного оснащения и гарантировать ее конечному пользователю. Если же ПО требует более глубокой интеграции, это так же можно организовать.

Проблемы совместимости

Производители, состоящие в качестве мемберов сообщества ONVIF, утверждают, что, приобретая их продукцию вы избавите себя от возможных неприятных последствий в виде несовместимости программного обеспечения и продукции. К сожалению, из каждого правила есть исключение и при проработке собственных систем IP-видеонаблюдения есть вероятность столкнуться с трудностями.

Источник

Бюджетное видеонаблюдение для прижимистых «чайников»

Скоро будет 7 лет с момента написания статьи «Видеонаблюдение под Ubuntu для «чайников» (ZoneMinder)». За эти годы она не раз корректировалась и обновлялась в связи с выходом новых версий, но кардинальная проблема, а именно — стоимость IP видеокамер, оставалась прежней. Её обходили оцифровывая аналоговые потоки и эмулируя IP камеры с помощью USB «вебок».

Ситуация изменилась с появлением китайских камер стандарта ONVIF 2.0 (Open Network Video Interface Forum). Теперь любую камеру отвечающую стандарту вы можете настроить с помощью ONVIF Device Manager.

Более того, вы сразу можете увидеть адреса и параметры потоков вещания с камеры. Да, да. Теперь потоков, как минимум — 2, не считая звука. Один архивный — в максимальном качестве, другой — рабочий в меньшем разрешении.

* Все картинки кликабельны

Я буду рассказывать на примере камеры MISECU IPC-DM05-1.0 Купил её в «чёрную пятницу» по цене 1059,15 руб. Сейчас они подняли цену и я бы скорее приобрел GADINAN. Что в прочем, одно и то-же. В любом случае, аппаратная часть моей камеры определяется как hi3518e_50h10l_s39 не зависимо от того, какой логотип написан на коробке. Камера купольная, по факту представляет из себя шарик «на верёвочке» легко вынимаемый из гнезда-держателя. Если будете заказывать, обратите внимание, что блок питания надо покупать отдельно (DC 12V/2A). Я использовал БП от сгоревших китайских-же настольных часов. К сожалению, звука и управления позицией в камере нет. Для этих целей подойдет какой-нибудь беби-монитор типа этого или этого. Главное, что бы в названии было слово Onvif.

После распаковки и включения надо выставить IP адрес каждой камеры (по умолчанию у всех жестко 192.168.1.10), чтобы они не конфликтовали между собой. Это можно сделать в ONVIF Device Manager или штатной утилитой General Device Manage которая идет в комплекте, на мини CD. Далее, выставляем временную зону, параметры отображения дат и имя для каждой камеры. Создаем пользователей с правами «только для просмотра».

Веб-интерфейс камеры, программы CMS и интерфейс облака в браузере совершенно одинаковы, неудобны и требуют IE c ActiveX.

Благо, их можно с успехом заменить приложением XMeye установленным на Android или iOS. Но, прежде необходимо сделать нашу камеру видимой для облака. Для этого откройте порт по которому работает Onvif (8899) на вашем коммутаторе. В моём случае — это NAT Setting-Virtual Server. Если камер несколько, то внутренний порт для каждого IP оставляете прежним, а внешний меняете на пару значений. Далее, камера сама постучится в облако и предъявит свой индивидуальный CloudID. Вам нужно будет только добавить его в свой профиль в облаке.

Собственно, сама по себе камера уже может детектить движение, стримить видео и отправлять аллармы. Вкупе с облачным сервисом XMeye — это готовый сервис мониторинга.

Если вам хочется иметь свой собственный регистратор с архивами, и вы любите Windows, то ставьте бесплатные iSpy, или SecurOS Lite (до 32 камер) или бесплатную-же версию (до 8 камер) Xeoma. Кстати, у последней есть версии для Mac OS X, Linux включая ARM и Android.

С настройками не должно возникнуть проблем, так что можете дальше не читать. Остальная часть статьи написана для Linux.

Я был приятно удивлен обнаружив в Zoneminder v.1.30.0 визард для настройки ONVIF камер. Он позволяет подключить к консоли любой из потоков идущих с камеры в зависимости от аппаратных возможностей и потребностей оператора.

Установка и настройка Zoneminder никогда не были лёгким занятием. Последняя версия вышла особо капризной и требует предварительной установки веб-сервера LAMP, с последующим выполнением ряда дополнительных действий. Поэтому, приведу старый «джедайский» способ подключения камеры для более старых версий:

1. Определите адреса потоков через ONVIF Device Manager или Xeoma. У вас должно получиться что-то похожее:

Не забудьте заменить звездочки (*) своими данными.

2. Проверьте адреса в проигрывателе VLC. Меню-Медиа-Открыть IRL

Источник

Строительный портал