Dans cet article, nous allons créer une application d'appel vidéo avec le serveur Janus WebRTC et SFU
Nous allons également en apprendre davantage sur Metered.ca SFU et pourquoi c'est une meilleure option que Janus Server
Janus est un serveur WebRTC SFU Open source à usage général. Il s'agit d'une passerelle modulaire qui facilite les applications de communication en temps réel en gérant les protocoles WebRTC complexes et fournit un serveur stable à des fins d'échange multimédia
Architecture modulaire : Janus dispose d'un système basé sur des plugins où chaque plugin a des fonctionnalités spécifiques. Cette modularité permet la personnalisation et l'extension
Gestion du protocole : Janus gère la signalisation et la négociation nécessaires à l'établissement des connexions webrtc.
Interopérabilité : Janus prend en charge les codecs multimédias et est compatible avec différents clients et navigateurs. Janus a donc une large compatibilité
Évolutivité : Conçu pour gérer efficacement plusieurs connexions, Janus est évolutif au sein d'une zone géographique spécifique. (c'est-à-dire que cela fonctionnera bien si tous les utilisateurs qui utilisent Janus se trouvent dans une petite zone géographique)
Une SFU ou une unité de transfert sélectif est une architecture de serveur multimédia utilisée dans les applications WebRTC pour acheminer efficacement les flux multimédias entre différents participants multimédias
La SFU reçoit les flux vidéo entrants de chaque participant, puis transmet sélectivement les flux aux autres participants, comme demandé.
C'est-à-dire que chaque participant reçoit les flux qu'il demande tandis que tous les participants envoient leurs flux vers la SFU
Évolutivité : SFU peut gérer un grand nombre de connexions car la SFU n'implique pas de tâches de calcul intensives telles que l'encodage et le décodage, mais transmet simplement les flux aux utilisateurs
Faible latence : Le SFU transmet les flux sans traitement, conduisant ainsi à une faible latence. Mais si vos utilisateurs sont partout dans le monde, vous avez besoin d'un service SFU distribué mondial tel que metered.ca cloud sou
Optimisation de la bande passante
Flexibilité et contrôle : Les participants ont une plus grande flexibilité sur ce qu'ils souhaitent recevoir, par exemple s'ils souhaitent recevoir uniquement des flux audio ou vidéo de participants sélectionnés, ils ont alors la possibilité de fais ça
Efficacité des coûts : Étant donné que SFU nécessite moins de traitement que MCU, une instance plus petite sur le cloud peut fonctionner pour vous
Préservation de la qualité des médias : SFU préserve la qualité des médias car elle n'effectue aucun traitement sur les flux multimédias et transmet simplement les flux aux participants demandés.
Mise en œuvre plus facile des fonctionnalités avancées
Fiabilité améliorée : Sans traitement des médias sur le serveur, il y a moins de points de défaillance. SFU peut également être regroupé pour la redondance, garantissant ainsi que les services restent actifs même si un serveur rencontre un problème.
L'intégration de Janus SFU dans votre application implique ces étapes. Voici le processus étape par étape pour implémenter Janus dans votre application.
Préparation du système
GLib zlib pkg-config Jansson libconfig libnice (at least v0.1.16 suggested, v0.1.18 recommended) OpenSSL (at least v1.0.1e) libsrtp (at least v2.x suggested)
vous pouvez facilement installer ces dépendances sur Ubuntu ou Debian comme
apt install libmicrohttpd-dev libjansson-dev \ libssl-dev libsofia-sip-ua-dev libglib2.0-dev \ libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \ libconfig-dev pkg-config libtool automake
Téléchargez et construisez Janus
GLib zlib pkg-config Jansson libconfig libnice (at least v0.1.16 suggested, v0.1.18 recommended) OpenSSL (at least v1.0.1e) libsrtp (at least v2.x suggested)
apt install libmicrohttpd-dev libjansson-dev \ libssl-dev libsofia-sip-ua-dev libglib2.0-dev \ libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \ libconfig-dev pkg-config libtool automake
git clone https://github.com/meetecho/janus-gateway.git
cd janus-gateway
sh autogen.sh
Configurer Janus
Modifier les fichiers de configuration
Activez les plugins nécessaires
Configurer le certificat SSL
Générer un certificat SSL
Mettre à jour la configuration
Démarrez le serveur Janus
./configure --prefix=/opt/janus
Vérifier le fonctionnement
Configurer l'environnement de développement
Choisissez un framework front-end
Inclure les bibliothèques WebRTC
Établir un serveur de signalisation
Créer ou rejoindre une salle vidéo
Gérer les flux multimédias locaux
make sudo make install sudo make configs
Joignez le flux local à l'élément vidéo dans le HTML pour lire le flux à l'utilisateur
5. Publier sur Janus
Utilisez RTCPeerConnection pour créer une offre SDP
Envoyer l'offre à Janus en utilisant l'API
Recevez la réponse SDP du Janus et définissez-la comme description à distance
6. Abonnez-vous aux flux à distance
Gérez les messages de participation et d'événement pour écouter les notifications des autres participants à la réunion
Créez les connexions Peer pour les abonnés, c'est-à-dire pour chaque participant distant dont vous avez besoin pour créer une nouvelle RTCPeerConnection
Gérer les flux distants, récupérer les flux distants et les attacher aux éléments vidéo HTML pour les lire sur la vidéo sur le navigateur Web de l'utilisateur
Implémenter l'écouteur et les gestionnaires d'événements
Metered Global Cloud SFU est une unité de transfert sélectif basée sur le cloud de Metered.ca
Avec Metered SFU, les développeurs peuvent créer tout type d'application, y compris la transmission vidéo, audio et de données
Le Metered SFU fonctionne à l'aide de l'API WebRTC native et de HTTP sans avoir besoin de SDK propriétaires.
Les utilisateurs sont également automatiquement acheminés vers la SFU la plus proche en fonction de leur situation géographique
Plusieurs SFU sont connectées globalement les unes aux autres à l'aide d'une interconnexion à haut débit, garantissant la latence la plus faible possible
Distribution mondiale :
Indépendance de la plateforme
Modèle de publication-abonnement flexible :
Évolutivité
Efficacité des coûts :
Établir une connexion
GLib zlib pkg-config Jansson libconfig libnice (at least v0.1.16 suggested, v0.1.18 recommended) OpenSSL (at least v1.0.1e) libsrtp (at least v2.x suggested)
b. Envoyer une offre SDP locale
c. Recevez le SDP à distance SFU
d. Connexion établie
GLib zlib pkg-config Jansson libconfig libnice (at least v0.1.16 suggested, v0.1.18 recommended) OpenSSL (at least v1.0.1e) libsrtp (at least v2.x suggested)
Publier un morceau
apt install libmicrohttpd-dev libjansson-dev \ libssl-dev libsofia-sip-ua-dev libglib2.0-dev \ libopus-dev libogg-dev libcurl4-openssl-dev liblua5.3-dev \ libconfig-dev pkg-config libtool automake
b. Générer et envoyer une offre SDP
Envoyer l'offre SDP mise à jour à la SFU
Recevoir et définir la réponse de SFU au SDP
S'abonner à un morceau
Demander l'abonnement à la piste auprès de la SFU
Évolutivité
Distribution média
Diffusion à grande échelle
Indépendance de la plateforme
Modèle flexible de publication et d'abonnement
Efficacité des coûts
Réseau mondial SFU :
Déploiement et maintenance
SFU avec compteur :
Janus
Évolutivité et performances
SFU mesuré
Janus
Structure des coûts
SFU mesuré
Janus
Flexibilité et fonctionnalités
SFU mesuré
Janus
Facilité d'intégration
SFU mesuré
Serveurs TURN mesurés
API : TURN gestion du serveur 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.
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
Serveurs dans toutes les régions du monde : Toronto, Miami, San Francisco, Amsterdam, Londres, Francfort, Bangalore, Singapour, Sydney, Séoul, Dallas, New York
Faible latence : moins de 50 ms de latence, partout dans le monde.
Rentable : tarification à l'utilisation avec réductions sur la bande passante et le volume disponibles.
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.
Conforme aux normes : Conforme aux RFC 5389, 5769, 5780, 5766, 6062, 6156, 5245, 5768, 6336, 6544, 5928 sur UDP, TCP, TLS et DTLS.
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.
Fiabilité d'entreprise : 99,999 % de disponibilité avec SLA.
Échelle d'entreprise : Sans limite sur le trafic simultané ou le trafic total. Les serveurs TURN mesurés offrent une évolutivité d'entreprise
5 Go/mois gratuits : Obtenez 5 Go chaque mois d'utilisation gratuite du serveur TURN avec le forfait gratuit
Fonctionne sur les ports 80 et 443
Prend en charge TURNS SSL pour autoriser les connexions via des pare-feu d'inspection approfondie des paquets.
Prend en charge TCP et UDP
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!