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)?
>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.
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.
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 Ссылка
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.
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:
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.
Tags und Links javascript voip webrtc stun