PROBLEM:
WebRTC zapewnia nam połączenia wideo / audio peer-to-peer. Jest idealny do połączeń p2p, hangoutów. Ale co z nadawaniem (jeden do wielu, na przykład od 1 do 10000)?
Powiedzmy, że mamy nadawcę „B” i dwóch uczestników „A1”, „A2”. Oczywiście wydaje się, że da się to rozwiązać: po prostu łączymy B z A1, a następnie B z A2. Zatem B wysyła strumień wideo / audio bezpośrednio do A1, a inny strumień do A2. B wysyła strumienie dwukrotnie.
Teraz wyobraźmy sobie 10000 uczestników: A1, A2, ..., A10000. Oznacza to, że B musi wysłać 10000 strumieni. Każdy strumień ma ~ 40 KB / s, co oznacza, że B potrzebuje wychodzącej prędkości Internetu 400 MB / s, aby utrzymać tę transmisję. Gorszący.
PYTANIE ORYGINALNE (NIEAKTUALNE)
Czy można to jakoś rozwiązać, więc B wysyła tylko jeden strumień na jakiś serwer, a uczestnicy po prostu pobierają ten strumień z tego serwera? Tak, to znaczy, że prędkość wychodząca na tym serwerze musi być wysoka, ale mogę ją utrzymać.
A może oznacza to zrujnowanie pomysłu WebRTC?
UWAGI
Flash nie działa na moje potrzeby, jak na słaby UX dla klientów końcowych.
ROZWIĄZANIE (NAPRAWDĘ)
26.05.2015 - W tej chwili nie ma takiego rozwiązania do skalowalnego nadawania dla WebRTC, w którym w ogóle nie używasz serwerów multimedialnych. Na rynku dostępne są rozwiązania serwerowe oraz hybrydowe (p2p + serwer w zależności od różnych warunków).
Jest jednak kilka obiecujących technologii, takich jak https://github.com/muaz-khan/WebRTC-Scalable-Broadcast, ale muszą oni odpowiedzieć na te możliwe problemy: opóźnienie, ogólną stabilność połączenia sieciowego, formułę skalowalności (prawdopodobnie nie są one nieskończenie skalowalne ).
PROPOZYCJE
- Zmniejsz procesor / przepustowość, dostosowując kodeki audio i wideo;
- Zdobądź serwer multimediów.