Сервис фильтрации mpeg-dash стримов и VoD контента для людей с особенностями зрения. Демо сервиса
Данный сервис предоставляет возможность фильтрации и подготовки видео для людей с особенностями зрения. Это достигается засчет двух типов фильтрации - цветовой фильтр и фильтр триггеров эпилепсии:
- Цветовой фильтр работает на стороне клиента и представляет собой применение настраиваемых svg/css фильтров
- Фильтр триггеров эпилепсии работает на стороне сервера и представляет собой фильтр ffmpeg, работающий в live-режиме.
Для запуска приложения доступно несколько вариантов
Запускаем приложение через docker compose up --build
, получаем запущенные backend, frontend и prometheus сервисы
Собираем приложение через make build
, затем запускаем бинарник ./main
,
получаем запущенный backend-сервис на порте, указанном в config.yaml
файле
Разворачиввем в кластере kubernetes конфиги из директории deploy/kubernetes
(например через команду kubectl apply -f ./deploy/kubernetes
),
предварительно собрав backend-сервис в docker image с тегом colorblinder/backend
и загрузив его в доступный для kubernetes docker registry.
Получаем запущенные backend-сервис и мониторинг с предустановленым дашбордом в grafana (сервис backend доступен по 80 порту на Ingress, grafana на 32000 порту). Предполагается, что данный способ развертки мог бы быть использован в текущей архитектуре KION, поскольку backend-сервис представляет собой уже готовый к работе middleware-сервис, а frontend так или иначе просто является представлением возможных модификаций в уже существующий.
POST /start_stream
- Запускает стрим с фильтрацией контента, который может быть триггером эпилепсии- Request
{ "stream_url": "https://dash.akamaized.net/dash264/TestCasesHD/2b/qualcomm/1/MultiResMPEG2.mpd" }
- Response
{ "new_url": "/stream/b1642bb4-e7fd-42ac-93dd-9334b4b74e35/file.mpd" }
GET /stream*
- Файловый сервер, дающий доступ к манифестам и фрагментам видео, которые перекодируются в живом режиме
По-умолчанию (при развертке в docker) frontend-сервис запускается на 127.0.0.1:80
, и представляет собой одностраничное веб-приложение
с возможностью цветовой фильтрации и обращения к backend-сервису для вызова фильтрации контента-триггера.
Использование:
- Пользователь, ориентируясь на цветовой круг, выставляет фильтры цветового спектра, контрастности и насыщенности так, чтобы отчетливо различать все цвета
- Затем, если требуется, пользователь включает фильтрацию сцен, которые могут быть триггерами эпилепсии
- Далее пользователем вписывается url-адрес mpf-манифеста желаемого видеоролика (в дальнейшем этот шаг должен быть скрыт через привязку к видеохостингу)
- После нажатия на кнопку "Загрузить" видеопоток начинает воспроизводиться в плеере сервиса, в реальном времени может быть изменена настройка цветовых фильтров
В Makefile
приведена команда (make encode
), позволяющаяя заранее произвести фильтрацию контента, который может быть
тригерром эпилепсии, в видеоролике и преобразование его в mpeg dash формат.
Это сделано для экономии ресурсов серверов, если фильм/сериал/другой тип контента является очень популярным и постоянно запрашивается пользователями