Техническое задание: Веб-приложение для видеотрансляции на 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).
- Код должен быть чистым, документированным и готовым к развертыванию.
Ожидаемый результат
Готовое к использованию веб-приложение, позволяющее организовать сеанс видеосвязи между двумя и более участниками через браузер без установки дополнительного ПО. Все исходные коды и инструкция по развертыванию передаются заказчику.