Облачный сервис для контроля качества видеопотоков
Многофункциональный облачный сервис для контроля качества видеопотоков в сфере доставки телевизионного сигнала и подготовки контента для вещания, а также в системах видеонаблюдения.
Программный продукт (клиент-серверное приложение) состоит из двух частей: программный зонд и облачный сервер.
Программный зонд может устанавливаться в разных точках сети и передает информацию о видеопотоках на сервер. Сервер находится в облаке. Он агрегирует полученные данные, предоставляет наглядные отчеты в графической форме в браузере оператора и отправляет пользователю оповещения.
Нами реализовано
Зонды отправляют данные на веб-сервер (Golang), который перенаправляет их на сервер очередей (Redis) и формирует ответ зондам. Из сервера очередей данные параллельно обрабатываются и сохраняются в базе данных (PostgreSQL). Изображения (скриншоты) видепотока склеиваются и сохраняются с информацией о времени смещения. Формируется различная статистика, которая хранится в базе данных и в кеше (Redis). Настроено автоматическое развертывание изменений в проекте с помощью Jenkins.
Построение графиков
У клиента была проблема с производительностью построения графиков данных о видеопотоках в реальном времени на различных библиотеках (D3, NVD3 и т. п.).
Мы провели исследование библиотек отрисовки графики (highcharts, smoothie, chartjs и т. п.) с применением «боевых» условий и данных.
По результатам исследования производительности и возможностей была выбрана библиотека chartjs. На ее основе разработали построение различных сложных графиков (Bitrate/DownloadRate/EPSNR и т. д.). Данные отображаются в реальном времени. Оптимизировали работу для 100 потоков на один график.
Как работает сервис
Программный продукт (клиент-серверное приложение) состоит из двух частей: программный зонд и облачный сервер.
Программный зонд может устанавливаться в разных точках сети и передает информацию о видеопотоках на сервер. Сервер находится в облаке. Он агрегирует полученные данные, предоставляет наглядные отчеты в графической форме в браузере оператора и отправляет пользователю оповещения.
Нами реализовано
Зонды отправляют данные на веб-сервер (Golang), который перенаправляет их на сервер очередей (Redis) и формирует ответ зондам. Из сервера очередей данные параллельно обрабатываются и сохраняются в базе данных (PostgreSQL). Изображения (скриншоты) видепотока склеиваются и сохраняются с информацией о времени смещения. Формируется различная статистика, которая хранится в базе данных и в кеше (Redis). Настроено автоматическое развертывание изменений в проекте с помощью Jenkins.
Построение графиков
У клиента была проблема с производительностью построения графиков данных о видеопотоках в реальном времени на различных библиотеках (D3, NVD3 и т. п.).
Мы провели исследование библиотек отрисовки графики (highcharts, smoothie, chartjs и т. п.) с применением «боевых» условий и данных.
По результатам исследования производительности и возможностей была выбрана библиотека chartjs. На ее основе разработали построение различных сложных графиков (Bitrate/DownloadRate/EPSNR и т. д.). Данные отображаются в реальном времени. Оптимизировали работу для 100 потоков на один график.