Перейти к основному содержимому

Аннотация

Для полноценных съемок требуется запись всех видеопотоков с сведением их по таймкоду начала и по звуку. В серьезных продакшенах для этого применяются отдельные физические сервера записи несжатых видеосигналов. В сетевой потоковой передачи для записи видео используются различные физические или программные сетевые видеорекордеры (NVR). Большинство таких рекордеров предназначены для записи с перекодированием набора видеопотоков без сведения по времени и звуку - как камера отдает поток, так и пишем. Требуется создать сетевой видеорекордер предназначенный для студийной записи сетевых видеопотоков без перекодирования. Важнейшим требованием является сведение по единому таймкоду, а также возможность выбора из какого медиапотока, среди записываемых забирается аудиодорожка.

Роли

  1. DevOps
  2. Веб-разработчик

Имеющийся задел

Имеется полноценный записывающий агент с фейловером и созданием файла разрывов для склейки. Реализована запись множества потоков за раз без перекодирования, для управления записью написан сетевой API, отдельно сделана веб-страница для управления, а также реализован экспортер для Prometheus/Victoria Metrics, с возможностью реализовать алертинг через Alert Manager или Grafana.

Ожидаемый результат

Мастер-сервис для управления экземплярами записывающего агента. Мастер-сервис должен оркестирировать запись по заранее созданной конфигурации. Интерфейс редактирования конфигурации. Синхронизация по произвольному таймкоду или по NTP. Мультиплексирование аудиодорожек между записями.

Доступные ресурсы

Виртуальные машины кластера МИЭМ

Видеооборудование УЛ Сетевых Видеотехнологий

🎯 Общая характеристика проекта

АтрибутЗначение
ТипПрограммно-сетевой проект (рабочий)
Максимальная оценка10 баллов (рабочий проект)
ОписаниеИсследование: отсутствие синхронизированной многоканальной записи сетевых видеопотоков без перекодирования. Продукт: сетевой видеорекордер (NVR) для студийной съёмки, обеспечивающий одновременную запись нескольких RTSP-потоков с точной синхронизацией по таймкоду и гибким выбором аудиодорожки из одного из потоков.
Цель продуктаСоздание решения для профессиональной многокамерной съёмки, позволяющего записывать все потоки без перекодирования, с точным сведением по времени и звуку — как в полноценных студийных условиях, но на базе IP-камер и сетевой инфраструктуры.
Целевая аудиторияОператоры студийных съёмок, организаторы трансляций, AV-инженеры, преподаватели, интеграторы СКУД/AV, службы трансляций, умный класс, корпоративные продакшены, студии стриминга.
Технологии (рекомендуемые)Go, Docker, Kubernetes (опционально), GStreamer, RTSP, NTP, Prometheus/Grafana/VictoriaMetrics, Alertmanager, WebSocket, REST API, PostgreSQL/SQLite, веб-интерфейс (React/Vue), systemd, Bash/Ansible (управление ВМ), JSON-конфигурации.

📅 Поэтапные требования к проекту


📌 Этап 1: Выбор темы

Дата: 19.01.2026
Формат: Онлайн-форма
Документы: Форма

🔹 Требования к защите

  • Подтверждён выбор темы 5-3.
  • Сформирована команда (до 2 человек).
  • Определены роли: DevOps (развёртывание, масштабирование, мониторинг), Веб-разработчик (интерфейс, API, логика).
  • Подтверждено понимание задачи: синхронная многоканальная запись без перекодирования с выбором аудио.
  • Наличие доступа к ВМ кластера МИЭМ и IP-камерам (или симуляторам потоков).
КритерийВесОписание
Выбор темы1%Формальное подтверждение выбора темы, формирования команды, распределения ролей и технической готовности. Оценка выставляется при условии своевременной подачи формы.

📌 Этап 2: Представление проекта

Дата: 31.01.2026
Формат: Презентация
Документы: Слайды, ТЗ

🔹 Требования к защите

  • Чётко сформулированы:
    • Проблема: отсутствие синхронизации при записи нескольких потоков → сложности при монтаже, рассогласование видео и звука.
    • Решение: мастер-сервис, управляющий записью нескольких экземпляров записывающего агента с синхронизацией по NTP/таймкоду и мультиплексированием аудио.
    • Целевая аудитория.
  • Описаны технологии и архитектура системы.
  • Представлен план реализации.
  • Подтверждено согласование подхода с заказчиком.
КритерийВесОписание
Продукт25%Постановка цели, видение законченного продукта: как работает система, где применяется (студии, лекции, конференции)
Польза25%Обоснование необходимости: точное сведение, сохранение качества, упрощение постпродакшена, отказ от дорогостоящих физических рекордеров
Пользователь20%Описание целевой аудитории внутри и вне МИЭМ, количественная оценка, рынки применения (медиа, образование, ИТ)
Технологии20%Обоснованный выбор стека: Go, Docker, GStreamer, NTP, Prometheus, веб-интерфейс, архитектура "мастер-воркер"
Развитие10%Перспективы развития: интеграция с OBS, поддержка SRT, WebRTC, коммерциализация, ВКР, интеграция с системами монтажа (DaVinci Resolve)

📌 Этап 3: PoC (Proof of Concept)

Дата: 21.02.2026
Формат: Демонстрация + видео + репозиторий
Документы: Git, видео

🔹 Требования к защите

  • Экспериментально подтверждена техническая реализуемость:
    • Запуск двух экземпляров записывающих агентов на разных машинах.
    • Синхронизация времени между записывающими агентами по NTP.
    • Запуск записи синхронно с точностью до 100 мс.
    • Извлечение аудио из одного из потоков.
    • Простейшее мультиплексирование: объединение видео и аудио в один файл.
    • Демонстрация: запуск → запись → проверка синхронности.
    • Базовая склейка видеопотоков при разрыве соединения в процессе записи.
  • Видео (до 3 минут) с демонстрацией: запуск записи, проверка таймкода, извлечение аудио.
  • Код выложен в репозиторий с README.
КритерийВесОписание
Техническая реализуемость60%Подтверждение, что возможно синхронно управлять записью и мультиплексировать аудио
Демонстрация20%Наличие видео, показывающего: запуск записи на нескольких ВМ, синхронность, извлечение аудио, результат
Код и документация20%Наличие репозитория с рабочим кодом, README, инструкцией по запуску и описанием архитектуры PoC

📌 Этап 4: Прототип

Дата: 16.03.2026
Формат: Демонстрация + отчет + репозиторий
Документы: Демо, отчет, git

🔹 Требования к защите

  • Реализован прототип:
    • Мастер-сервис с REST API.
    • Интерфейс редактирования конфигурации: список камер (RTSP-URL), выбор аудиоисточника, длительность записи, синхронизация (NTP/ручной таймкод).
    • Запуск и остановка записи на нескольких записывающих агентах.
    • Синхронизация запуска с точностью до 50 мс.
    • Автоматическое извлечение аудио из выбранного потока.
    • Простейшее мультиплексирование: объединение каждого видео + выбранное аудио в один файл.
    • Логирование состояний.
    • Оптимизированная склейка видео без перекодирования.
  • Демонстрация работы в реальном времени.
  • Отчёт с описанием архитектуры, API, схемы взаимодействия.
КритерийВесОписание
Реализация функционала40%Поддержка конфигурации, синхронного запуска, аудиовыбора, мультиплексирования
Интеграция25%Успешная интеграция мастер-сервиса, воркеров, FFmpeg, NTP, API управления
Демонстрация20%Работающий демо-стенд, показ синхронной записи и мультиплексирования
Документация15%Наличие отчёта с описанием архитектуры, API, алгоритмов синхронизации, инструкций по запуску

📌 Этап 5: MVP (Minimal Viable Product)

Дата: 11.04.2026
Формат: Работающий продукт + отзыв + отчет + git
Документы: Отзыв, отчет, git

🔹 Требования к защите

  • Продукт может быть запущен и использован без участия разработчика.
  • Поддержка всех базовых функций:
    • Веб-интерфейс для создания и редактирования конфигураций.
    • Выбор аудиоисточника из списка записываемых камер.
    • Синхронизация по NTP (или ручной таймкод).
    • Запуск/остановка записи по расписанию или вручную.
    • Автоматическое мультиплексирование: видео (все) + аудио (один) → единый файл.
    • Мониторинг через Prometheus (статус записи, ошибки, нагрузка).
    • Алертинг при сбоях (через Alertmanager/Grafana).
    • Автозапуск сервисов (Docker Compose/systemd).
    • Автозапуск склейки после окончания записи.
  • Наличие документации пользователя и разработчика.
  • Получен отзыв пользователя.
КритерийВесОписание
Продукт30%Готовность продукта: отчуждаемость, выполнение базовых функций, стабильность
Документация разработчика20%Наличие спецификации MVP/MUP, описание архитектуры, API, алгоритмов, текущего результата
Запуск и работа30%Продукт запускается без разработчика, не требует несвойственных действий от пользователя
Документация пользователя20%Полная инструкция по установке, настройке, созданию конфигураций, запуску записи, устранению неисправностей

📌 Этап 6: MUP (Minimal Usable Product)

Дата: 16.05.2026
Формат: Асинхронная защита + консультация
Документы: Отзыв, отчет, git

🔹 Требования к защите

  • Продукт внедрён в тестовую среду (например, в лаборатории сетевых видеотехнологий).
  • Пользователь самостоятельно использует весь функционал.
  • Получен отзыв о реальном использовании.
  • Документация дополнена на основе фидбэка.
  • Созданы маркетинговые материалы.
КритерийВесОписание
Отзыв пользователя30%Удобство интерфейса, точность синхронизации, стабильность, простота настройки, качество мультиплексирования
Функциональность30%Полная реализация всех функций: конфигурация, синхронизация, аудиовыбор, запись, мультиплексирование, мониторинг
Документация пользователя20%Наличие полной, понятной документации с установкой, навигацией, сценариями использования и устранением неисправностей
Маркетинг20%Наличие лендинга, продуктового ролика, раздатки или презентации, адаптированных под целевую аудиторию

📌 Этап 7: Защита проекта

Дата: 06.06.2026 или 13.06.2026
Формат: Презентация + демо + отзывы
Документы: Слайды, демо, отзывы

🔹 Требования к защите

  • Презентация пользовательского опыта.
  • Демонстрация работы продукта (включая сценарии: создание конфигурации, синхронная запись, сбой одной камеры, мультиплексирование).
  • Представление отзывов пользователей.
  • Подача заявки на РИД.
  • Ответы на вопросы.
КритерийВесОписание
Представление20%Маркетинговый стиль, ясность, логичность, отсутствие научного стиля, фокус на пользе и кейсах
Маркетинг20%Качество лендинга, ролика, раздатки — соответствие продуктовому жанру, наличие кейсов применения
Впечатления пользователей30%Удобство, точность, стабильность, простота установки и использования
Завершённость30%Полная документация, функциональность, наличие дистрибутива (Docker-образы, скрипты развёртывания), ссылки на код, расширенный функционал (например, поддержка SRT, резервное копирование, интеграция с OBS, визуализация таймкода)

Вложения