Maison >interface Web >js tutoriel >WebRTC SFU : le guide complet.

WebRTC SFU : le guide complet.

PHPz
PHPzoriginal
2024-07-19 14:32:17984parcourir

Qu'est-ce que WebRTC SFU (Selective Forwarding Unit) ?

Unité de renvoi sélectif ou SFU

SFU est une architecture basée sur un serveur qui est utilisée dans Webrtc pour effectuer des appels vidéo multipartites, des appels audio et des transferts de données.

La SFU agit comme intermédiaire entre les appareils qui reçoit les flux multimédias de plusieurs appareils, puis décide quels flux doivent être envoyés à quels appareils.

Qu'est-ce que WebRTC ?

WebRTC est un projet open source, grâce auquel vous pouvez activer le transfert audio, vidéo et de données en temps réel entre appareils

WebRTC fonctionne dans les navigateurs Web ainsi que dans les applications, WebRTC est pris en charge par presque tous les navigateurs modernes et est une norme pour la communication vidéo et audio

Image description

Comment fonctionne la SFU ou Unité d'Acheminement Sélectif

voici un guide étape par étape sur le fonctionnement d'un SFU

Étape 1 Connexions client et capture multimédia

  1. Connexion des participants

Chaque participant établit d'abord une connexion avec la SFU. Ce processus implique un serveur de signalisation où les descriptions de session sont échangées.

la description de la session contient des informations importantes, qui sont utilisées pour établir une session.

2. Capture de flux multimédia

Côté client, les flux multimédias sont capturés à partir des appareils des participants, comme l'audio du microphone, la vidéo de la caméra, etc. À l'étape suivante, ces flux sont envoyés au SFU

Étape 2 : Transmission du flux vers SFU

  1. Encodage et envoi du flux : L'appareil client encode le flux multimédia à l'aide de codecs pour la vidéo et l'audio et l'envoie au SFU

Cela se fait en utilisant le protocole RTP ou le protocole SRTP si vous avez besoin d'un cryptage

2. Réception par SFU

Le SFU ou l'unité de transfert sélectif reçoit les flux individuels de chaque appareil connecté et maintient un flux entrant séparé pour chaque appareil.

Étape 3 du traitement des flux à SFU

  1. Pas de mixage

Dans SFU, par rapport au MCU, tous les flux sont séparés les uns des autres et il n'y a pas de mixage

2. Renvoi sélectif

La SFU reçoit un flux séparé de chaque appareil connecté à la SFU, puis la SFU maintient un flux séparé pour chaque participant

Étape 4 : Distribution du flux par SFU

  1. Adaptation :

Avant de transmettre le flux aux utilisateurs, la SFU effectue certaines adaptations du flux, telles que le choix de différents codecs vidéo de qualité et la sélection entre différents flux de diffusion simultanée.

Ceux-ci sont basés sur les capacités du processeur et de la bande passante du client de réception

2*. Transfert de flux*

La SFU transmet le flux demandé par chaque client.

Les appareils clients peuvent recevoir plusieurs flux de la SFU ou même un seul flux de données vidéo et audio

  1. Paquets RTP ou SRTP

Le média est envoyé dans des paquets RTP ou SRTP, et parce que différents appareils clients peuvent avoir des limitations de processeur et de bande passante différentes.

Le SFU optimise le flux des paquets de flux de telle sorte que le flux circule de manière fluide et que la qualité vidéo soit fluide sur les appareils

Étape 5 Réception et présentation du client

  1. Décodage : chaque client reçoit un flux RTP du SFU, le client décode ensuite le flux et le restitue à l'écran

  2. Synchronisation : la synchronisation audio et vidéo est importante et elle est gérée au niveau du client. Le client utilise les horodatages et les numéros de séquence du flux RTP pour synchroniser la lecture vidéo et audio en douceur

SFU contre p2p contre MCU

Dans cette section, examinons les distinctions entre SFU qui est une unité de transfert sélectif, Peer to Peer ou P2p et MCU qui est une unité de contrôle multipoint

1.  Unité de renvoi sélectif SFU

transfert sélectif : le SFU reçoit plusieurs flux et transfère sélectivement le flux vers les appareils sans modifier le contenu du flux

Basé sur serveur : Le SFU s'appuie sur un serveur mais le serveur est utilisé pour le routage des flux et rien d'autre.

Avantages :

Évolutivité : le SFU est hautement évolutif et réduit la charge sur les appareils clients uniques en gérant le flux envoyé à n'importe quel appareil client

Faible besoin de traitement : parce que le SFU transmet simplement le flux et n'effectue aucun traitement sur le flux, réduisant ainsi la latence et les besoins en traitement du processeur

Flexibilité du flux :

Les appareils clients peuvent recevoir plusieurs flux ou un seul flux ou aucun flux du tout, tout dépend du flux que l'appareil client demande et doit l'afficher à l'écran

Inconvénients :

Bande passante intensive : les SFU sont gourmandes en bande passante côté serveur car chaque flux est reçu par le serveur et la SFU doit disposer du processeur et de la bande passante nécessaires pour gérer tous les flux

2. P2P peer-to-peer

Dans l'architecture P2p chaque participant se connecte directement à un autre participant sans avoir besoin d'un serveur intermédiaire

mais souvent un serveur STUN ou un serveur TURN est requis pour la traversée NAT et pour relayer les flux autour de NAT

Si vous recherchez un serveur Turn, vous pouvez envisager le Fournisseur de services de serveur TURN mesuré

Metered est un fournisseur de serveur TURN mondial avec un serveur TURN partout dans le monde, qui se connecte à l'utilisateur le plus proche du serveur TURN pour une latence minimale et de meilleures performances

Inconvénients :

Chaque appareil de participant doit gérer plusieurs flux s'il y a plusieurs appareils dans une réunion.

Ce qui consomme beaucoup de CPU et de bande passante sur tous les appareils clients. Pour cela vous pouvez envisager le Metered SFU

Unité de contrôle multipoint

Le MCU mélange tous les flux entrants et crée un seul flux ou quelques flux parmi plusieurs flux, puis l'envoie à tous les clients

Le MCU nécessite beaucoup de calculs et de ressources CPU sur le serveur, il crée également de la latence lors de la transmission des flux mais il a un avantage, il peut réduire considérablement les besoins en calcul et en bande passante sur les appareils clients

Alors que dans le passé, les appareils mobiles étaient assez lents et que l'infrastructure réseau était également mauvaise, à cette époque, le MCU avait beaucoup de sens

Mais de nos jours, avec les progrès technologiques, cela offre peut-être une mauvaise expérience avec une latence accrue et une diffusion vidéo lente.

Avantages de SFU dans WebRTC

Voici quelques-uns des avantages de SFU dans WebRTC

1. Évolutivité

L'avantage le plus important de SFU dans WebRTC est l'évolutivité. Vous pouvez également mettre à l'échelle les appels vidéo P2P, mais il est difficile de créer un maillage et de le mettre à l'échelle

  • Bande passante client réduite

Lorsque vous effectuez un appel vidéo avec plusieurs appareils clients au format peer 2 peer, chaque client doit envoyer son flux à tous les autres clients et vice versa.

En raison de cela, les besoins en bande passante et en CPU sont exponentiellement plus grands pour chaque client

Certains clients qui n'ont pas de capacité de bande passante très élevée et de calcul CPU ont du mal avec les appels vidéo

2. Gestion de la qualité améliorée

La SFU peut prendre des décisions intelligentes concernant les flux à envoyer à quels clients, économisant ainsi la qualité de la vidéo

  • Adaptation du flux

Le SFU peut adapter le flux en fonction de la bande passante et de la capacité CPU des appareils récepteurs.

Si l'appareil client a une bande passante inférieure, le SFU peut envoyer des flux de faible qualité à cet appareil particulier afin que la vidéo se déroule correctement sans mise en mémoire tampon

3. Charge de traitement réduite sur les clients

La SFU gère la majorité des traitements de données nécessaires à la gestion des flux, les appareils clients eux-mêmes sont libérés de tout le gros du travail

