Как транслировать видео с камер наблюдения в отчете Power BI

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

Платформа Power BI позволяет также разрабатывать собственные визуальные компоненты, которые представляют собой html-фреймы с разметкой и скриптом на TypeScript (JavaScript). Для трансляции видео будем разрабатывать именно такой визуальный компонент.

Рассмотрим следующие варианты решения задачи.

Протокол реального времени

Самым распространённым решением для трансляции видео с камер наблюдения является использование потокового протокола реального времени (Real Time Streaming Protocol, RTSP). Преимуществами данного подхода является ориентированность на потоковую передачу мультимедиа (использование протокола RTP) и возможность управления потоком - выполнения команд. Для воспроизведения RTSP-потока на веб-страницах можно использовать:

  • ActiveX-компонент – данный подход нас не устраивает, т.к. не будет работать в браузерах Chrome и Firefox.
  • Обработка RTSP-потока на сервере и выдача пригодного для воспроизведения на веб-странице потока, типа WebRTC и Websocket и пр. – данный подход требует больших трудозатрат и отдельного сервера (серверов, в зависимости от нагрузки).

Видеосжатие

Также широко распространённым решением является использование метода видеосжатия MJPEG (Motion JPEG) – каждый отдельный кадр является отдельным изображением JPEG. Преимуществом данного подхода является простота реализации, но большой размер кадров создает нагрузку на сеть, что делает невозможным управление потоком.

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

Процесс разработки компонентов

Для разработки визуальных элементов Power Bi нам понадобилось установить Node.js и зарегистрировать аккаунт Power BI (https://app.powerbi.com). Инструменты разработчика доступны только в облачной службе.

После установки Node.js нужно установить инструменты разработчика компонентов Power BI. Для этого откроем консоль и выполним следующую команду:

npm install -g powerbi-visuals-tools

Далее создается проект нашего компонента. Назовем его «MyTestVisual», перейдем в рабочую директорию и выполним команду:

pbiviz new myTestVisual

В результате выполнения команды в директории появится каталог с названием нашего компонента.

Исходный код решения лежит в файле src/visual.ts. В итоге решение было разработано с использованием HTML, JavaScript и TypeScript.

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

pbiviz start

В результате команды на локальном компьютере запускается http-сервер с компонентом, облачная служба Power BI в режиме разработчика подключается к локальному компьютеру.

Далее необходимо зайти на облачную службу Power BI (https://app.powerbi.com), перейти в настройки и включить тестирование в разделе Разработчик.

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

После окончания разработки компонент можно упаковать в пакет командой, расположенной ниже, и импортировать в Power BI.

pbiviz package

 

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

Этот и другие отчеты в Power BI вы можете заказать в компании i-Sys. Удачной работы с продуктами Microsoft!

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

 

 

Источники: