Если у вас в голове бурлят идеи о том, как бы сделать историю, в которой будет много пользователей, много IP камер и куча профита с этого, то не проходите мимо — мы расскажем о том, как мы помогаем запускать сервисы массового видеонаблюдения на нашем Flussonic Watcher.
Flussonic Watcher это:
готовый програмный комплекс операторского класса, обеспечивающий многопользовательский доступ к видео и архивам с тысяч IP-камер через браузеры и мобильные устройства.
В состав Flussonic Watcher входит:
- видеостриминговое ядро — сервер Flussonic;
- веб-портал, предоставляющий доступ администраторам и пользователям к камерам и архивам видео без использования плагинов;
- мобильные приложения;
- агент на камеру для доступа к ней из-за NAT без проброса портов, мирайя и смс;
- система интеграции с внешними биллингами, серверами авторизации;
- набор готовых бизнес-процессов и тех-регламентов на подготовку и продажу камер для клиентского видеонаблюдения.
Зачем нужен Watcher?
Мы разрабатывали Watcher как ответ на запросы наших клиентов, так что наш новый комплекс будет полезен в следующих случаях:
- создание абонентского сервиса видеонаблюдения на базе интернет-провайдера или OTT, т.е. без базы;
- решения для муниципальных камер: безопасный регион, город, село и т.п.;
- создание сервиса по онлайн-доступу к камерам для клиентов производителя камер;
- внутрикорпоративный удаленный доступ к камерам видеонаблюдения с возможностью доступа широкого круга лиц;
- аудио-видеофиксация технологических процессов на производстве.
Мы поэтапно расскажем про интересные истории внедрения, а пока расскажем про детали организации 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 (это кодовое название нашего
Они сделаны с помощью React Native (такой яваскрипт, но без веб-браузера), так что сможем поделиться увлекательным опытом работы с этой технологией.
Просмотр видео с камер, доступ к архиву, избранное и т.п. — это уже есть и можно пользоваться.
Однако для полного счастья и законченности OTT сервиса не хватает вишенки на торт: возможности повесить камеру на стенку, включить и сразу увидеть видео на мобилке. Об этом мы тоже подумали и сделали агента для установки на камеру.
Агент на камере
И у нас есть решение для такой задачи. Мы написали и научились заливать агента на камеру. Этот агент выходит в интернет, подключается к вашему Watcher и потом подключается напрямую к Flussonic.
Наш способ забирать видео с камеры лучше чем OpenVPN, потому что не создает никаких виртуальных интерфейсов, не требует удваивания парка железа. Наш агент совсем небольшой: килобайт 200, так что влезет на любую камеру с линуксом, умеет шифровать видео, а заодно
здорово улучшает качество доставки: там где по OpenVPN картинка будет сыпаться, с нашим агентом всё будет лучше.
Продолжение банкета
В ближайших статьях мы постараемся рассказать вам о том, какие мы придумали процессы подготовки камер, какие могут быть процедуры продажи этих камер, их учета.
Так же поделимся планами на будущее и будем рады любой обратной связи. Попробовать Flussonic Watcher можно уже сегодня, взяв у нас триал: http://erlyvideo.ru/watcher
Автор: Эрливидео