ПРОБЛЕМА:
WebRTC дает нам одноранговые видео / аудио соединения. Идеален для p2p звонков, тусовок. А как насчет широковещания («один ко многим», например, от 1 до 10000)?
Допустим, у нас есть вещатель «B» и двое посетителей «A1», «A2». Конечно, это кажется разрешимым: мы просто соединяем B с A1, а затем B с A2. Таким образом, B отправляет видео / аудиопоток напрямую в A1, а другой поток - в A2. B отправляет потоки дважды.
А теперь представьте, что вас 10000 человек: 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, но они должны ответить на эти возможные проблемы: задержка, общая стабильность сетевого соединения, формула масштабируемости (они, вероятно, не являются бесконечно масштабируемыми. ).
SUGGESTIONS
- Уменьшите ЦП / пропускную способность за счет настройки аудио и видео кодеков;
- Получите медиа-сервер.