ПРОБЛЕМА:
WebRTC дает нам одноранговые видео / аудио соединения. Идеален для p2p звонков, тусовок. А как насчет широковещательной передачи («один ко многим», например, от 1 до 10000)?
Допустим, у нас есть вещатель «B» и два участника «A1», «A2». Конечно, это кажется разрешимым: мы просто соединяем B с A1, а затем B с A2. Таким образом, B отправляет видео / аудиопоток напрямую в A1, а другой поток - в A2. B отправляет потоки дважды.
А теперь представьте, что вас 10 000 посетителей: A1, A2, ..., A10000. Это означает, что B должен отправить 10000 потоков. Каждый поток составляет ~ 40 КБ / с, что означает, что B требуется исходящая скорость Интернета 400 МБ / с для поддержания этой трансляции. Неприемлемо.
ОРИГИНАЛЬНЫЙ ВОПРОС (УСТАРЕЛ)
Можно ли как-то решить эту проблему, чтобы B отправлял только один поток на какой-то сервер, а посетители просто извлекали этот поток с этого сервера? Да, это означает, что исходящая скорость на этом сервере должна быть высокой, но я могу ее поддерживать.
А может, это означает разрушение идеи WebRTC?
ПРИМЕЧАНИЯ
Flash не подходит для моих нужд из-за плохого UX для конечных клиентов.
РЕШЕНИЕ (НЕ ДЕЙСТВИТЕЛЬНО)
26.05.2015 - На данный момент нет такого решения для масштабируемого вещания для WebRTC, где бы вы вообще не использовали медиа-серверы. На рынке есть как серверные решения, так и гибридные (p2p + серверная часть в зависимости от различных условий).
Однако есть несколько многообещающих технологий, например https://github.com/muaz-khan/WebRTC-Scalable-Broadcast, но они должны решить эти возможные проблемы: задержка, общая стабильность сетевого соединения, формула масштабируемости (они, вероятно, не являются бесконечно масштабируемыми).
ПРЕДЛОЖЕНИЯ
- Уменьшение ЦП / пропускной способности за счет настройки аудио и видео кодеков;
- Получите медиа-сервер.