onvif порт что это
Подключаем IP камеры по протоколам Onvif или RTSP
Подключаем IP камеры по протоколам Onvif или RTSP
ONVIF это общепринятый протокол для совместной работы IP-камер, видеорегистраторов NVR, программного обеспечения, на случай если все устройства разных производителей.
В свою очередь RTSP — это потоковый протокол реального времени, в котором описаны команды для управления видеопотоком. С помощью этих команд происходит трансляция видеопотока от источника к получателю, например от IP-камеры к видеорегистратору или серверу.
Нас часто спрашивают, как подключить камеру по тому или другому протоколу? Постараемся ответить на этот вопрос.
Зачастую возникает проблема, когда нет возможности подключить IP-камеру к NVR? потому как ее нет в списке совместимости.
выход из этой ситуации прост — подключение как раз и осуществляется по вышеназванным протоколам
ONVIF или RTSP.
Итак, для подключения по ONVIF нужно удостовериться, что подключаемые устройства имеют поддержку данного протокола, т.к. на некоторых устройствах ONVIF может быть выключен по умолчанию или может быть отключена авторизация по данному протоколу.
Это значит, что логин и пароль будет всегда по умолчанию независимо от логина и пароля для WEB.
Некоторые устройства используют отдельный порт для работы по протоколу ONVIF. Также бывает, что ONVIF имеет пароль, который отличается от пароля для WEB доступа.
При подключении по ONVIF доступно:
— Прием и передача аудио данных
— Управление поворотными камерами (PTZ)
— Видеоаналитика (например обнаружение движения)
Эти параметры зависят от совместимости версий протокола ONVIF. В некоторых случаях часть параметров недоступна, или работает некорректно.
Разберем пример подключения камеры OMNY PRO к видеорегистратору SNR и Dahua с использованием ONVIF.
В регистраторах SNR и Dahua протокол ONVIF находится на вкладке Remote Device, строка Manufacturer. Выберите канал к которому будет подключено устройство.
Из вкладки Manufacturer выберите ONVIF и укажите ip адрес устройства, при этом RTSP порт остается по умолчанию.
Камеры OMNY PRO используют ONVIF порт 8080, в регистраторе он указывается как HTTP порт (с 2017 года, на новых моделях ONVIF порт изменен на 80 для серии Альфа, Мира). Камеры OMNY Base используют ONVIF порт 80, в регистраторе он указывается как HTTP порт.
Имя в соответствии с параметрами устройства
Пароль в соответствии с параметрами устройства
Remote channel по умолчанию 1. В случае если устройство многоканальное, указывается номер канала.
Decoder Buffer — буферизация видео потока с указанием значения времени
Server type здесь есть выбор TCP,UDP Schedule
TCP — устанавливает соединение между отправителем и получателем, следит за тем, чтобы все данные дошли до адресата без изменений и в нужной последовательности, также регулирует скорость передачи.
В отличие от TCP, UDP не устанавливает предварительного соединения, а вместо этого просто начинает передавать данные. UDP не следит чтобы данные были получены, и не дублирует их в случае потерь или ошибок. UDP менее надежен, чем TCP. Но с другой стороны, он обеспечивает более быструю передачу потоков благодаря отсутствию повторения передачи потерянных пакетов
Schedule — автматическое определение типа.
Так выглядят подключенные устройства в Dahua
зеленый статус означает, что регистратор и камера соединены успешно
красный статус означает, что есть проблемы в подключении. Например порт подключения неправильный.
Если не получается подключить IP камеру в ПО или NVR по ONVIF, нужно убедиться в правильности:
Для проверки правильности параметров ONVIF камер (исключив ПО и NVR) можно использовать независимое ПО ODM (Onvif device manager).
При подключении камеры по RTSP (Real Time Streaming Protocol) доступны лишь передача видеоданных и прием и передача аудио данных.
Приемущество этого протокола передачи в том, что он не требует совместимости по версиям. На сегодняшний день RTSP поддерживают практически все IP камеры и NVR.
Недостаток протокола заключается в том, что кроме передачи видео и аудио данных больше ничего не доступно.
Разберем пример подключения камеры OMNY PRO к видеорегистратору SNR и Dahua с использованием RTSP.
RTSP находится на вкладке Remote Device, строка Manufacturer, в регистраторе SNR и Дахуа он представлен как General. Выберите канал, к которому будет подключено устройство
URL Addr — здесь вводим строку запроса, по которой камера отдает основной RTSP поток с высоким разрешением.
Extra URL — здесь вводим строку запроса, по которой камера отдает дополнительный RTSP поток с низким разрешением.
rtsp://172.16.31.61/1 основной поток
rtsp://172.16.31.61/2 дополнительный поток
На локальном мониторе подключенном к регистратору в мульти-картинке регистратор использует дополнительный поток для экономии ресурсов. К примеру в маленьких картинках по 16 окон совсем не обязательно декодировать Full HD разрешение, достаточно D1. Ну а если Вы открыли 1/4/8 окон в этом случае декодируется основной поток с высоким разрешением.
Имя в соответствии с параметрами устройства
Пароль в соответствии с параметрами устройства
Decoder Buffer буферизация видео потока с указанием значения времени
Server type — TCP, UDP, Schedule (аналогично протоколу ONVIF)
Надеемся эта статья поможет Вам подключить IP-камеры к видеорегистраторам по данным протоколам.
Мы же напоминаем, что наша компания «Запишем всё» с 2010 года занимается проектированием, монтажом, обслуживанием и ремонтом систем видеонаблюдения и видеодомофонов в Москве и Подмосковье.
Мы работаем быстро, качественно и по доступным ценам. Перечень услуг и цены на их вы можете посмотреть здесь.
Звоните +7 (499) 390-28-45 с 8-00 до 22-00 в любой день недели, в том числе и в выходные. Мы будем рады Вам помочь!
Как подключить 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-камер, на раннем этапе формирования данных технологий, сразу же возникли определенные трудности. Они касались совместимости устройств от различных производителей. Это связано с тем, что каждая организация начала применять свой личный стандарт, применять индивидуальные протоколы. Оборудование могло синхронизироваться только от одного изготовителя, совмещение приборов от различных компаний сопровождалось возникновением проблем.
Для устранения сбоев в работоспособности было принято решение создать единый протокол. Он в считанные минуты решал возникающие проблемы.
ONVIF – это протокол, который предназначен объединить различное IP- оборудование (IP-камеры, видеорегистраторы) от разных производителей.
Основная цель протокола проста – чтобы видеонаблюдение не было привязано к одному производителю. Например IP-камера одного производителя, видеорегистратор другого.
Особенности общего стандарта безопасности
Разработка единого протокола для IP-камер была начата в 2008 году. Производители “Сони”, Bosch и Axis сделали стандарт, который был назван ONVIF (Open Network Video Interface Forum). Этот протокол предназначен для решения проблем, которые связаны с несовместимостью оборудования от разнообразных изготовителей. Теперь создать систему видеонаблюдения с помощью IP-камер можно было без особых проблем.
Open Network Video Interface Forum отличается специальным интерфейсом цифрового типа. Он объединяет множество форм взаимодействия устройств от разнообразных компаний-производителей:
Ежегодно протокол ONVIF обновлялся и усовершенствовался. В настоящее время имеется несколько стандартных версий, которые отличаются функциональностью.
Какие бывают профили ONVIF?
При создании стандарта ONVIF (на первоначальном этапе) основатели протокола столкнулись с определенными трудностями. Они были вызваны несовместимостью оборудования при использовании различных версий протокола. Именно поэтому производители приняли решение разработать специальную концепцию, которая получила название Profiles.
Концепция подразумевала разделение различных версий этого стандарта на профили. Они нужны для упрощения проведения проверок совместимости используемых приборов. Создать систему IP-видеонаблюдения можно было без анализа технических характеристик каждого устройства.
В настоящее время потребителям представлено шесть профилей стандарта ONVIF. Необходимо заметить, что последний из них находится на стадии диагностики. Создатели проверяют и исправляют ошибки, которые возникают в ходе его использования.
Стоит рассмотреть основные разновидности профилей стандарта ONVIF:
Именно профили ONVIF дали возможность с легкостью определять функциональность устройств, совместимость их с иными типами оборудования без проведения предварительного анализа данных. Профили существенно упростили процесс создания эффективных систем видеонаблюдения.
Чем отличается ONVIF от PSIA?
Протокол PSIA – это еще один стандарт, использование которого нацелено на решение проблем несовместимости. Он позволяет синхронизировать между собой различное IP-оборудование – камеры, датчика, системы КУД, устройства для видеоаналитики и управления информационной безопасностью.
Основная проблема стандарта PSIA – низкая популярность среди производителей оборудования для систем IP-наблюдения. В настоящее время количество организаций подключенных к протоколу PSIA составляет чуть более пятидесяти. Нужно заметить, что стандартом ONVIF пользуется более 500 фирм. Они реализуют более 5 тысяч наименований техники, которые поддерживают этот протокол.
Возможные проблемы, которые могут возникнуть при совместимости
Все производители единогласно утверждают, что проблем с совместимостью у реализуемой ими продукции не возникнет. Несмотря на это, при создании систем IP-видеонаблюдения можно столкнуться с определенными трудностями.
Одна из проблем – при монтаже, настройке камер для IP-наблюдения обнаруживается, что используемый видеорегистратор их не видит. Все устройства находятся в общей локальной сети, а датчики движения и иные программные функции напрочь отказываются выполнять возложенные функции. Сразу же возникает вопрос: «В чем причина сбоя?».
Трудности могут быть связаны с разнообразными причинами. Первоначально требуется удостовериться, что используемое оборудование поддерживает стандарт Open Network Video Interface Forum (ONVIF). Среди производителей встречаются мошенники. Они отмечают в своих продуктах поддержку протокола, но на самом деле это совсем не так. Чтобы исключить вероятность возникновения такого рода проблем, лучше приобретать оборудование у тех фирм-изготовителей, которые являются официальным представителем ONVIF. Эту информацию можно найти в сети.
Устройства, которые входят в систему IP-видеонаблюдения, могут быть несовместимы из-за использования различных профилей протокола. Одной поддержки ONVIF недостаточно. Это не указывает на то, что применяемое оборудование будет синхронизироваться. В данном случае вам потребуется убедиться, что приборы рассчитаны на работу с Profile S. Этот профиль является универсальным. Он позволяет совместить между собой различные версии ONVIF.
Протокол ONVIF осуществляет работу по стандартизации сетевого оборудования, существенно упрощает монтаж и расширяет возможности IP-систем безопасности. С помощью такого стандарта облегчается масштабируемость систем, открываются новые возможности для потребителя при выборе требуемого оборудования.
ONVIF имеет собственное программное обеспечение, которое позволяет раскрыть весь функционал используемого оборудования. Спецификация позволяет осуществлять поиск и выполнить подключение устройств, управлять телеметрией, передавать и записывать видео, настраивать изображения, проводить видеоаналитику в максимально сжатые сроки. 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? И как его использовать при подключении камер в HomeKit через NodeRED
В продолжение к статье о подключении камер в HomeKit через NodeRed Евгений Олейник (permadm).
Далеко не всегда в инструкции IP камеры указывается описание RTSP протокола, с которым работает Ваша камера. Тем не менее, иногда возникает необходимость воспользоваться RTSP протоколом для подключения IP камеры к облачному серверу, настройки трансляции изображения на сайт или воспроизведения потокового видео в каком-нибудь плеере на вашем ПК или гаджете, или, в нашем случае, трансляции потока через плагин HomeKit в NodeRed. Рассмотрим все возможные способы, как узнать адрес RTSP IP камеры, если он не представлен в руководстве камеры. Если Ваша камера собрана из китайских xmeye комплектующих (что часто встречается на российском рынке, в том числе и у российских производителей ip камер HiQ, Vesta, SVplus и других бренды), то формат адреса RTSP камеры будет иметь следующий вид:
Если Ваша камера собрана из других комплектующих, то есть два способа, как узнать адрес RTSP потока вашей камеры.
Способ №1
Или пойти сложным путем и найти поток самостоятельно, с помощью прикладного программного обеспечения.
Используемый по умолчанию порт можно проверить в настройках камеры.