Heim > Web-Frontend > js-Tutorial > WebRTC SFU: der vollständige Leitfaden.

WebRTC SFU: der vollständige Leitfaden.

PHPz
Freigeben: 2024-07-19 14:32:17
Original
1024 Leute haben es durchsucht

Was ist WebRTC SFU (Selective Forwarding Unit)?

Selective Forwarding Unit oder SFU

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.

Was ist WebRTC?

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

Image description

Wie funktioniert SFU oder Selective Forwarding Unit?

Hier finden Sie eine Schritt-für-Schritt-Anleitung zur Funktionsweise einer SFU

Schritt 1 Client-Verbindungen und Medienerfassung

  1. Teilnehmerverbindung

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

Schritt 2: Stream-Übertragung an SFU

  1. Kodieren und Senden des Streams:Das Clientgerät kodiert den Medienstream mithilfe von Codecs für Video und Audio und sendet ihn an die SFU

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.

Schritt 3 Stream-Verarbeitung an der SFU

  1. Kein Mischen

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

Schritt 4: Stream-Verteilung durch SFU

  1. Anpassen:

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

  1. RTP- oder SRTP-Pakete

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

Schritt 5 Kundenempfang und -präsentation

  1. Dekodierung: Jeder Client empfängt einen RTP-Stream von der SFU, der Client dekodiert dann den Stream und stellt ihn auf dem Bildschirm dar

  2. 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

SFU vs. p2p vs. MCU

In diesem Abschnitt betrachten wir die Unterschiede zwischen SFU, einer selektiven Weiterleitungseinheit, Peer-to-Peer oder P2p, und MCU, einer Multipoint-Steuereinheit

1.  Selektive Weiterleitungseinheit SFU

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

2. Peer-to-Peer P2P

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 ziehen

Metered 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 ziehen

Multipoint-Steuereinheit

Die 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.

Vorteile von SFU in WebRTC

Hier sind einige der Vorteile von SFU in WebRTC

1. Skalierbarkeit

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

  • Reduzierte Client-Bandbreite

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

2. Verbessertes Qualitätsmanagement

Die SFU kann intelligente Entscheidungen darüber treffen, welche Streams an welche Clients gesendet werden sollen, und so die Videoqualität verbessern

  • Stream-Anpassung

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

3. Reduzierte Verarbeitungslast für Clients

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

  • Weniger CPU-intensiv

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

  • Benutzererfahrung

Die Reduzierung der CPU-Verarbeitung führt zu einer flüssigeren Benutzeroberfläche, kühleren Geräten und einem insgesamt besseren Benutzererlebnis

4. Flexibilität im Medienhandling

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

  • Individuelle Stream-Steuerung

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

  • Unterstützung für erweiterte Funktionen

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  

5. Erhöhte Flexibilität und Sicherheit

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.

Image description

Gemessene TURN-Server

  1. 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.

  2. 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

  3. Server in allen Regionen der Welt: Toronto, Miami, San Francisco, Amsterdam, London, Frankfurt, Bangalore, Singapur, Sydney, Seoul, Dallas, New York

  4. Geringe Latenz:weniger als 50 ms Latenz, überall auf der Welt.

  5. Kostengünstig: Pay-as-you-go-Preisgestaltung mit verfügbaren Bandbreiten- und Mengenrabatten.

  6. Einfache Verwaltung: Erhalten Sie Nutzungsprotokolle, E-Mails, wenn Konten Schwellenwerte erreichen, Rechnungsaufzeichnungen sowie E-Mail- und Telefonsupport.

  7. Standardkonform: Entspricht RFCs 5389, 5769, 5780, 5766, 6062, 6156, 5245, 5768, 6336, 6544, 5928 über UDP, TCP, TLS und DTLS.

  8. Multi-Tenant-Funktion: Erstellen Sie mehrere Anmeldeinformationen und trennen Sie die Nutzung nach Kunden oder verschiedenen Apps. Erhalten Sie Nutzungsprotokolle, Abrechnungsaufzeichnungen und Schwellenwertwarnungen.

  9. Unternehmenszuverlässigkeit: 99,999 % Verfügbarkeit mit SLA.

  10. Enterprise Scale: Ohne Begrenzung des gleichzeitigen Datenverkehrs oder des Gesamtdatenverkehrs. Gemessene TURN-Server bieten Unternehmensskalierbarkeit

  11. 5 GB/Monat kostenlos: Erhalten Sie jeden Monat 5 GB kostenlose TURN-Servernutzung mit dem kostenlosen Plan

  12. Läuft auf Port 80 und 443

  13. Unterstützt TURNS + SSL, um Verbindungen durch Deep-Packet-Inspection-Firewalls zu ermöglichen.

  14. Unterstützt sowohl TCP als auch UDP

  15. 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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage