Un serveur RTMP est un serveur de streaming qui transmet des données audio et vidéo en temps réel via Internet, prin­ci­pa­le­ment pour les dif­fu­sions en direct. Il reçoit le flux provenant d’un encodeur ou d’un logiciel de streaming, puis le relaie vers des pla­te­formes de streaming ou di­rec­te­ment vers les spec­ta­teurs.

Essai gratuit de VPS
Testez gra­tui­te­ment un VPS pendant 30 jours

Laissez-vous con­vaincre par les avantages des serveurs virtuels. Essayez votre VPS en toute tran­quil­lité pendant 30 jours !

Qu’est-ce qu’un serveur RTMP ?

Les services de streaming sont aujourd’hui très répandus. La pla­te­forme de streaming Twitch fait partie du quotidien de nombreux gamers. Mais les streams consacrés à d’autres domaines, comme la musique, l’art ou la cuisine, gagnent eux aussi en po­pu­la­rité.

Avec un serveur RTMP, vous n’êtes toutefois pas obligé d’utiliser des pla­te­formes comme Twitch. Il est possible de mettre en place son propre serveur de streaming et de diffuser ses contenus de manière in­dé­pen­dante. Pour cela, on utilise le Real Time Messaging Protocol (RTMP). Ce protocole réseau développé par Adobe Inc. permet d’envoyer des contenus audio et vidéo à un serveur de stream, qui les re­dis­tri­bue ensuite pour une lecture en temps réel.

Bien qu’Adobe ait cessé de prendre en charge le Flash Player depuis fin 2020, le protocole RTMP reste largement utilisé dans les in­fras­truc­tures de streaming. Même si le flux n’est plus affiché di­rec­te­ment dans un na­vi­ga­teur, les streams RTMP peuvent toujours être reçus par des lecteurs mul­ti­mé­dias comme le lecteur VLC ou ses al­ter­na­tives.

Dans les ar­chi­tec­tures de streaming modernes, RTMP n’est gé­né­ra­le­ment plus utilisé pour la diffusion directe vers les spec­ta­teurs. Il sert plutôt de protocole d’ingestion : le flux est envoyé depuis un encodeur, par exemple OBS, vers un serveur RTMP. La diffusion finale vers les appareils des uti­li­sa­teurs se fait ensuite via des pro­to­coles comme HLS (HTTP Live Streaming), DASH ou WebRTC, pris en charge par la plupart des na­vi­ga­teurs et terminaux actuels.

Quels sont les avantages d’un serveur RTMP ?

Un serveur de streaming que vous exploitez vous-même vous permet de diffuser les contenus de votre choix sans res­tric­tion. De plus, les pu­bli­ci­tés souvent intégrées dans les streams sur les grandes pla­te­formes n’ap­pa­rais­sent pas lorsque vous utilisez votre propre serveur RTMP. Il n’est donc pas sur­pre­nant que les serveurs de li­ves­tream soient très répandus dans la scène gaming.

Dans d’autres domaines également, il peut être pertinent de mettre en place son propre serveur de streaming. Vous pouvez par exemple proposer des li­ves­treams ou des contenus vidéo di­rec­te­ment sur votre site Web à partir de votre serveur de stream, sans passer par des pla­te­formes externes comme YouTube. Cette solution peut aussi être in­té­res­sante pour organiser des we­bi­naires ou diffuser des évé­ne­ments en ligne de manière in­dé­pen­dante.

Quelles sont les con­di­tions préa­lables à la mise en place d’un serveur RTMP ?

Avant de commencer à con­fi­gu­rer votre propre serveur de streaming, quelques éléments sont né­ces­saires. Vous devez d’abord choisir une solution de serveur adaptée. Comme vous souhaitez gé­né­ra­le­ment garantir un stream fluide pour un grand nombre de spec­ta­teurs, il est dé­con­seillé de s’appuyer uni­que­ment sur les per­for­mances de votre PC ou de votre or­di­na­teur portable que vous souhaitez utiliser en parallèle, par exemple pour jouer. La bande passante de la connexion Internet joue notamment un rôle dé­ter­mi­nant dans ce choix.

Puissance du pro­ces­seur (CPU)

En principe, un serveur RTMP ne nécessite pas une grande puissance de calcul. Pour de petits projets sans trans­co­dage, un seul cœur de pro­ces­seur peut suffire. En revanche, si le serveur est utilisé pour le trans­co­dage des flux, les exigences en matière de per­for­mances peuvent augmenter de manière sig­ni­fi­ca­tive.

Mémoire vive (RAM)

Même en ce qui concerne la mémoire vive, un serveur RTMP n’impose gé­né­ra­le­ment pas d’exigences élevées. Pour de petits projets, 4 Go peuvent déjà suffire. Pour des projets plus ambitieux ou un plus grand nombre de spec­ta­teurs, il est toutefois re­com­mandé de prévoir 8 Go de RAM ou plus.

Espace de stockage sur disque

Les fichiers d’ins­tal­la­tion du logiciel NGINX né­ces­saires au serveur de stream ne sont pas par­ti­cu­liè­re­ment vo­lu­mi­neux. L’espace de stockage devient surtout important si vous souhaitez en­re­gis­trer les streams di­rec­te­ment sur le serveur. Dans ce cas, la durée du stream et sa qualité in­fluen­cent fortement les besoins en stockage.

Bande passante

La bande passante est l’un des facteurs les plus im­por­tants pour un serveur de streaming. Il faut prendre en compte la taille du flux vidéo, qui dépend prin­ci­pa­le­ment de la qualité de l’image et du son. Ce débit doit ensuite être multiplié par le nombre de spec­ta­teurs et par le nombre de streams diffusés si­mul­ta­né­ment. Si plusieurs streams sont dis­tri­bués via un même serveur de streaming, la bande passante requise augmente en con­sé­quence.

Comment héberger un serveur RTMP avec IONOS ?

Chez IONOS, trois solutions serveur dif­fé­rentes sont dis­po­nibles :

  • Serveur dédié : le matériel est ex­clu­si­ve­ment réservé à votre serveur, avec une fac­tu­ra­tion à la minute.
  • Serveur virtuel : avec un serveur privé virtuel (VPS), l’en­vi­ron­ne­ment serveur est vir­tua­lisé sur un matériel dédié.
  • Serveur Cloud : un serveur Cloud offre une grande flexi­bi­lité, car les res­sources peuvent être ajoutées ou retirées ra­pi­de­ment selon les besoins.

Ces solutions serveur se dis­tin­guent prin­ci­pa­le­ment par leur flexi­bi­lité et leur modèle de fac­tu­ra­tion. Les serveurs Cloud et les serveurs dédiés sont facturés à la minute : dès que vous libérez les res­sources, par exemple en sup­pri­mant le serveur, aucun coût sup­plé­men­taire n’est facturé. Avec un VPS, en revanche, vous devez prévoir un budget mensuel fixe.

Un serveur Cloud offre aussi une flexi­bi­lité par­ti­cu­liè­re­ment élevée : en quelques clics, vous pouvez ajouter ou retirer des res­sources comme l’espace de stockage, la mémoire vive ou les cœurs de pro­ces­seur afin d’adapter votre serveur de streaming à vos besoins.

Quelles sont les étapes à suivre pour créer un serveur RTMP ?

Dans le guide suivant, nous vous montrons comment con­fi­gu­rer fa­ci­le­ment votre propre serveur RTMP. Pour cet exemple, nous utilisons un serveur Cloud IONOS sous Windows. Si vous utilisez une dis­tri­bu­tion Linux comme système d’ex­ploi­ta­tion serveur, vous devrez adapter certaines étapes du tutoriel.

Étape 1 : établir la connexion au serveur

Commencez par vous connecter à votre serveur. Pour cela, connectez-vous à votre compte uti­li­sa­teur IONOS et accédez à la section « Serveurs & Cloud ». Après avoir sé­lec­tionné le contrat cor­res­pon­dant, vous arrivez dans le Cloud Panel. Dans les données d’accès, vous trouverez le lien « Connexion Bureau à distance ». En cliquant dessus, votre na­vi­ga­teur té­lé­charge un fichier qui charge au­to­ma­ti­que­ment les pa­ra­mètres corrects pour l’outil Windows « Connexion Bureau à distance ». Il vous suffit ensuite de saisir le mot de passe (visible dans le Cloud Panel) et d’établir la connexion. Vous accédez alors au bureau de votre serveur.

Image: Cloud Panel de IONOS pour un serveur RTMP
Dans les pa­ra­mètres du serveur dans le Cloud Panel, vous trouverez le fichier né­ces­saire pour la connexion à distance à votre serveur RTMP.

Même si vous n’utilisez pas un PC Windows, il est possible d’établir une connexion à distance. Té­lé­char­gez sim­ple­ment un logiciel de bureau à distance adapté et utilisez les in­for­ma­tions fournies dans le Cloud Panel pour vous connecter au serveur.

Étape 2 : installer NGINX avec le module RTMP

Pour mettre en place le serveur RTMP, nous utilisons NGINX. Ce logiciel est à l’origine un serveur Web, mais il peut également être utilisé comme serveur de streaming grâce à un module RTMP sup­plé­men­taire.

Note

Le paquet NGINX officiel pour Windows ne contient pas le module RTMP par défaut. Pour utiliser RTMP, vous avez besoin d’une version de NGINX compilée avec le module tiers nginx-rtmp-module. Avec la commande nginx -V, vous pouvez vérifier si le module RTMP est inclus dans votre version. La sortie doit comporter une mention de « nginx-rtmp-module ».

Té­lé­char­gez donc une version pré­com­pi­lée du logiciel dans laquelle le module est déjà intégré. Une option possible est la version nginx-rtmp-win32, dis­po­nible sous forme de binaire Windows sur GitHub. Ces versions incluent déjà le module RTMP et évitent une com­pi­la­tion manuelle complexe. Vous pouvez ensuite démarrer NGINX via l’invite de commandes. Pour cela, accédez dans le terminal au dossier dé­com­pressé et lancez le serveur avec la commande suivante :

start nginx
bash

Le serveur NGINX démarre alors comme processus en arrière-plan. Pour tester si le logiciel NGINX fonc­tionne, vous pouvez ouvrir l’adresse IP du serveur dans le na­vi­ga­teur. Vous devriez alors voir une in­di­ca­tion con­cer­nant NGINX.

Étape 3 : con­fi­gu­rer RTMP

Pour que votre serveur soit prêt pour RTMP, vous devez main­te­nant adapter le fichier de con­fi­gu­ra­tion. Re­cher­chez dans le dossier NGINX le fichier « nginx.conf ». Vous pouvez l’ouvrir avec un éditeur de texte. Ajoutez ou intégrez le bloc suivant dans le fichier de con­fi­gu­ra­tion :

rtmp {
server {
listen 1935;
chunk_size 4096;
application live {
live on;
record off;
# activer HLS
hls on;
hls_path C:/nginx/hls;
hls_fragment 3s;
hls_playlist_length 30s;
}
}
}
http {
server {
listen 8080;
location /hls {
types {
application/vnd.apple.mpegurl m3u8;
video/mp2t ts;
}
root C:/nginx;
add_header Cache-Control no-cache;
add_header Access-Control-Allow-Origin *;
}
}
}
nginx

Cette con­fi­gu­ra­tion permet à votre serveur de recevoir des flux entrants via RTMP sur le port 1935. Dans le bloc application live de la con­fi­gu­ra­tion NGINX, le flux est traité et, grâce à la fonction HLS activée, il est converti en petits fichiers vidéo ainsi qu’en un fichier de playlist.

