Управление видео с помощью middleware Viinex при создании центра контроля безопасности распределенных объектов

При внедрении систем управления безопасностью производители PSIM-систем сталкиваются с проблемой: заказчики PSIM-решений используют совершенно разные системы видеонаблюдения разных производителей. Нередко оказывается, что даже в единой системе безопасности видеоданные, которые нужно передавать в центр контроля, должны быть собраны от различных систем видеонаблюдения, установленных на территориально распределенных объектах заказчика, например, таких как сети заправок или банковских структурных подразделений.

В связи с этим на плечи разработчика PSIM-систем ложится непростая задача по интеграции целого парка видеосерверов различных производителей. Вдобавок все осложняется тем, что современные PSIM-системы, как правило, предоставляют данные в веб-интерфейсе, а далеко не все системы видеонаблюдения совместимы со стандартом HTML5 для видео стриминга.

В части управления видео требования обычно сводятся к простым пунктам:

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

Под репликацией в данном случае мы подразумеваем перенос необходимой части видеоархива из одной системы в другую. Например, перенос нужных отрезков видеозаписей различных видеосистем непосредственно с периметра видеонаблюдения (где осуществляется запись по заданному временному периоду на объектах) на другой периметр – скажем, в центр контроля для долгосрочного хранения записей инициированных «по тревоге» и удобного представления этих записей различным внутрикорпоративным клиентам.

Решение с помощью Viinex

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

Используя Viinex, производители PSIM могут оперативно развертывать системы на крупных объектах даже с несколькими разными системами видеонаблюдения, используя Viinex в качестве «шлюза», имеющего систему репликации видеоархивов с возможностью раздачи видео по стандартам RTSP, HLS и WebRTC. Viinex полностью совместим с HTML5 спецификацией, а весь инструментарий управления видео доступен через HTTP RESTful API.

Интеграция сторонних VMS и ретрансляция видео в HTML5

Именно по просьбам наших партнеров-производителей PSIM мы интегрировали в Viinex различные VMS (подробнее об этом есть здесь), и теперь наш продукт предоставляет средства для получения живых видеопотоков и возможность трансляции сторонних видеоархивов и их репликации.

Использование видеопотоков сторонних видеосерверов по-прежнему возможно в режиме динамического получения видеопотоков (т.е. только тех, которые используются в данный момент – например, для отображения, аналитики, репликации или видеозаписи), без необходимости загружать сеть видеопотоками, которые фактически не используются. Этот принцип отражен в схеме лицензирования Viinex, когда подключение каждого канала интегрированной VMS осуществляется по отдельной лицензии, а схема лицензирования видеопотоков осталась прежней - лицензируются только реально используемые видеопотоки, как и при подключении к серверу Viinex видеопотоков от обычных IP-видеокамер.

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

Помимо получения видеопотоков IP-видеокамер по стандартным протоколам и видеопотоков видеосерверов различных VMS, которые мы интегрировали по предоставляемым их производителями SDK, наш партнер также может выполнить интеграцию внешних источников видео (как онлайн-, так и из ранее записанных файлов видео) самостоятельно с использованием плагина, исходный код которого мы выложили в открытый доступ на Github под MIT-лицензией.

Подключение алгоритмов видеоаналитики

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

Такой механизм напоминает метод FastCGI для взаимодействия веб-серверов и различных связанных приложений. Веб-сервер может запускать внешний процесс, управлять его жизненным циклом и связываться с этим процессом через pipe или доменные сокеты UNIX. Соответственно, Viinex может запускать внешний процесс, управлять его жизненным циклом и взаимодействовать с этим процессом, используя соответствующие методы IPC.

Viinex предоставляет два ключевых механизма для взаимодействия с внешним процессом.

    • ● Обмен событиями с приложениями для аналитики
    Внешний процесс может получать события из Viinex, а также генерировать события и передавать их другим объектам в Viinex. Для этого используется простой механизм стандартного ввода/вывода. Все события, на которые подписан внешний процесс, сериализуются в формате JSON и отправляются Viinex на стандартный ввод этого процесса. И наоборот – все, что внешний процесс записывает в свой стандартный вывод, должно иметь синтаксис JSON, который принимается Viinex как событие этого процесса. Таким образом, все сводится к простому обмену JSON-командами через stdin/stdout.
    • ● Обработка видео и получение raw-видеопотока для аналитики
    Viinex предоставляет API для получения несжатого видео из исходных видеоисточников. Используя этот API, внешний процесс может получать видео для выполнения пользовательской аналитики. Методы IPC, используемые для реализации API для получения несжатого видеопотока в Viinex, представляют собой комбинацию из общей памяти (shared memory) и именованных каналов (named pipes) (в Windows) или доменные сокеты UNIX (в Linux), для того чтобы несжатый видеопоток между процессами на локальной машине обрабатывался без какого-либо копирования.

Эти два механизма позволяют подключать алгоритмы видеоналитики наиболее простым способом. Интеграция со сторонними системами на основе событий может быть относительно простой и написана практически в любом языке программирования, имеется в виду простой интерфейс для обмена событиями (то есть стандартный ввод/ вывод данных в формате JSON).

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

Репликация видеоархивов

Дополнительно к интеграции сторонних VMS мы добавили в Viinex функциональность репликации видеоархивов как собственных, так и сторонних VMS. Режим репликации может быть в Viinex управляемым или автоматическим.

