Wie behandelt WebRTC viele-zu-viele-Verbindungen?

8

Wenn ich in einem Raum mit anderen 7 Benutzern bin, frage ich mich, ob WebRTC jeden Benutzer zwingt, eine Verbindung zu jedem der anderen Teilnehmer herzustellen.

Offensichtlich würde es so etwas wie 7kb / s * 7 herunterladen und sogar hochladen, und viele Verbindungen können das nicht verarbeiten, wenn ihre Verbindung bereits besetzt ist. Statt mit einer Art von Medien-Relay würde die Bandbreiten-Nutzung nur 7kb / s betragen, aber Sie würden die Bandbreite-Anpassung zwischen Peers verlieren.

Kennen Sie ein Medienrelay oder eine Möglichkeit, dieses Problem zu lösen? ist TURN Server (wie Ссылка ) für diese Art von Job geeignet (Multicast inklusive)?

>     
rodi 16.06.2013, 15:21
quelle

6 Antworten

5

Ein TURN-Server arbeitet als Fallback-Relay-Server, um Konnektivität zu ermöglichen, wenn eine direkte Peer-to-Peer-Konnektivität aufgrund von Firewalls oder anderen Netzwerkproblemen nicht möglich ist. (Weitere Informationen finden Sie hier : Drücken Sie P, um Notizen zu den Rednern zu erhalten.) TURN-Server sind nicht für die Medienverteilung konzipiert.

Eine Multipoint-Kontrolleinheit könnte das Problem lösen, auf das Sie sich beziehen: Es gibt eine Beispieltopologie für diese hier . Wie in den Hinweisen für diese Folie angegeben:

  

Dies ist ein Server, der speziell für die Verteilung von Medien entwickelt wurde.   und kann mit einer großen Anzahl von Teilnehmern umgehen; es kann auch schlau machen   Dinge wie selektive Stream-Weiterleitung, Mischen von Audio oder Video,   oder Aufnahme.

    
Sam Dutton 17.06.2013 08:43
quelle
2

Weitere Informationen zu WebRTC finden Sie Ссылка Anwendungsfälle. Die Autoren erwähnen eine Multi-User-Konferenzlösung, die einen zentralen Server verwendet. Die beste Lösung für die Einrichtung von Multi-User-A / V-Konferenzen mit WebRTC besteht also darin, einen solchen zentralen Server zu haben, der die Audiomischung und das A / V-Broadcasting für alle Peers übernimmt.

Dies umgeht die Bandbreite Probleme, die Sie in Ihrer Frage erwähnen. Derzeit arbeiten eine ganze Reihe von Start-ups und etablierten Service-Providern an WebRTC-basierten Konferenzlösungen. Lassen Sie Ihre Lieblings-Suchmaschine einige Beispiele auswählen.

Ein TURN-Server allein reicht nicht aus, da TURN nur dazu verwendet wird, Daten für Hosts weiterzuleiten, die nicht direkt erreichbar sind (möglicherweise aufgrund von Firewalls). TURN-Server beenden WebRTC-Verbindungen nicht.

    
Makkes 16.06.2013 18:36
quelle
2

Ein TURN-Server hilft nur beim Firewall-Traversal und beim Durchlaufen von NATs. Für echte Konferenzen benötigen Sie einen zentralen MCU-Servertyp in der Cloud. Andernfalls wird die Konferenz nicht skaliert, da Sie weiterhin Benutzer hinzufügen. Es gibt einige Konferenzserver für WebRTC, z. B. von Ссылка und Ссылка

    
Jay E 27.07.2013 12:29
quelle
2

Ja, Sie müssten separate Verbindungen zu jedem Ihrer Kollegen herstellen. Um dies zu lösen, könnten Sie einen Medienserver wie kurento verwenden.

Mit einem Medienserver würde sich jeder Peer mit dem Medienserver verbinden, der Server würde dann die Videostreams von Ihren Peers zu einem zusammenführen, indem er sie nebeneinander stellt und Ihnen dann den neuen Stream sendet. Dies erspart den Peers die Mühe, Streams von jedem anderen Partner herunterladen zu müssen.

    
Amir Vakili 06.06.2016 18:44
quelle
0

Sie haben Recht, dass die Bandbreitenanpassung zwischen Peers ein Problem ist.

Ein TURN-Server löst dieses Problem nicht, da er nur einen stabilen Endpunkt bereitstellt, typischerweise für Leute, die hinter sehr restriktiven NAT-Setups stehen.

Die Lösung für dieses Problem liegt in skalierbaren Video-Codecs. Diese Video-Codecs wurden speziell entwickelt, um das Problem der Mehrwege-Videokonferenz zu lösen. H.264 / SVC ist ein solcher skalierbarer Codec und wird derzeit von Google+ Hangouts verwendet. VP8 hat auch zeitliche und räumliche Skalierbarkeit und wird in WebRTC verwendet.

Die skalierbaren Video-Codecs sind so konzipiert, dass Teile des Streams, normalerweise einzelne UDP-Pakete, aus dem Stream entfernt werden können, während die Fähigkeit beibehalten wird, das Video mit einer niedrigeren Qualität zu dekodieren. Es werden mindestens drei Arten von Skalierbarkeit verwendet:

  • Temporal, in dem die Frames pro Sekunde reduziert werden.
  • Räumlich, wo die Anzahl der Pixel reduziert wird.
  • Qualität, bei der die Farbauflösung reduziert wird.

Wenn Sie einen Videokonferenzserver implementieren, können Sie den VP8-Stream auf einer niedrigeren Ebene als der WebRTC-Ebene verwenden, die erforderlichen Änderungen an jedem Videostream vornehmen und das Bandbreitenanpassungsproblem lösen.

    
user239558 16.06.2013 22:56
quelle
0

Wenn die Frage immer noch besteht, hier ist mein Vorschlag: Basierend auf Ihrem SIP-Server installieren Sie eine RTP-Proxy-Software, z. B. wenn Sie Kamailio verwenden, verbinden Sie es mit RTPengine.

    
Altanai 28.04.2014 08:52
quelle

Tags und Links