SFU ist eine serverbasierte Architektur, die in webrtc zur Durchführung von Videoanrufen, Audioanrufen und Datenübertragungen mit mehreren Teilnehmern verwendet wird.
Die SFU fungiert als Vermittler zwischen Geräten, die Medienströme von mehreren Geräten empfängt und dann entscheidet, welche Streams an welche Geräte gesendet werden müssen.
WebRTC ist ein Open-Source-Projekt, mit dem Sie Audio-, Video- und Datenübertragung in Echtzeit zwischen Geräten ermöglichen können
WebRTC läuft sowohl in Webbrowsern als auch in Apps, WebRTC wird von fast allen modernen Browsern unterstützt und ist ein Standard für Video- und Audiokommunikation
Hier finden Sie eine Schritt-für-Schritt-Anleitung zur Funktionsweise einer SFU
Jeder Teilnehmer stellt zunächst eine Verbindung zur SFU her. Dieser Prozess beinhaltet einen Signalisierungsserver, auf dem Sitzungsbeschreibungen ausgetauscht werden.
Die Sitzungsbeschreibung enthält wichtige Informationen, die zum Einrichten einer Sitzung verwendet werden.
2. Medienstream-Erfassung
Auf der Clientseite werden die Medienströme von den Teilnehmergeräten erfasst, wie Audio vom Mikrofon, Video von der Kamera usw. Im nächsten Schritt werden diese Streams an die SFU gesendet
Dies erfolgt über das RTP-Protokoll oder das SRTP-Protokoll, wenn Sie eine Verschlüsselung benötigen
2. Empfang durch SFU
Die SFU oder die selektive Weiterleitungseinheit empfängt die einzelnen Streams von jedem angeschlossenen Gerät und verwaltet einen separaten eingehenden Stream für jedes Gerät.
In SFU sind im Vergleich zu MCU alle Streams voneinander getrennt und es gibt keine Vermischung
2. Selektive Weiterleitung
Die SFU empfängt einen separaten Stream von jedem Gerät, das mit der SFU verbunden ist, und dann unterhält die SFU einen separaten Stream für jeden Teilnehmer
Bevor die SFU den Stream an Benutzer weiterleitet, führt sie bestimmte Anpassungen am Stream durch, z. B. die Auswahl unterschiedlicher Videocodecs und die Auswahl zwischen verschiedenen Simulcast-Streams.
Diese basieren auf der CPU- und Bandbreitenkapazität des empfangenden Clients
2*. Streams weiterleiten*
Die SFU leitet den Stream weiter, den jeder Kunde anfordert.
Die Client-Geräte könnten mehrere Streams von der SFU oder sogar einen einzelnen Stream von Video- und Audiodaten empfangen
Die Medien werden in RTP- oder SRTP-Paketen gesendet und da verschiedene Client-Geräte möglicherweise unterschiedliche CPU- und Bandbreitenbeschränkungen haben.
Die SFU optimiert den Stream-Paketfluss so, dass der Stream reibungslos fließt und die Videoqualität auf den Geräten reibungslos ist
Dekodierung: Jeder Client empfängt einen RTP-Stream von der SFU, der Client dekodiert dann den Stream und stellt ihn auf dem Bildschirm dar
Synchronisierung: Die Audio- und Videosynchronisierung ist wichtig und wird auf Clientebene gehandhabt. Der Client verwendet die Zeitstempel und die Sequenznummern aus dem RTP-Stream, um die Video- und Audiowiedergabe reibungslos zu synchronisieren
In diesem Abschnitt betrachten wir die Unterschiede zwischen SFU, einer selektiven Weiterleitungseinheit, Peer-to-Peer oder P2p, und MCU, einer Multipoint-Steuereinheit
Selektive Weiterleitung: Die SFU empfängt mehrere Streams und leitet den Stream selektiv an Geräte weiter, ohne den Stream-Inhalt zu ändern
Serverbasiert: Die SFU ist auf einen Server angewiesen, aber der Server wird zum Weiterleiten der Steams und für nichts anderes verwendet.
Vorteile:
Skalierbarkeit: Die SFU ist hoch skalierbar und reduziert die Belastung einzelner Client-Geräte, indem sie verwaltet, welcher Stream an jedes Client-Gerät gesendet wird
Geringer Verarbeitungsbedarf: Da die SFU den Stream nur weiterleitet und keine Verarbeitung am Stream vornimmt, wodurch die Latenz und der CPU-Verarbeitungsbedarf reduziert werden
Stream-Flexibilität:
Die Client-Geräte können mehrere Streams oder nur einen Stream oder gar keinen Stream empfangen. Es hängt alles davon ab, welchen Stream das Client-Gerät anfordert und auf dem Bildschirm anzeigen muss
Nachteile:
Bandbreitenintensiv: Die SFU sind auf der Serverseite bandbreitenintensiv, da jeder Stream vom Server empfangen wird und die SFU über die CPU und die Bandbreite verfügen sollte, um alle Streams zu verarbeiten
In der P2p-Architektur verbindet sich jeder Teilnehmer direkt mit einem anderen Teilnehmer, ohne dass ein Zwischenserver erforderlich ist
aber oft ist ein STUN-Server oder ein TURN-Server für die NAT-Durchquerung und die Weiterleitung der Streams um NAT herum erforderlich
Wenn Sie auf der Suche nach einem Turn-Server sind, können Sie den Metered TURN-Server-Dienstleister
in Betracht ziehenMetered ist ein globaler TURN-Serveranbieter mit TURN-Servern auf der ganzen Welt, der sich für minimale Latenz und beste Leistung mit dem Benutzer verbindet, der dem TURN-Server am nächsten ist
Nachteile:
Jedes Teilnehmergerät muss mehrere Streams verarbeiten, wenn in einem Meeting mehrere Geräte vorhanden sind.
Das ist auf allen Client-Geräten CPU- und bandbreitenintensiv. Hierfür können Sie die Metered SFU
in Betracht ziehenDie MCU mischt alle eingehenden Streams und erstellt aus vielen Streams einen einzelnen Stream oder mehrere Streams und sendet ihn dann an alle Clients
Die MCU benötigt eine Menge CPU-Rechenleistung und Ressourcen auf dem Server, sie erzeugt auch Latenz bei der Übertragung von Streams, hat aber einen Vorteil: Sie kann den Rechen- und Bandbreitenbedarf auf Client-Geräten erheblich reduzieren
Als in der Vergangenheit die mobilen Geräte ziemlich langsam waren und die Netzwerkinfrastruktur auch schlecht war, machte MCU damals viel Sinn
Aber heutzutage sorgt der technologische Fortschritt möglicherweise für ein schlechtes Erlebnis mit erhöhter Latenz und langsamer Videobereitstellung.
Hier sind einige der Vorteile von SFU in WebRTC
Der wichtigste Vorteil von SFU in WebRTC ist die Skalierbarkeit. Sie können auch P2P-Videoanrufe skalieren, aber es ist schwierig, ein Netz zu erstellen und es zu skalieren
Wenn Sie Videoanrufe mit mehreren Client-Geräten im Peer-2-Peer-Format durchführen, muss jeder Client seinen Stream an alle anderen Clients senden und umgekehrt.
Aus diesem Grund besteht für jeden Client ein exponentiell höherer Bedarf an Bandbreite und CPU
Einige Clients, die nicht über die Kapazität für eine sehr hohe Bandbreite und CPU-Rechenleistung verfügen, haben Probleme mit Videoanrufen
Die SFU kann intelligente Entscheidungen darüber treffen, welche Streams an welche Clients gesendet werden sollen, und so die Videoqualität verbessern
Die SFU kann den Stream entsprechend der Bandbreite und CPU-Kapazität der empfangenden Geräte anpassen.
Wenn das Client-Gerät über eine geringere Bandbreite verfügt, kann die SFU Streams mit geringer Qualität an dieses bestimmte Gerät senden, sodass das Video ohne Pufferung reibungslos läuft
Die SFU übernimmt den Großteil der Datenverarbeitung, die für die Stream-Verwaltung erforderlich ist, die Client-Geräte selbst werden von der ganzen schweren Arbeit befreit
Dies ist hilfreich für mobile Geräte und Geräte mit geringer Rechenleistung, also CPU-Leistung
Client-Geräte müssen die Multiple-Streams, die zur Verarbeitung an die SFU kommen, nicht kodieren und dekodieren, sondern die SFU erledigt dies für sie
Dadurch verbrauchen diese Geräte weniger Batteriebetrieb und benötigen weniger CPU-Zeit
Die Reduzierung der CPU-Verarbeitung führt zu einer flüssigeren Benutzeroberfläche, kühleren Geräten und einem insgesamt besseren Benutzererlebnis
SFU bietet mehr Flexibilität bei der Art und Weise, wie Sie mit den Medienströmen umgehen und wie das Video auf den Client-Geräten der Teilnehmer angezeigt werden soll
Die Client-Deives oder die Meeting-Teilnehmer können wählen, welche Streams sie herunterladen möchten und auch, wie sie den Stream auf ihren Bildschirmen anzeigen möchten
Sie haben auch die Möglichkeit, Streams unterschiedlicher Qualität herunterzuladen oder dies automatisch zu machen, sodass die SFU den besten Stream basierend auf der Bandbreitenkapazität und CPU-Kapazität des Clientgeräts auswählt
SFU oder die Selective Forwarding Unit unterstützt eine Vielzahl erweiterter Funktionen wie
Simulcasting (Möglichkeit, mehrere Qualitäten eines einzelnen Videostreams zu senden), skalierbarer Video-Codec und vieles mehr
Alle Streams, die durch die SFU laufen, sind Ende-zu-Ende-verschlüsselt, was bedeutet, dass niemand, nicht einmal die SFU, weiß, welche Streams durch die SFU laufen
Die Verschlüsselungsprotokolle wie DTLS und SRTP werden für die Ende-zu-Ende-Verschlüsselung verwendet
Die SFU kann die Interaktionen protokollieren, die Streams jedoch auch nicht aus Compliance-Gründen abfangen.
API: TURN-Serververwaltung mit leistungsstarker API. Sie können beispielsweise Anmeldeinformationen über die API hinzufügen/entfernen, Pro Benutzer/Anmeldeinformationen und Benutzermetriken über die API abrufen, Anmeldeinformationen über die API aktivieren/deaktivieren und Nutzungsdaten nach Datum über die API abrufen.
Globales Geo-Location-Targeting: Leitet den Datenverkehr automatisch an die nächstgelegenen Server weiter, für geringstmögliche Latenz und höchste Leistungsqualität. Weniger als 50 ms Latenz überall auf der Welt
Server in allen Regionen der Welt: Toronto, Miami, San Francisco, Amsterdam, London, Frankfurt, Bangalore, Singapur, Sydney, Seoul, Dallas, New York
Geringe Latenz:weniger als 50 ms Latenz, überall auf der Welt.
Kostengünstig: Pay-as-you-go-Preisgestaltung mit verfügbaren Bandbreiten- und Mengenrabatten.
Einfache Verwaltung: Erhalten Sie Nutzungsprotokolle, E-Mails, wenn Konten Schwellenwerte erreichen, Rechnungsaufzeichnungen sowie E-Mail- und Telefonsupport.
Standardkonform: Entspricht RFCs 5389, 5769, 5780, 5766, 6062, 6156, 5245, 5768, 6336, 6544, 5928 über UDP, TCP, TLS und DTLS.
Multi-Tenant-Funktion: Erstellen Sie mehrere Anmeldeinformationen und trennen Sie die Nutzung nach Kunden oder verschiedenen Apps. Erhalten Sie Nutzungsprotokolle, Abrechnungsaufzeichnungen und Schwellenwertwarnungen.
Unternehmenszuverlässigkeit: 99,999 % Verfügbarkeit mit SLA.
Enterprise Scale: Ohne Begrenzung des gleichzeitigen Datenverkehrs oder des Gesamtdatenverkehrs. Gemessene TURN-Server bieten Unternehmensskalierbarkeit
5 GB/Monat kostenlos: Erhalten Sie jeden Monat 5 GB kostenlose TURN-Servernutzung mit dem kostenlosen Plan
Läuft auf Port 80 und 443
Unterstützt TURNS + SSL, um Verbindungen durch Deep-Packet-Inspection-Firewalls zu ermöglichen.
Unterstützt sowohl TCP als auch UDP
Kostenloser unbegrenzter STUN
Das obige ist der detaillierte Inhalt vonWebRTC SFU: der vollständige Leitfaden.. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!