Принципиальное различие между этими двумя режимами таково. Режим управляемой репликации означает, что весь процесс репликации полностью контролируется через API Viinex. Каждая задача репликации для управляемого приемника репликации представляет инструкции о том, откуда взять видеоданные, за какой интервал времени они должны быть и в какой канал в видеоархиве должны быть помещены эти данные для того, чтобы впоследствии «раздать» их средствами Viinex.

Режим управляемой репликации хорошо подходит для работы c видеоархивом по запросу, когда необходимо провести расследование инцидентов в центре контроля.

Репликация в автоматическом режиме выполняется, напротив, уже от имени источника репликации в некотором удаленном экземпляре Viinex. Это значит, что источники репликации, подключенные к приемнику репликации, будут отправлять новые видеоданные, как только они появятся в видеоархивах, назначенных источниками репликации, не ожидая явных заказов или запросов от приемника репликации, находящегося на центральном хосте.

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

Репликация видеоархива в режиме управления через API Viinex

Управляемый приемник репликации Viinex фактически является агентом, который принимает задачи репликации через API и выполняет эти задачи. Подключение реплицируемого потока может быть как по протоколу RTSP, когда просто указывается URL, логин-пароль и транспорт для репликации в Viinex, так и по проприетарным SDK различных VMS в случае, если эти VMS уже интегрированы в Viinex.

Примеры запросов через API:

    1. Получение timeline видеоархива VMS для оценки репликации;
    2. Передача фрагмента видеоданных в видеоархив Viinex начиная c заданного времени, когда Viinex сам забирает видео из указанных источников в соответствии с устанавливаемыми заданиями на репликацию. Ключевая сложность здесь — это перенести сторонний видеоархив за любое произвольное время в соответствующее место внутри видеоархива Viinex. API Viinex позволяет «вклеивать» фрагменты, для которых в архиве Viiex есть свободный временной отрезок, а в случае необходимости API Viinex дает возможность удаления уже существующих фрагментов в видеоархиве. При этом в случае запроса к экземпляру Viinex экспорт или проигрывание видео внутри интервала будет происходить непрерывно, как если бы таких «склеек» не было.

    3. Управление скоростью репликации. Числовое свойство «скорость» (speed) задания на репликацию по RTSP определяет скорость передачи данных, с которой видеокадры должны приниматься от источника репликации. Например, указание «скорости»: 8 означает, что Viinex будет запрашивать скорость передачи данных 8, что приведет к 8-кратному увеличению скорости репликации по сравнению с обычной скоростью воспроизведения (То есть 10 минут видео будет передаваться за 1 минуту и 15 секунд на скорости 8). Иными словами, эта настройка позволяет не ожидать час для того, чтобы передать часовой видеоархив, транслируемый VMS по RTSP-протоколу. Есть возможность постановки одновременно нескольких задач на репликацию, для того чтобы обеспечить максимальную скорость репликации большого видеоархива, разбив его на временные отрезки.
    4. Запрос для удаления фрагмента данных Viinex за указанный интервал времени обеспечивает возможность замены данных (вместо «доклейки» новых данных к существующим) в случаях, когда такая замена необходима. Это позволит при необходимости с помощью внешнего по отношению к Viinex программного обеспечения управлять видеоархивом – т.е. вместо имеющейся в Viinex логики, когда для записи новых данных в видеоархив из него удаляются наиболее старые данные, реализовать любую другую политику актуальности данных.

Автоматическая репликация видеоархива

Автоматический режим означает, что источник репликации отвечает за автоматическую отправку видеоданных из экземпляра Viinex, где эти данные последовательно создаются/собираются (например, при подключенных непосредственно к Viinex живых видеоисточниках), в другой экземпляр, где должен быть развернут приемник репликации.

Источник репликации самостоятельно подключается к своему одноранговому приемнику репликации, «договаривается» с ним о том, каких видеоданных, от самых старых до самых новых, не хватает в центральном хосте, а затем автоматически отправляет эти данные. Затем эти шаги повторяются. Когда оказывается, что никакие новые данные не должны передаваться в приемник репликации, источник приостанавливает свою работу.

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

В случае разрыва связи источника автоматической репликации с приемником поддерживается докачка видеоархива после восстановления соединения.

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

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

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


Средства обеспечения безопасности автоматической репликации


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

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


Решение проблемы сквозной нумерации камер при автоматической репликации


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

Например, когда источник репликации подключается к приемнику и отправляет видеоданные с локальных камер с именами cam1 и cam2, эти источники видео получат имена site1.cam1 и site1.cam2 в видеоархиве, прикрепленному к приемнику репликации. И если другой источник репликации загружает видео с камер, также называющихся cam1 и cam2, то этот источник получит имена site2.cam1 и site2.cam2 на стороне приемника репликации.

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

 

Все эти механизмы и инструменты разрабатываются именно таким образом, чтобы Viinex, будучи middleware, предоставлял нашему партнеру удобный инструментарий для управления видео, когда политику использования Viinex в своем приложении партнёр мог определять полностью самостоятельно. Этот подход позволяет нашим партнерам-производителям PSIM использовать Viinex для управления видео на самых разных объектах: аэропортов, морских портов и систем обеспечения транспортной безопасности городской инфраструктуры.

Комментариев еще нет.

Leave a Reply

Вы должны войти Авторизованы чтобы оставить комментарий.