Что такое Flussonic Watcher

от автора

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

Flussonic Watcher это:

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

В состав Flussonic Watcher входит:

  1. видеостриминговое ядро — сервер Flussonic;
  2. веб-портал, предоставляющий доступ администраторам и пользователям к камерам и архивам видео без использования плагинов;
  3. мобильные приложения;
  4. агент на камеру для доступа к ней из-за NAT без проброса портов, мирайя и смс;
  5. система интеграции с внешними биллингами, серверами авторизации;
  6. набор готовых бизнес-процессов и тех-регламентов на подготовку и продажу камер для клиентского видеонаблюдения.

Зачем нужен Watcher?

Мы разрабатывали Watcher как ответ на запросы наших клиентов, так что наш новый комплекс будет полезен в следующих случаях:

  1. создание абонентского сервиса видеонаблюдения на базе интернет-провайдера или OTT, т.е. без базы;
  2. решения для муниципальных камер: безопасный регион, город, село и т.п.;
  3. создание сервиса по онлайн-доступу к камерам для клиентов производителя камер;
  4. внутрикорпоративный удаленный доступ к камерам видеонаблюдения с возможностью доступа широкого круга лиц;
  5. аудио-видеофиксация технологических процессов на производстве.

Мы поэтапно расскажем про интересные истории внедрения, а пока расскажем про детали организации Flussonic Watcher.

Flussonic внутри

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

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

Из приятных особенностей для локальных сетей: мы добавили в Flussonic поиск камер по Onvif (и ещё шести спец-протоколам) и можно попробовать поискать все свои камеры.

У Watcher есть два режима работы: «мне только попробовать» и «у меня тут всё серьезно», т.е. режим плагина и режим сервиса.

В первом случае весь комплекс из одного Watcher и Flussonic работают только на одном сервере, сам вотчер не хранит у себя в базе информацию о потоках и полностью доверяет эту информацию флюссонику с которым он работает. Особенность этого удобного, хотя и ограниченного варианта в том, что можно подправить настройки потока в интерфейсе флюссоника и эти изменения сразу будут видны в вотчере.

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

Пользователи в Watcher

До того, как мы сделали Watcher, пользователям приходилось самостоятельно разрабатывать веб-сайт (поверх Flussonic’а или другого видеоядра), на который заходят пользователи, логинятся и видят камеры. Разработка подобного фронтэнда — это всегда дорого и связано с большими проблемами с оптимизацией и корректной доставкой видео от медиасервера в браузер или мобильное приложение. Мы многократно облегчили задачу своим клиентам и сделали готовое решение конечного пользователя поверх Flussonic Media Server.

Watcher — это веб-приложение на питоне, которое запускается самим флюссоником. Оно может хранить свои данные в базе данных sqlite или postgresql. SQLite для того, чтобы проще было попробовать, а postgresql для того, что бы можно было полноценно работать, в т.ч. развернуть кластер. Кластерный режим работы с SQLite работать не будет, это всё таки прямо скажем, неудачная идея.

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

Группы пользователей

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

Т.е. в плохом варианте могут существовать древовидные группы пользователей, древовидные группы камер и какие-то интересные связи между пользователями, камерами, группами пользователей и группами камер.

Всё это мы продумали, нарисовали маркером на стене и сделали вариант попроще: камеры, группы и пользователи. Большая страшная схема на стене осталась, потому что на белую доску она не влезла, а полет фантазии было не остановить, так что будет нужно — вернемся к монструозному варианту.

Интеграция

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

У нас есть механизм интеграции с биллингом, внешними базами пользователей и т.п. и он выглядит очень удобно: незатейливый IDL из которого можно сгенерировать CORBA стабы для доступа через OLE.

Не переживайте, всё гораздо проще: два адреса в которые можно курлом залить CSV со списком пользователей и списком камер.

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

Для этих случаев мы уже делаем собственную систему тарификации и скоро сможем ей порадовать.

Брендирование

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

В Watcher возможно поменять ряд элементов интерфейса, что бы весь сайт выглядел как ваш.

Мы даже можем дать вам возможность добавить логотип в мобильные приложения. Кстати, о мобильных приложениях: мы их тоже сделали и выложили.

Мобильные приложения

Мобильные приложения для Android и iOS мы выложили под именем peeklio (это кодовое название нашего хостинга для IP камер). Ими можно воспользоваться с вашей собственной инсталяцией Watcher.

Они сделаны с помощью React Native (такой яваскрипт, но без веб-браузера), так что сможем поделиться увлекательным опытом работы с этой технологией.

Просмотр видео с камер, доступ к архиву, избранное и т.п. — это уже есть и можно пользоваться.

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

Агент на камере

И у нас есть решение для такой задачи. Мы написали и научились заливать агента на камеру. Этот агент выходит в интернет, подключается к вашему Watcher и потом подключается напрямую к Flussonic.

Наш способ забирать видео с камеры лучше чем OpenVPN, потому что не создает никаких виртуальных интерфейсов, не требует удваивания парка железа. Наш агент совсем небольшой: килобайт 200, так что влезет на любую камеру с линуксом, умеет шифровать видео, а заодно
здорово улучшает качество доставки: там где по OpenVPN картинка будет сыпаться, с нашим агентом всё будет лучше.

Продолжение банкета

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

Так же поделимся планами на будущее и будем рады любой обратной связи. Попробовать Flussonic Watcher можно уже сегодня, взяв у нас триал: http://erlyvideo.ru/watcher
ссылка на оригинал статьи https://habrahabr.ru/post/316360/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *