Разработка редактора компоновок для сервиса потокового видеовещания (проект)

Материал из Wiki - Факультет компьютерных наук
Версия от 21:57, 20 сентября 2017; Dkorolev (обсуждение | вклад)

(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск
Ментор Королев Денис
Учебный семестр Осень 2017
Учебный курс 2-й курс
Проект можно развивать на летней практике
Максимальное количество студентов, выбравших проект: 5-10



Что это за проект?

Редактор компоновок позволяет из нескольких видеопотоков собрать на одном экране композицию, загрузить/выбрать фон, добавить текстовые и графические элементы. Используется в прямых трансляциях, записи, подключается к микшеру потоков или непосредственно к источнику трансляции. Это не видеомикшер в обычном понимании (про видеомикшер есть отдельная тема), а отдельный модуль, использующий тот же движок, но для формирования составной картинки, использоваться выходной поток может как сам по себе (сразу в трансляцию/запись), так и в микшере среди прочих входов. Основная область применения -- трансляция лекций и других мероприятий, где одновременно нужно показывать выступающего и экран, при этом, нет ресурсов на режиссуру в эфире. Здесь важно иметь возможность сделать 2-3 компоновки, заставку и переключать их время от времени в зависимости от происходящего. Высоких требований к скорости выполнения, как в микшере, нет (2-3 секунды задержки не критичны). С другой стороны, здесь требуется создать конструктор компоновок и интерфейс управления ими во время эфира, и всё это на том же движке, что микшер. В развитие проекта для интересующихся соответствующими направлениями можно предложить автопереключение компоновок (анализ потоков на изменения и принятие режиссерских решений).

Чему вы научитесь?

Как и в Микшере, работа связана с движком на базе gstreamer -- само по себе познавательное дело, т.к. применимость gstreamer'а не ограничивается сведением пото созданием отзывчивого пользовательского интерфейса.

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

Коротко о связи с реальностью: изначально именно компоновки были соновной идеей On-air.pro, который строился как публичный сервис для трансляции лекций с нескольких источников. Но всилу ограничений используемого движка компоновки не стали киллер-фичей, зато сервис увлеченно транслирует в соцсети. Тем не менее, как только созреет микшер, редактор компоновок и другие модули, выставленные на проработку, они займут своё место в проекте.

Организация работы (Как студенты будут работать в команде?)

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

Далее организуется slack и трекер (обычно trello), где ведется рабочее общение и трекинг задач. Встречи -- по договоренности (на первых порах это понадобится точно) на Кочновском, альтернативный и более частый вариант -- аудио/видеосвязь. Удобно, т.к. можно собираться по актуальному вопросу безотлагательно и в любое время в любом составе.

Какие начальные требования?

В любом случае понадобятся навыки программирования (будь то веб-разработка или работа с движком GStreamer/Snowmix), работы с Linux (потому что виртуалка в сети). Остальное -- специфика, с которой можно познакомиться по ходу проекта. Веб-часть на Ruby on Rails -- для унификации с базовым проектом.

Ожидается, что разработчики умеют пользоваться поисковыми системами и stackoverflow. Руководитель может консультировать вас по предметной области (видео/тв), но не по программной разработке.

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

Какие будут использоваться технологии?

  • Gstreamer и с ним Snowmix/Voctomix, возможно -- ffmpeg
  • Виртуальные машины linux, nginx и сопутствующие инструменты
  • Ruby on Rails (для унификации) и необходимые средства для UI (например, meteor, это ещё нужно обоснованно решить).
  • Опционально: ONVIF для управления камерами (переход по предустановленным позициям)

Темы вводных занятий

Не в порядке изложения:

1. Архитектура проекта. API, внешние связи и зависимости.

2. Специфические технологии и используемые инструменты.

3. Доступные ресурсы, организация доступа.

4. Разделение ролей

Направления развития

Редактор компоновок -- это компонент потокового видеомикшера, причём, этот проект актуален безотносительно того, в каком виде будет реализован видеомикшер -- в "скромном", для скрытого выполнения операций с видеопотоками (поставить логотип/титры, переключиться на заставку при пропадении входного потока, переключиться на другой источник), или в "полноценном", то есть, с пользовательским интерфейсом видеомикшера, со всеми подобающими кнопками, экранами и т.д. В любом случае, мультиэкранное изображение нужно,а для этого, помимо движка микшера, нужно иметь интерфейс для его создания: как с нуля, так и из готовых пресетов. В свою очередь, конструктор компоновок и титровальня -- это лишь с виду простые программы, на деле же там может быть заложено много интересных возможностей, вплоть до автоматического распознавания лиц на крупном плане, чтобы рекомендовать правильные титры.

Критерии оценки

Про работу и оценки почитайте здесь: https://d.pr/143bq

Постарайтесь отнестись к этому с пониманием. Очень часто бодрое начало длится 3-4 недели и потом наступает тишина. Очень хочется, чтобы проекты доводились до запуска, а вы получали опыт успешной разработки и, возможно, работу в этих проектах уже в другом статусе. Но пока это для вас учебная работа, поэтому будем придерживаться описанных по ссылке правил и критериев. Спасибо!

Ориентировочное расписание занятий

Более точное расписание будет ясно после утверждения графика факультативов, пока ориентируемся на вторник, среду или пятницу во второй половине дня (после 15-16 часов).

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

Денис Королев,

https://www.hse.ru/staff/dkorolev (там есть ссылки на соцсети)

+7 903 610 3290 (месенджеры по вкусу)

d.korolev@gmail.com