ПРОБЛЕМА:
WebRTC надає нам однорангові відео- / аудіозв’язки. Він ідеально підходить для дзвінків p2p, тусовок. А як щодо мовлення (один на багато, наприклад, 1 до 10000)?
Скажімо, у нас телекомпанія "В" та двоє відвідувачів "А1", "А2". Звичайно, це здається вирішуваним: ми просто з'єднуємо 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, але їм потрібно відповісти на такі можливі питання: затримка, загальна стабільність мережевого зв’язку, формула масштабованості (вони, можливо, нескінченно масштабовані ).
ПРОПОЗИЦІЇ
- Зменшити процесор / пропускну здатність, налаштовуючи як аудіо, так і відео кодеки;
- Отримайте медіа-сервер.