что значит onvif камера
Что такое протокол Onvif в ip-камере
Несмотря на резкую утрату своей популярности в наши дни, камеры видеонаблюдения аналогового типа все же имели определенные преимущества. Среди главных плюсов стоит выделить простую совместимость нескольких устройств от различных производителей. Не синхронизация, а сказка! Это значительно упрощало задачу неопытным пользователям.
Но, как известно, мир не стоит на месте. Все развивается, и весьма стремительными темпами. Ныне мы наблюдаем настоящий расцвет цифровых и сетевых технологий. Гаджеты становятся компактнее, функциональнее и умнее. Чтобы работать с прогрессивным оборудованием, нельзя отставать от времени.
Onvif (Open Network Video Interface Forum) — это протокол, который создавался для объединения IP-устройств разных производителей. Таких как IP-камеры, видеорегистраторы dvr и другие.
Создание стандарта для цифровой камеры
Аналоговые системы видеоконтроля отошли на второй план, уступив дорогу бюджетным китайским устройствам – видеорегистраторам и цифровым камерам. Владельцу таких устройств не помешает вооружиться некоторыми знаниями. В этой статье мы затронем актуальную тему совместимости новомодных продуктов.
Еще не так давно этот процесс казался сложным, витиеватым или совершенно невозможным. Почему так происходило?
Ответ: на то время производители использовали разные протоколы. Нужно совместить несколько устройств от одного производителя? Никаких проблем! Трудности начинались при попытке совмещения гаджетов от разных компаний. Оборудование не хотело нормально работать.
Решением данного вопроса послужил протокол под названием ONVIF. За его разработку взялись сразу три крупных компании – Bosh, Sony и Axis. Протокол ONVIF появился в 2008 году, и сразу же решил проблему несовместимости различных гаджетов. Владельцы IP-камер смогли выдохнуть с облегчением.
Самое интересное, что по аналогии с названием стандартного протокола нарекли целую организацию международного типа.
Кто может стать членом организации:
Вернемся к обсуждению протокола. По своей функциональности он отдаленно напоминает API производителей устройств. Ключевая задача ONVIF заключается в стандартизации базового функционала гаджета. С его появлением многое стало доступнее и проще.
Теперь покупатель не тратит уйму времени на выбор и поиски оборудования от одного производителя. Он может купить то, что ему нравится или приходится по карману, не обращая особого внимания на марку производителя. Разработка стандартного протокола сделала рынок еще более популярным и доступным.
Важно! с 2008-го по 2014-й год появилось несколько версий ONVIF, которые были заархивированы в 2016 году. С тех самых пор многое усложнилось. Теперь стандартный протокол позволяет совместить последние версии устройств. Будет ли ONVIF совместим с архивной версией другого устройства – вопрос открытый, и комментариям не подлежит. Тем не менее, эту информацию нужно учесть при выборе оборудования для системы видеоконтроля.
До 2016 года версии протокола отличались между собой цифрами. Например, версия 2.4. Позже появились профили ONVIF. На сегодняшний день пользователям доступны 5 готовых профилей, и еще 1 профиль, находящийся на этапе диагностики. И хотя он доступен для использования, разработчики считают этот продукт «сырым», а поэтому продолжают исправлять различные баги.
Профили и их предназначение
Что делать, если возникли проблемы с совместимостью оборудования
Часто случается так, что производители любят рассказывать сказки своим клиентам. Они громогласно обещают одно, а в результате – совершенно иной исход событий. Вдруг выясняется, что некоторые их устройства не совместимы с протоколом ONVIF.
Пользователь пытается установить и настроить систему видеоконтроля, и понимает, что его регистратор попросту не желает видеть камеры. И всё это – в одной локальной сети.
Иногда в процессе подключения отказывают важные программные функции, без которых невозможно наладить нормальную работу системы. Что предпринять, если произошла такая неприятность?
Рекомендация пользователю: при покупке нового устройства проверьте, является ли конкретная компания-производитель членом организации ONVIF. Если это так, то подобных проблем с гаджетом возникнуть не должно. При такой бдительности клиент сам снижаете риск быть обманутым.
Заключение
Стандартный протокол, разработанный для IP-устройств, сделал эту нишу сильнее и прогрессивнее. Нынешние возможности, предоставленные потребителю, просто впечатляют!
IP-камера Zemismart Tuya с поддержкой протокола ONVIF: подключение к Home Assistant
На обзоре бюджетная IP камера с протоколом ONVIF. Простыми словами, ONVIF позволяет устройствам разных производителей работать вместе. Скажем IP камера одной фирмы, может подключаться к видеорегистратору (NVR) другой фирмы и так далее. Из бонусов протокола: автоматическое обнаружение устройств и, вследствие чего, более быстрая настройка. Протокол также поддерживает PTZ (Pan, tilt, zoom — вертикальный\горизонтальный наклон и зумирование). Я, вообще говоря, большой фанат камер от Yi (бывшееподразделение Xiaomi, которое специализировалось на камерах, до их отделения в отдельную полноценную компанию. Хотя, судя по числу выпущенных устройств за последний год (их 2), лучше бы они работали с Xiaomi). Так вот, к большому сожалению, камеры Yi не поддерживают открытые протоколы передачи видео (но они есть, некоторые версии Yi Home и Dome камер), что накладывает ограничения и обязывает использовать сервера Yi и их приложение. Я же фанат системы умного дома Home Assistant и мне очень важно было иметь доступ к камере через эту систему и возможность физически управлять камерой.
Камера поставляется в коробке без опознавательных знаков. Хотя один есть — наклейка Tuya, которая говорит о совместимости с экосистемой Tuya. А как известно, Tuya всегда выступала за открытость, поощряет использование открытых протоколов и поддерживает протокол Onvif (+ RTSP), что дает возможность использовать ее в Home Assistant. Камера, к слову, бюджетная и погуглив в интернете, выяснил, что ее производит фирма HowellCam.
Технические характеристики
Комплект поставки. Все стандартно: патч-корд, блок питания с кабелем micro USB, платформа для крепления на стену или потолок с двумя дюбель-шурупами. Есть также инструкция и скрепка для сброса камеры. Самое интересное, что инструкция ни слова не говорит про Onvif и как его использовать, так что пришлось искать информацию в интернете. Как подключаться будет описано чуть позже.
Аксессуары крупным планом. Ethernet кабель всего метр. Блок питания на 5V 1A. У камеры нет PoE, то есть она не может питаться по Ethernet кабелю, только от 5V порта.
Вид спереди. Камера хоть и максимально бюджетная, но сделано все ровно и аккуратно. Спереди датчик освещенности и микрофон, объектив в центре. Вокруг объектива есть 6 диодов ночной IR подсветки. Для тех, кто пропустил в начале обзора, эта камера PTZ — можно дистанционно вращать ею по вертикали, горизонтали и зумировать картинку.
Сверху у камеры есть слот для microSD карты. Отверстие RESET для сброса камеры. В корпусе сбоку есть еще динамик, который каждый раз при включении говорит «Connection start.… Connection Successful». Если это раздражает, то можно разобрать камеру и вытянуть шлейф динамика, но в этом случае и двусторонняя связь работать не будет.
Снизу есть резиновые демпферы. По центру 3/4» резьбы для штатива. Вокруг нее прорезь для платформы-крепления на стену или потолок.
С обратной стороны в нижней части RJ45 разъем и microUSB вход. Как уже писал, PoE тут нет, то есть камера не может питаться по Ethernet и питание через 5V порт обязательно. Сзади есть также странная прорезь, как делают под гвоздь для крепления на стену, но это явно не под гвоздь. Возможно, чтобы звук выходил, так как снизу видны отверстия из под динамика (или для вентиляции, так как динамик на самом деле сбоку стоит).
Стандартное приложение Tuya Smart
Для начала решил подключить к Tuya приложению, так как большинство настроек находится именно там. Главное окно показывает изображение, есть индикация качества сигнала и переключатель разрешения трансляции (HD или SD качество). Иконка динамика в углу включает двухстороннюю связь (звук с вашего телефона начинает передаваться на камеру). Из опций: возможность сделать скриншот, опять же двусторонняя связь, запись видео локально на телефон, облачное хранилище (платная опция), опция управления камерой по осям и зум (также работает жестами по картинке видео). В настройках все стандартно: настройка ночного видения, обновление камеры и другое. Работает все быстро, поток стабильный. Для большинства пользователей этого приложения хватит с головой.
Качество картинки
Качество картинки ничем не отличается от других IP камер. Я уже жду, когда начнут 4K сенсоры ставить. Без зумирования вполне все четко, но если приблизить программно, то уже картинка не такая четкая.
В камере есть 6 IR диодов для ночной записи видео. Дальность заявлена 10 метров. Видно все отлично, ничего нового, все как и в других камерах.
Подключение к Home Assistant
Мы же идем дальше и будет подключать камеру к системе умного дома Home Assistant. Существует несколько интеграций для подключения камеры, но я использовал ONVIF. Для подключения камеры нужно сначала зайти в панель управления вашего роутера и узнать IP адрес камеры. При настройке интеграции укажите IP адрес камеры, порт 8080, логин admin и пароль тоже admin. После чего камера подключится к Home Assistant. Также есть программа Onvif Device Manager, которая позволяет менять настройки доступа к камере на самой камере.
Кнопки вперед, назад, влево и вправо на картинке выше — это не стандартные кнопки, я их добавил сам для управления камерой. Для этого используется сервис PTZ из интеграции ONVIF. Можно отсюда вручную управлять камерой, но это не очень удобно и долго. Лучше все же сделать клавиши как у меня возле панели с видео.
Нужно поправить отступы в соответствие с разметкой YAML для Home Assistant.
— type: picture-entity
entity: camera.tuya_yt08_onvif_mediaprofile_000
— type: entities
entities:
— entity: camera.tuya_yt08_onvif_mediaprofile_000
tap_action:
action: call-service
service: onvif.ptz
service_data:
entity_id: camera.tuya_yt08_onvif_mediaprofile_000
pan: LEFT
speed: 1
distance: 1
move_mode: ContinuousMove
name: Pan Left
show_state: false
icon: ‘mdi:arrow-left’
show_icon: true
— entity: camera.tuya_yt08_onvif_mediaprofile_000
tap_action:
action: call-service
service: onvif.ptz
service_data:
entity_id: camera.tuya_yt08_onvif_mediaprofile_000
tilt: UP
speed: 1
distance: 1
move_mode: ContinuousMove
name: Tilt Up
icon: ‘mdi:arrow-up’
— entity: camera.tuya_yt08_onvif_mediaprofile_000
tap_action:
action: call-service
service: onvif.ptz
service_data:
entity_id: camera.tuya_yt08_onvif_mediaprofile_000
tilt: DOWN
speed: 1
distance: 1
move_mode: ContinuousMove
name: Tilt Down
icon: ‘mdi:arrow-down’
— entity: camera.tuya_yt08_onvif_mediaprofile_000
tap_action:
action: call-service
service: onvif.ptz
service_data:
entity_id: camera.tuya_yt08_onvif_mediaprofile_000
pan: RIGHT
speed: 1
distance: 1
move_mode: ContinuousMove
name: Pan Right
icon: ‘mdi:arrow-right’
show_icon: true
camera_image: camera.tuya_yt08_onvif_mediaprofile_000
camera_view: live
Вывод
В этой IP камере нет ничего сверхнового по характеристикам, все как обычно для камер этой ценовой категории. Из интересного, и собственно почему я купил ее, есть протокол ONVIF, который позволяет ее использовать с любой универсальной системой видеонаблюдения и позволяет также подключить к системе умного дома Home Assistant. Есть также функция PTZ для управления камерой по осям, которая также доступна в Home Assistant. Камера однозначно стоит своих денег, так как сейчас все меньше и меньше камер с открытыми протоколами передачи видео, все хотят быть монополистами и навязывать использование своих облаков для хранения видео.
Купить такую камеру можно тут: Tuya IP Camera
Больше Tuya устройств на распродаже 11.11: тут
Вот картинка с купонами для этого магазина.
Как подключить 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, то будет забавное решение и «велосипед»
Ну и вот вам полезная ссылка на базу ссылок потоков камер