Облачный сервис для контроля качества видеопотоков

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

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

Сервис для контроля качества видеопотоков

Как работает сервис

Программный продукт (клиент-серверное приложение) состоит из двух частей: программный зонд и облачный сервер.

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

Нами реализовано

Зонды отправляют данные на веб-сервер (Golang), который перенаправляет их на сервер очередей (Redis) и формирует ответ зондам. Из сервера очередей данные параллельно обрабатываются и сохраняются в базе данных (PostgreSQL). Изображения (скриншоты) видепотока склеиваются и сохраняются с информацией о времени смещения. Формируется различная статистика, которая хранится в базе данных и в кеше (Redis). Настроено автоматическое развертывание изменений в проекте с помощью Jenkins.

Построение графиков

Графики видеопотоков

У клиента была проблема с производительностью построения графиков данных о видеопотоках в реальном времени на различных библиотеках (D3, NVD3 и т. п.).

Мы провели исследование библиотек отрисовки графики (highcharts, smoothie, chartjs и т. п.) с применением «боевых» условий и данных.

По результатам исследования производительности и возможностей была выбрана библиотека chartjs. На ее основе разработали построение различных сложных графиков (Bitrate/DownloadRate/EPSNR и т. д.). Данные отображаются в реальном времени. Оптимизировали работу для 100 потоков на один график.