Как узнать rtsp поток с ip камеры

Hikvision DS-2CD8153F-E (Onvif 2.02)

  • Подключимся к камере
  • Определим сервис
  • Получим информацию об устройстве
  • Посмотрим и установим системное время
  • Перезагрузим камеру
from onvif import ONVIFCamera, ONVIFService, ONVIFError
camera = ONVIFCamera('192.168.0.112', 80, u'admin', u'password', u'onvif_camerasenvwsdl')


response = camera.devicemgmt.GetDeviceInformation()
response
(reply){
   Manufacturer = "HIKVISION"
   Model = "DS-2CD8153F-E"
   FirmwareVersion = "V4.0.1 build 120508"
   SerialNumber = "DS-2CD8153F-E0120120914BBRR411180126"
   HardwareId = "88"
}

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

response = camera.devicemgmt.GetServices({'IncludeCapability' True})

[(Service){
   Namespace = "http://www.onvif.org/ver10/device/wsdl"
   XAddr = "http://192.168.0.112/onvif/device_service"
   Version =
      (OnvifVersion){
         Major = 1
         Minor = 3
      }
 }, (Service){
   Namespace = "http://www.onvif.org/ver10/media/wsdl"
   XAddr = "http://192.168.0.112/onvif/Media"
   Version =
      (OnvifVersion){
         Major = 1
         Minor = 3
      }
 }, (Service){
   Namespace = "http://www.onvif.org/ver10/events/wsdl"
   XAddr = "http://192.168.0.112/onvif/Events"
   Version =
      (OnvifVersion){
         Major = 1
         Minor = 4
      }
 }, (Service){
   Namespace = "http://www.onvif.org/ver20/ptz/wsdl"
   XAddr = "http://192.168.0.112/onvif/PTZ"
   Version =
      (OnvifVersion){
         Major = 2
         Minor = 1
      }
 }, (Service){
   Namespace = "http://www.onvif.org/ver20/imaging/wsdl"
   XAddr = "http://192.168.0.112/onvif/Imaging"
   Version =
      (OnvifVersion){
         Major = 2
         Minor = 1
      }
 }, (Service){
   Namespace = "http://www.onvif.org/ver10/deviceIO/wsdl"
   XAddr = "http://192.168.0.112/onvif/DeviceIO"
   Version =
      (OnvifVersion){
         Major = 1
         Minor = 1
      }
 }]

Так же можно определить отдельный сервис, что гораздо быстрее и посмотреть все сервисы аналогично

management_service = ONVIFService('http//192.168.0.112/onvif/media', u'admin', u'password', '/onvif_cameras/env/wsdl/devicemgmt.wsdl')
services = management_service.GetServices({'IncludeCapability' True})

Посмотрим системное время на камере

response = camera.devicemgmt.GetSystemDateAndTime()
response

(SystemDateTime){
   DateTimeType = "NTP"
   DaylightSavings = False
   TimeZone =
      (TimeZone){
         TZ = "CST-8:00:00"
      }
   UTCDateTime =
      (DateTime){
         Time =
            (Time){
               Hour = 8
               Minute = 26
               Second = 23
            }
         Date =
            (Date){
               Year = 2015
               Month = 1
               Day = 10
            }
      }
   LocalDateTime =
      (DateTime){
         Time =
            (Time){
               Hour = 12
               Minute = 26
               Second = 23
            }
         Date =
            (Date){
               Year = 2015
               Month = 1
               Day = 10
            }
      }
 }

Установим время через словарь или через определение объекта времени. Второй вариант при установке времени если будет задан неверный аттрибут вызовет ошибку, что очень удобно.

import datetime
time_dict = {
    'UTCDateTime' datetime.datetime.now()
}
camera.devicemgmt.SetSystemDateAndTime(time_dict)

или определим объект времени

time_object = camera.devicemgmt.create_type('SetSystemDateAndTime')
time_object.DateTimeType = 'Manual'
time_object.DaylightSavings = True
time_object.TimeZone = 'CST-80000'
time_object.UTCDateTime.Date.Year = 2015
time_object.UTCDateTime.Date.Month = 1
time_object.UTCDateTime.Date.Day = 10
time_object.UTCDateTime.Time.Hour = 12
time_object.UTCDateTime.Time.Minute = 26
time_object.UTCDateTime.Time.Second = 
camera.devicemgmt.SetSystemDateAndTime(time_object)

Перезагрузим камеру

response = camera.devicemgmt.SystemReboot()

Для написания скриптов на bash очень не плохо подходит ONVIF CLI

$ onvif-cli devicemgmt GetHostname --user 'admin' --password 'password' --host '192.168.0.112' --port 80

True: {'FromDHCP' True, 'Name' hision}

ONVIF или PSIA

Public Security Investigative Agency (PSIA) – это еще один стандарт, позволяющий решить проблемы несовместимого оборудования.

Он используется для техники, производящей IP-видеонаблюдение, такой как:

  • камеры;
  • датчики;
  • системы контроля и управления доступом;
  • устройства для видеоаналитики и управления информационной защитой.

Компании, входящие в членство ONVIF, заняли около 60% рынка продукции для видеонаблюдения во всем мире. Техника, работающая со стандартами PSIA, занимает лишь 20% этой сферы.

Open Network Video Interface Forum при разработке стандартов держит фокус на IP-видео. В эту сферу входит аналитика и интерфейс между видеоустройством и клиентом. Спецификация включает PTZ-протокол, обнаружение технических средств, их регулировку, фиксацию событий, анализ видео и настройки видеопотока в реальном времени. На что PSIA отвечает определением более общей специфики, которая подходит для систем хранения и контроля доступа.

Несмотря на то, что производители оборудования утверждают, что оно совместимо со стандартом ONVIF, иногда возникают определенные проблемы

Компании производители техники могут применять стандарт ONVIF в профессиональной видеотехнике, где требуется аналитика и взаимодействие камер. PSIA более всего подходят для фирм, которым нужно контролировать PTZ-устройства и прочие сервисы, например, PSIM и системы хранения. Структурная модель представленных стандартов также имеет лишь небольшие различия. Производитель может применять к выпускаемым камерам одновременно ONVIF и PSIA, так как требования к сетевым устройствам стали преимущественно логическим стандартом, а не физическим. Так, например, компании Cisco и Milestone, выпускающие сетевое оборудование, включают в свою продукцию поддержку обеих спецификаций. К ним в этом плане собирается присоединиться и компания EInfochips, занимающаяся разработкой DVR/NVR-устройств, управляющего программного обеспечения и камер.

Возможные проблемы, которые могут возникнуть при совместимости

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

Одна из проблем – при монтаже, настройке камер для IP-наблюдения обнаруживается, что используемый видеорегистратор их не видит. Все устройства находятся в общей локальной сети, а датчики движения и иные программные функции напрочь отказываются выполнять возложенные функции. Сразу же возникает вопрос: «В чем причина сбоя?».

Трудности могут быть связаны с разнообразными причинами. Первоначально требуется удостовериться, что используемое оборудование поддерживает стандарт Open Network Video Interface Forum (ONVIF). Среди производителей встречаются мошенники. Они отмечают в своих продуктах поддержку протокола, но на самом деле это совсем не так. Чтобы исключить вероятность возникновения такого рода проблем, лучше приобретать оборудование у тех фирм-изготовителей, которые являются официальным представителем ONVIF. Эту информацию можно найти в сети.

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

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

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

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

    • Лучшая ip камера для дома: особенность выбора
    • Как из web камеры сделать ip камеру?
    • Подключение ip-камеры xiaomi
    • Основные принципы при проектировании системы видеонаблюдения

Getting Started

Initialize an ONVIFCamera instance

from onvif import ONVIFCamera
mycam = ONVIFCamera('192.168.0.2', 80, 'user', 'passwd', '/etc/onvif/wsdl/')

Now, an ONVIFCamera instance is available. By default, a devicemgmt service is also available if everything is OK.

So, all operations defined in the WSDL document:

/etc/onvif/wsdl/devicemgmt.wsdl

are available.

Get information from your camera

# Get Hostname
resp = mycam.devicemgmt.GetHostname()
print 'My camera`s hostname: ' + str(resp.Name)

# Get system date and time
dt = mycam.devicemgmt.GetSystemDateAndTime()
tz = dt.TimeZone
year = dt.UTCDateTime.Date.Year
hour = dt.UTCDateTime.Time.Hour

Configure (Control) your camera

To configure your camera, there are two ways to pass parameters to service methods.

Dict

This is the simpler way:

params = {'Name': 'NewHostName'}
device_service.SetHostname(params)

Type Instance

This is the recommended way. Type instance will raise an
exception if you set an invalid (or non-existent) parameter.

params = mycam.devicemgmt.create_type('SetHostname')
params.Hostname = 'NewHostName'
mycam.devicemgmt.SetHostname(params)

time_params = mycam.devicemgmt.create_type('SetSystemDateAndTime')
time_params.DateTimeType = 'Manual'
time_params.DaylightSavings = True
time_params.TimeZone.TZ = 'CST-8:00:00'
time_params.UTCDateTime.Date.Year = 2014
time_params.UTCDateTime.Date.Month = 12
time_params.UTCDateTime.Date.Day = 3
time_params.UTCDateTime.Time.Hour = 9
time_params.UTCDateTime.Time.Minute = 36
time_params.UTCDateTime.Time.Second = 11
mycam.devicemgmt.SetSystemDateAndTime(time_params)

Что такое ONVIF (Open Network Video Interface Forum)

ONVIF — это стандарт сферы видеонаблюдения, содержащий протоколы взаимодействия IP камер, IP серверов (кодировщиков), регистрасторов, основанный на POST XML запросах.

В данной статье я буду придерживаться следующей терминологии:

  • Service — служба (Например: device management service — служба управления устройством);
  • PSIM (Physical security information management system) — автоматизированный охранный программный комплекс;

По типу устройств ONVIF подразделяется на несколько профилей:

  1. S — профиль IP камер, кодировщиков, других IP видео устройств (потоковое аудио и видео, управление параметрами потока, изображения и вещания);
  2. C — профиль систем контроля доступа основанных на IP (сигнализация, блокировка, разблокировка дверей и т.п.);
  3. Q — профиль упрощенного механизма настройки и расширенной безопасности (настройка устройств, обновление, NTP, SSL, мониторинг)
  4. G — профиль сетевых видеорегистраторов (NVR), систем управления зданиями и PSIM (управление и контроль записи, передача аудио и мета-информации);

Устройство поддерживающее ONVIF может поддерживать несколько профилей. Например камера с функцией записи может поддерживать профили S и G.

По предоставляемые протоколом ONVIF службы (более подробно можно ознакомиться на официальном сайте), также привожу характерные url служб для устройств с которыми я работаю:

  1. Access Control
  2. Action Engine
  3. Advanced Security
  4. Analytics
  5. Device IO
  6. Display
  7. Door Control
  8. Imaging
  9. Media
  10. PTZ (Pan, tilt, zoom — панорамирование, наклон, масштабирование)
  11. Receiver
  12. Recording Control
  13. Recording Search
  14. Replay Control
  15. Video Analytics Device
  16. Events

Любое устройство поддерживающее ONVIF поддерживает функции ядра, а дальше есть различия по назначению, например у регистратора нет поддержки PTZ и Door Control.

Поддержка сервисов по типам устройств:

  • NVD (Network video display) — устройства получающее видео изображение по сети и отображающее ее (Core, Streaming, Receiver, Display, Device IO);
  • NVT (Network video transmitter) — IP камера или кодировщик (Core, Media, Streaming, Device IO, Imaging, PTZ, Analytics);
  • NVA (Network video analytics) — устройство поддерживающее обработку информации, аналитику и передачу meta информации (Core, Streaming, Receiver, Analytics, Video Analytics Device, Device IO);
  • NVS (Network video storage) — устройства записи с NVT, как правило с поддержкой профиль G (Core, Streaming, Recording Search, Replay Control, Device IO, Receiver, Recording Control);

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

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

Несмотря на все преимущества стандартов onvif, пользователи периодически сталкиваются с различными трудностями, к примеру, ip-камера не обнаруживается видеорегистратором одной локальной сети

Этот стандарт объединил такие возможности:

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

Типы профилей ONVIF

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

Так, разработчики уже успели выпустить протоколы по таким профилям:

  • Profile Q удовлетворяет требованиям, связанным со взаимодействием устройств «из коробки». Он работает по стандарту, обеспечивающему простую совместимость. Дополнением является упрощенный процесс регулировки базовых опций технических средств и расширенный функционал безопасности. Представленный профайл участвует в управлении TLS-сертификатами и ключами доступа.
  • Profile C разработан специально для СКУД. Он позволяет произвести объединение технических средств, участвующих в системах управления, а также регулировать их основные функции. Представленный профиль способствует объединению устройств с системой контроля доступа. Он обеспечивает совместимость между СКУД и видеокамерами, входящими в сетевую систему. Профиль C открывает доступ к информации о состоянии дверей и управлению ими.
  • Profile S разработан специально для видеоисточников. Он используется в охранных комплексах, применяющих потоковые IP-камеры видеонаблюдения. Представленный профайл позволил совмещать 1.0 и 2.0 версии ONVIF. Его спецификации рассчитаны на такие аспекты работы камер с системами видеорегистрации:

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

  1. настройка сетевого интерфейса;
  2. выявление устройств по сетевому протоколу, позволяющему в автоматическом режиме находить технику и сервисы, входящие в компьютерную сеть;
  3. регулирование функционирующих профилей видеоустройства;
  4. контроль передачи потокового видео;
  5. анализ и хранение информации о событиях;
  6. контроль над приводом Pan-tilt-zoom-камеры, поддерживающей удаленное управление направлением и зумом;
  7. шифрование данных и защита от несанкционированного доступа к информации.
  • Profile G используется для техники, производящей запись видео. Он позволяет производить как поиск и извлечение, так и хранение информации. С его применением стала доступна регулировка фильтров, что упрощает эффективный поиск данных.
  • Profile A направлен на регулярное произведение настроек контроля доступа.
  • Profile T предоставляет набор инструкций, описывающих порядок действий исполнителя для обработки видеопотока. Этот профиль на данный момент находится на стадии доработки. Его релиз запланирован на 2018 год.

ONVIF CLI

python-onvif also provides a command line interactive interface: onvif-cli.
onvif-cli is installed automatically.

Single command example

$ onvif-cli devicemgmt GetHostname --user 'admin' --password '12345' --host '192.168.0.112' --port 80
True: {'FromDHCP': True, 'Name': hision}
$ onvif-cli devicemgmt SetHostname "{'Name': 'NewerHostname'}" --user 'admin' --password '12345' --host '192.168.0.112' --port 80
True: {}

Interactive mode

$ onvif-cli -u 'admin' -a '12345' --host '192.168.0.112' --port 80 --wsdl /etc/onvif/wsdl/
ONVIF >>> cmd
analytics   devicemgmt  events      imaging     media       ptz
ONVIF >>> cmd devicemgmt GetWsdlUrl
True: http://www.onvif.org/
ONVIF >>> cmd devicemgmt SetHostname {'Name': 'NewHostname'}
ONVIF >>> cmd devicemgmt GetHostname
True: {'Name': 'NewHostName'}
ONVIF >>> cmd devicemgmt SomeOperation
False: No Operation: SomeOperation

NOTE: Tab completion is supported for interactive mode.

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

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

С развитием технологий востребованными стали 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.

Особенности общего стандарта безопасности

Разработка единого протокола для IP-камер была начата в 2008 году. Производители «Сони», Bosch и Axis сделали стандарт, который был назван ONVIF (Open Network Video Interface Forum). Этот протокол предназначен для решения проблем, которые связаны с несовместимостью оборудования от разнообразных изготовителей. Теперь создать систему видеонаблюдения с помощью IP-камер можно было без особых проблем.

Open Network Video Interface Forum отличается специальным интерфейсом цифрового типа. Он объединяет множество форм взаимодействия устройств от разнообразных компаний-производителей:

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

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

Какие бывают профили ONVIF?

При создании стандарта ONVIF (на первоначальном этапе) основатели протокола столкнулись с определенными трудностями. Они были вызваны несовместимостью оборудования при использовании различных версий протокола. Именно поэтому производители приняли решение разработать специальную концепцию, которая получила название Profiles.

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

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

Стоит рассмотреть основные разновидности профилей стандарта ONVIF:

  • «Q». Этот профиль применяется для регулировки ключей доступа и специальных TLS-сертификатов. Он позволяет быстро установить совместимое оборудование.
  • «G». Такой профиль был разработан следующим. Он позволил организовать локальное хранение данных, поиск и извлечение информации из устройств. С помощью профиля можно настроить фильтры, чтобы поиск стал максимально эффективным.
  • «C». Такой профиль предназначен для синхронизации устройств СКУД, упрощения управления их функционалом. Профиль «С» поддерживает интеграцию между оборудованием и физической системой контроля доступа. Появилась возможность синхронизировать СКУД и сетевые видеосистемы. Профиль позволяет узнать точную информацию о точках доступа и работоспособности входов и выходов.
  • «S». Этот профиль обеспечивает нормальную работу потокового IP-видеонаблюдения. Именно он позволил синхронизировать версии протоколов 1.0 и 2.0. Они стали совместимыми, ранее добиться этого не было возможным.
  • «A». Главная цель эксплуатации такого профиля – осуществление конфигурации при повседневном контроле доступа.
  • «T». Его использование ориентировано на алгоритмизацию при обработке различных изображений.

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

Чем отличается ONVIF от PSIA?

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

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

Установим библиотеку onvif

$ pwd
onvif_cameras
$ virtualenv -ppython2.7 env
$ source envbinactivate
(env)$ pip install onvif

Находимся в директории /onvif_cameras/
Виртуальное окружение /onvif_cameras/env/
Важно! Путь к виртуальному окружению необходим поскольку при установке onvif скачивается пространства имен, схемы данных в папку wsdl

onvif_camerasenvwsdl$ ls

accesscontrol.wsdl     deviceio.wsdl     onvif.xsd             t-1.xsd
actionengine.wsdl      devicemgmt.wsdl   ptz.wsdl              types.xsd
addressing             display.wsdl      r-2.xsd               ws-addr.xsd
advancedsecurity.wsdl  doorcontrol.wsdl  receiver.wsdl         ws-discovery.xsd
analyticsdevice.wsdl   envelope          recording.wsdl        xmlmime
analytics.wsdl         events.wsdl       remotediscovery.wsdl  xml.xsd
b-2.xsd                imaging.wsdl      replay.wsdl
bf-2.xsd               include           rw-2.wsdl
bw-2.wsdl              media.wsdl        search.wsdl
Ссылка на основную публикацию