Ceci est utile pour les appareils mobiles et les appareils dotés d'une faible puissance de traitement, c'est-à-dire la puissance du processeur

  • Moins gourmand en CPU

Les appareils clients n'ont pas besoin d'encoder et de décoder les multiples flux qui arrivent au SFU pour traitement, mais le SFU le fait pour eux

Ainsi, ces appareils consomment moins de batterie et nécessitent moins de temps CPU

  • Expérience utilisateur

La réduction du traitement du processeur conduit à une interface plus fluide, des appareils plus froids et une meilleure expérience utilisateur globale

4. Flexibilité dans la gestion des médias

SFU offre une plus grande flexibilité dans la façon dont vous souhaitez gérer les flux multimédias et comment vous souhaitez que la vidéo soit affichée sur les appareils clients des participants

  • Contrôle du flux individuel

Le client ou les participants à la réunion peuvent choisir les flux qu'ils souhaitent télécharger et également comment ils souhaitent afficher le flux sur leurs écrans

Ils ont également la possibilité de télécharger différentes qualités de flux ou de le rendre automatique de sorte que le SFU choisisse le meilleur flux en fonction de la capacité de bande passante de l'appareil client et de la capacité du processeur

  • Prise en charge des fonctionnalités avancées

SFU ou Selective Forwarding Unit prend en charge une variété de fonctionnalités avancées telles que

diffusion simultanée (possibilité d'envoyer plusieurs qualités d'un seul flux vidéo), codec vidéo évolutif et bien d'autres 

5. Flexibilité et sécurité améliorées

Tous les flux passant par la SFU sont cryptés de bout en bout, ce qui signifie que personne, pas même la SFU, ne sait quels flux y transitent

Les protocoles de cryptage tels que DTLS et SRTP sont utilisés pour le cryptage de bout en bout

La SFU peut enregistrer les interactions mais ne peut pas non plus intercepter les flux à des fins de conformité.

Image description

Serveurs TURN mesurés

  1. API : Gestion du serveur TURN avec une API puissante. Vous pouvez faire des choses comme ajouter/supprimer des informations d'identification via l'API, récupérer par utilisateur/informations d'identification et métriques utilisateur via l'API, activer/désactiver les informations d'identification via l'API, récupérer les données d'utilisation par date via l'API.

  2. Ciblage de géolocalisation globale : Dirige automatiquement le trafic vers les serveurs les plus proches, pour une latence la plus faible possible et des performances de la plus haute qualité. moins de 50 ms de latence partout dans le monde

  3. Serveurs dans toutes les régions du monde : Toronto, Miami, San Francisco, Amsterdam, Londres, Francfort, Bangalore, Singapour, Sydney, Séoul, Dallas, New York

  4. Faible latence : moins de 50 ms de latence, partout dans le monde.

  5. Rentable : tarification à l'utilisation avec réductions sur la bande passante et le volume disponibles.

  6. Administration facile : Obtenez des journaux d'utilisation, des e-mails lorsque les comptes atteignent les limites de seuil, des enregistrements de facturation et une assistance par e-mail et par téléphone.

  7. Conforme aux normes : Conforme aux RFC 5389, 5769, 5780, 5766, 6062, 6156, 5245, 5768, 6336, 6544, 5928 sur UDP, TCP, TLS et DTLS.

  8. Multi‑Tenancy : Créez plusieurs informations d'identification et séparez l'utilisation par client ou par différentes applications. Obtenez des journaux d'utilisation, des enregistrements de facturation et des alertes de seuil.

  9. Fiabilité d'entreprise : Disponibilité de 99,999 % avec SLA.

  10. Échelle d'entreprise : Sans limite de trafic simultané ou de trafic total. Les serveurs TURN mesurés offrent une évolutivité d'entreprise

  11. 5 Go/mois gratuits : Obtenez 5 Go chaque mois d'utilisation gratuite du serveur TURN avec le forfait gratuit

  12. Fonctionne sur les ports 80 et 443

  13. Prend en charge TURNS + SSL pour autoriser les connexions via des pare-feu d'inspection approfondie des paquets.

  14. Prend en charge TCP et UDP

  15. STUN gratuit et illimité

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn