Техническое задание: Веб-приложение для видеотрансляции на WebRTC

Цель проекта

Разработать полнофункциональное веб-приложение для организации видеоконференций или трансляций в реальном времени. Приложение должно состоять из трех взаимосвязанных клиентских модулей.

Функциональные модули

1. Исходящий клиент (Источник сигнала)

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

2. Серверная часть (Сигнальный сервер)

  • Разработка или настройка сервера для обмена служебными сообщениями (сигналинг) между клиентами.
  • Обеспечение механизма обнаружения клиентов и установки P2P-соединений.
  • Возможность ретрансляции потока (при необходимости) через TURN/STUN серверы для обхода NAT.

3. Входящий клиент (Приемник сигнала)

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

Ключевые требования к технологии

  • Основная технология: WebRTC (Web Real-Time Communication).
  • Клиентская часть: современный JavaScript (ES6+), возможно с использованием фреймворков (React, Vue.js, Angular - на усмотрение исполнителя с обоснованием).
  • Серверная часть: Node.js, Python, Golang или другой подходящий стек для сигнального сервера.
  • Приложение должно корректно работать в последних версиях современных браузеров (Chrome, Firefox, Safari, Edge).
  • Код должен быть чистым, документированным и готовым к развертыванию.

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

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