Streaming WebRTC Cloud chez DigitalOcean


Le cĂ©lĂšbre hĂ©bergement cloud DigitalOcean a rĂ©cemment acquis sa propre boutique d'images prĂȘtes Ă  l'emploi, Ă  partir de laquelle vous pouvez rapidement dĂ©ployer n'importe quel serveur d'applications. Tout comme AWS, seulement DO, pour ceux qui utilisent dĂ©jĂ  les services de ce fournisseur. Voyons comment, avec un compte DO, dĂ©ployer un serveur simple pour 10 $ par mois pour le streaming WebRTC basĂ© sur Flashphoner WebCallServer, et comment un tel serveur peut ĂȘtre utile.


Déploiement


Nous entrons le compte sur DO, suivons le lien vers l'image Flashphoner WebCallServer et cliquons sur le bouton "Créer une droplet de serveur d'appel Web Flashphoner"



Nous sélectionnons les caractéristiques du nord et le plan tarifaire. Par défaut, DO nous offrira quelque chose du segment du milieu, mais nous sommes intéressés par le coût minimum



Choisissez la rĂ©gion oĂč se trouve le centre de donnĂ©es, par exemple, Francfort



Choisissez une méthode d'authentification, par exemple, un mot de passe à usage unique



Nous indiquons le nombre de serveurs (jusqu'à présent, nous sommes intéressés par un serveur) et donnons un nom à notre serveur. Ce nom sera écrit, y compris dans / etc / hostname



Cliquez sur "Créer une goutte"



AprÚs la création, le serveur démarre automatiquement. Vous pouvez vous y connecter via SSH et, si un mot de passe à usage unique a été sélectionné comme méthode d'authentification, changez le mot de passe. Une brÚve description de Flashphoner WebCallServer avec des liens de documentation sera affichée dans la console



"C'est un test. Puis-je vous voir?"


Flashphoner WebCallServer dĂ©marre complĂštement prĂȘt pour le travail, une licence d'essai de 30 jours est activĂ©e automatiquement. Pour tester toutes les fonctions de base, il existe une interface Web, nous nous limitons Ă  vĂ©rifier la publication et la lecture du flux WebRTC.


Ouvrez la page du navigateur https: // droplet_ip: 8444 / admin / . Par dĂ©faut, un certificat auto-signĂ© est fourni avec le serveur, vous devrez donc confirmer l'exception de sĂ©curitĂ©. À l'avenir, vous pouvez remplacer les certificats par les vĂŽtres. Entrez le nom d'utilisateur et le mot de passe ( dĂ©mo par dĂ©faut)



Sélectionnez l'exemple de streaming bidirectionnel dans la barre latérale, cliquez sur le bouton "Connecter", puis sur "Publier". Pour lire le flux, cliquez sur "Jouer"



Pour une poignée de dollars


De quoi un serveur capable de 10 $ par mois peut-il ĂȘtre une plate-forme matĂ©rielle pour le streaming WebRTC? Voyons ce que le processeur DigitalOcean nous offre


lscpu 


et de mémoire


 free -h 


En vĂ©rifiant le serveur avec des tests de charge, nous voyons que le serveur n'est peut-ĂȘtre pas si petit.


Par exemple, nous publierons une instance de flux et verrons combien d'abonnés peuvent perdre simultanément ce flux, n'occupant pas plus de 90% du processeur:


AutorisationDébit binaire, KbpsNombre de publicationsNombre d'abonnés
360p1300170
480p1800170
720p3000150

Avec plusieurs publications simultanĂ©es, le nombre maximum de flux traitĂ©s reste au mĂȘme niveau: si vous publiez 7 flux, jusqu'Ă  10 tĂ©lĂ©spectateurs peuvent s'abonner Ă  chacun.


Disons que nous devons transcoder le flux sur le serveur afin de réduire la résolution ou d'aligner le FPS. Dans ce cas, vérifiez le nombre maximum de publications:


AutorisationDébit binaire, KbpsNombre de fils
360p13005
480p18003
720p30002

Ainsi, un serveur Ă  coĂ»t minimum sur DO avec des paramĂštres de 1 cƓur de processeur, 2 Go de RAM, 2 To de trafic par mois convient non seulement pour tester le streaming WebRTC, mais aussi pour une utilisation dans de petits projets. Par exemple, vous pouvez:


  • distribuer via WebRTC le flux de la camĂ©ra IP pour la vidĂ©osurveillance d'entreprise la plus simple;
  • organiser un webinaire pour les employĂ©s d'une petite entreprise
  • augmentez votre radio Internet (le flux audio nĂ©cessite moins de ressources CPU)

De plus, ce serveur peut ĂȘtre considĂ©rĂ© comme une plate-forme de rĂ©fĂ©rence pour les calculs de mise Ă  l'Ă©chelle, ce que nous continuerons de faire.


"Je mérite plus!"


Les rĂšgles, en gĂ©nĂ©ral, sont trĂšs simples: il n'y a pas beaucoup de cƓurs, tout comme la mĂ©moire. En fonction du nombre d'abonnĂ©s prĂ©vu, les recommandations de l'ensemble des configurations proposĂ©es par DO seront les suivantes:


Nombre d'abonnésvCPURAM, GbTrafic, TBExemple d'utilisation
jusqu'à 200485SystÚme de vidéosurveillance
jusqu'Ă  5008166Webinaires
jusqu'à 100016649Chat vidéo
jusqu'à 2000209610Streaming vidéo HD

Si vous prévoyez de vous développer davantage, vous devrez déployer un CDN au rythme de 1 serveur Edge pour 2000 abonnés. Supposons que nous devions distribuer de la vidéo HD, le nombre prévu de téléspectateurs est de 10 000. Dans ce cas, vous avez besoin de 2 serveurs Origin pour publier et 5 serveurs Edge pour visualiser.



Exemple de réglage:


  • Origine 1

 cdn_enabled=true cdn_ip=origin1.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin 

  • Origine 2

 cdn_enabled=true cdn_ip=origin2.flashponer.com cdn_point_of_entry=origin1.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin 

  • Edge 1 - Edge 5 (seule l'adresse du serveur dans le paramĂštre cdn_ip est cdn_ip )

 cdn_enabled=true cdn_ip=edge1.flashphoner.com cdn_point_of_entry=origin1.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge 

Un CDN peut Ă©galement ĂȘtre utile si les abonnĂ©s sont rĂ©partis gĂ©ographiquement, par exemple, nos tĂ©lĂ©spectateurs potentiels vivent en Europe et en AmĂ©rique.



Exemple de réglage:


  • Origine UE

 cdn_enabled=true cdn_ip=origin_eu.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin cdn_groups=EU 

  • Origine US

 cdn_enabled=true cdn_ip=origin_us.flashponer.com cdn_point_of_entry=origin_eu.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin cdn_groups=US 

  • Edge 1 EU

 cdn_enabled=true cdn_ip=edge1_eu.flashphoner.com cdn_point_of_entry=origin_eu.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge cdn_groups=EU 

  • Edge 1 US

 cdn_enabled=true cdn_ip=edge1_us.flashphoner.com cdn_point_of_entry=origin_eu.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge cdn_groups=US 

Plus il y a de tĂ©lĂ©spectateurs, plus la variĂ©tĂ© d'appareils de lecture et de canaux vers ces appareils est grande. Pour garantir la qualitĂ© de la diffusion vers divers appareils, il est trĂšs probable qu'un transcodage vidĂ©o sera nĂ©cessaire, qui peut ĂȘtre attribuĂ© Ă  des serveurs spĂ©ciaux de transcodeur CDN.



Exemple de réglage:


  • Origine

 cdn_enabled=true cdn_ip=origin.flashponer.com cdn_nodes_resolve_ip=false cdn_role=origin cdn_groups=default 

  • Transcoder EU

 cdn_enabled=true cdn_ip=transcoder_eu.flashponer.com cdn_point_of_entry=origin.flashponer.com cdn_nodes_resolve_ip=false cdn_role=transcoder cdn_groups=EU 

  • Edge 1 EU

 cdn_enabled=true cdn_ip=edge1_eu.flashphoner.com cdn_point_of_entry=origin.flashponer.com cdn_nodes_resolve_ip=false cdn_role=edge cdn_groups=EU 

Pour le transcodage, comme nous l'avons dĂ©couvert lors du test, le nombre de cƓurs de processeur est important. À partir de la ligne de configuration optimisĂ©e pour le processeur, le 32 vCPU, 64 Go de RAM le plus cher est le plus appropriĂ©. Dans le mĂȘme temps, dans d'autres lignes, les configurations avec une grande quantitĂ© de mĂ©moire proche du nombre de CPU peuvent ĂȘtre considĂ©rablement plus chĂšres. Malheureusement, l'enregistrement sur les transcodeurs ne fonctionnera pas: la vidĂ©o Ă©tant codĂ©e image par image, il devrait y avoir suffisamment de mĂ©moire pour toutes les images et des processeurs pour traiter tous les flux.


Lors du dĂ©ploiement d'un CDN, il est utile de crĂ©er plusieurs serveurs de la mĂȘme configuration en mĂȘme temps. Cependant, pour les CDN gĂ©ographiquement distribuĂ©s, le mĂȘme type de serveurs Edge et Transcoder devra ĂȘtre situĂ© dans diffĂ©rents centres de donnĂ©es.


Conclusion


Nous avons donc déployé et testé un petit serveur pour diffuser des vidéos WebRTC avec une faible latence sur DigitalOcean, nous nous sommes assurés que le serveur dans la configuration minimale convient non seulement pour les tests, mais aussi pour une utilisation dans de petits projets, nous avons reçu des données pour une mise à l'échelle en fonction du nombre de téléspectateurs attendu, et a abordé le sujet du déploiement du CDN, qui en soi mérite un article séparé. Restez avec nous, pour continuer ...


Les références


Le Flashphoner WebCallServer de DigitalOcean Marketplace est une image préconstruite de Web Call Server de DigitalOcean.


Le CDN de streaming WebRTC à faible latence est un réseau de distribution de contenu basé sur le serveur d'appels Web.

Source: https://habr.com/ru/post/fr476546/


All Articles