Le bloc http met ensuite ces fichiers HLS à dis­po­si­tion via le port 8080, afin qu’ils puissent être lus dans un na­vi­ga­teur ou par des lecteurs com­pa­tibles. RTMP sert ainsi à l’ingest du flux, tandis que HLS assure la diffusion auprès des spec­ta­teurs.

Pour appliquer la nouvelle con­fi­gu­ra­tion, exécutez nginx -s reload ou re­dé­mar­rez NGINX :

NGINX -s stop
start nginx
bash
Note

Sans mesures de pro­tec­tion sup­plé­men­taires, toute personne con­nais­sant l’adresse de votre serveur peut en principe publier un stream sur votre application live. Cela peut entraîner des abus ou des streams in­dé­si­rables. Pour éviter cela, vous pouvez par exemple res­treindre l’accès à certaines adresses IP ou à un réseau interne. Ajoutez pour cela les lignes suivantes dans le bloc application live de votre fichier de con­fi­gu­ra­tion :

application live {
	live on;
allow publish 192.168.1.0/24;
deny publish all;
}
nginx

Dans cet exemple, seuls les appareils du réseau 192.168.1.x sont autorisés à envoyer un stream au serveur. Toutes les autres con­nexions sont au­to­ma­ti­que­ment bloquées.

Étape 4 : ouvrir le port

Pour que d’autres uti­li­sa­teurs puissent accéder à votre stream, vous devez ouvrir le port TCP cor­res­pon­dant dans le pare-feu du serveur. En tant que client IONOS, connectez-vous à votre compte puis ouvrez le Cloud Panel. Dans le menu « Réseau », vous trouverez le paramètre de pare-feu. Vous devez y ouvrir le port TCP 1935.

Image: Cloud Panel : paramètre de pare-feu du serveur avec port ouvert pour RTMP
Ouvrez le port 1935 dans le Cloud Panel pour que l’on puisse accéder à votre serveur de streaming.

Si vous utilisez HLS, vous devez créer une règle cor­res­pon­dante pour le port 8080. En plus du pare-feu configuré dans le Cloud Panel, le pare-feu de Windows Server doit également être ajusté. Pour cela, ouvrez le pare-feu Microsoft Defender avec les fonctions avancées et créez une nouvelle règle entrante pour le port TCP 1935 (RTMP) et, si né­ces­saire, pour le port 8080 (HLS).

Vous pouvez créer la règle via Po­wer­Shell à l’aide d’une simple commande :

New-NetFirewallRule -DisplayName "RTMP Server" -Direction Inbound -Protocol TCP -LocalPort 1935 -Action Allow
bash
Note

Dans certains réseaux d’en­tre­prise ou WLAN publics, le port RTMP standard 1935 est bloqué. Dans ce cas, RTMP peut être utilisé en al­ter­na­tive via le port 443 (TCP), gé­né­ra­le­ment ouvert pour les con­nexions HTTPS. Cette con­fi­gu­ra­tion nécessite toutefois d’adapter le serveur ainsi que la con­fi­gu­ra­tion NGINX et s’adresse plutôt à des uti­li­sa­teurs avancés.

Étape 5 : démarrer le stream

Vous avez main­te­nant effectué tous les réglages et pouvez commencer à diffuser votre stream. Pour cela, vous avez encore besoin d’un logiciel adapté. OBS est par exemple très populaire.

Dans le logiciel de streaming, vous devez ensuite ren­seig­ner les pa­ra­mètres de votre serveur comme suit :

rtmp://<adresse-ip>/live/stream
txt

Saisissez l’adresse IP de votre serveur. Si vous ne la con­nais­sez pas, vous pouvez la trouver dans le Cloud Panel. Via cette URL, le flux est transmis au serveur RTMP. La lecture pour les spec­ta­trices et spec­ta­teurs s’effectue ensuite via un protocole de diffusion distinct, comme HLS.

Aller au menu principal