Configuration requise pour un serveur de diffusion en direct sur du matériel dédié Mis à jour le 16 mars 2026 par Sam Page 7 minutes et 33 secondes de lecture Diffuser en direct sur Twitch ou YouTube, ça va tant que tu n'as pas besoin de fonctionnalités qu'ils ne proposent pas : latence personnalisée, plusieurs diffusions simultanées, routage spécifique à l'audience, ou une configuration où la plateforme ne prélève aucune commission sur les revenus. Le streaming auto-hébergé sur un serveur dédié résout tous ces problèmes, mais les exigences en matière de matériel et de configuration sont bien précises. Pour obtenir… Table des matières Ce que le streaming en direct exige réellement d'un serveur Configuration matérielle requise par cas d'utilisation Un seul flux, jusqu'à 500 spectateurs simultanés Plusieurs flux ou 500 à 5 000 spectateurs simultanés Diffusion à grande échelle (plus de 5 000 spectateurs simultanés) Configurer Nginx sous Linux Diffuse simultanément sur Twitch et YouTube via un serveur dédié Optimisation du transcodage avec FFmpeg Configuration du pare-feu pour le streaming Espace de stockage pour l'enregistrement de flux Ce que le streaming en direct exige réellement d'un serveur Un serveur de diffusion en direct effectue trois opérations distinctes, chacune avec des profils de ressources différents : Ingestion : reçoit le flux encodé depuis ton logiciel de diffusion (OBS, Restream, vMix) via RTMP (Real-Time Messaging Protocol). Peu gourmand en ressources CPU : le serveur se contente d'accepter une connexion réseau et d'écrire sur le disque ou en mémoire. Transcodage : réencode le flux entrant en plusieurs niveaux de qualité (1080p, 720p, 480p, 360p) pour que les spectateurs disposant de différentes bandes passantes puissent regarder la vidéo sans mise en mémoire tampon. Cette opération sollicite fortement le processeur. C'est là que la plupart des serveurs atteignent leurs limites. Diffusion : envoie les segments HLS (HTTP Live Streaming) ou DASH aux spectateurs via un CDN ou directement. Cela nécessite une bande passante importante. Pour 100 spectateurs simultanés à 4 Mbps chacun, cela représente 400 Mbps de bande passante sortante en continu. Ton serveur doit gérer ces trois éléments simultanément, éventuellement pour plusieurs flux en même temps. Configuration matérielle requise par cas d'utilisation Un seul flux, jusqu'à 500 spectateurs simultanés Configuration minimale requise : InMotion Essential (99,99 $/mois, 64 Go de DDR4, 2 disques NVMe de 1,92 To) En 1080p30 avec un préréglage x264 « medium » et un transcodage sur 3 niveaux de qualité, attends-toi à ce que 4 à 6 cœurs du processeur soient pleinement sollicités pendant la diffusion en direct. Le processeur du serveur Essential gère ça sans problème. Avec 500 spectateurs simultanés recevant des flux à 4 Mbps, la bande passante sortante atteint 2 Gbps — ce qui reste dans les limites de la bande passante extensible de 10 Gbps. La mémoire vive n'est pas un goulot d'étranglement à cette échelle : 8 à 16 Go suffisent pour la pile de streaming. 64 Go offrent une marge de manœuvre pour le système d'exploitation et tout autre service fonctionnant en parallèle du streaming. Plusieurs flux ou 500 à 5 000 spectateurs simultanés On te conseille : InMotion Elite ou Extreme (199,99 $ à 349,99 $ par mois) Les opérations multi-flux ou les audiences importantes nécessitent soit davantage de cœurs de processeur pour le transcodage simultané, soit suffisamment de mémoire vive pour mettre en mémoire tampon les segments de flux de manière intensive. Avec 2 000 spectateurs simultanés recevant un flux HLS à 4 Mbps, tu atteins un débit soutenu de 8 Gbps — ce qui te rapproche de la limite de débit en pointe et constitue un argument de poids en faveur d'une bande passante garantie et illimitée de 10 Gbps. Les 16 cœurs et 32 threads de l'AMD EPYC 4545P sont parfaitement adaptés aux tâches de transcodage simultanées. Le transcodage logiciel utilisant libx264 ou libvpx évolue de manière linéaire avec le nombre de cœurs : deux flux 1080p simultanés consomment environ deux fois plus de ressources CPU qu'un seul. Diffusion à grande échelle (plus de 5 000 spectateurs simultanés) À cette échelle, le serveur dédié gère l'acquisition et le transcodage ; un CDN se charge de la diffusion. Le calcul est simple : 5 000 spectateurs à 4 Mbps, cela représente 20 Gbps de bande passante de diffusion, ce qui dépasse largement la capacité réelle d'un seul serveur. Un CDN correctement configuré récupère le flux HLS sur ton serveur une seule fois et le distribue aux spectateurs — ton serveur ne voit alors qu'un petit nombre de connexions aux points de présence (PoP) du CDN, au lieu de 5 000 connexions individuelles de spectateurs. Configurer Nginx sous Linux Nginx le module RTMP est le serveur de streaming open source par excellence. Sur AlmaLinux ou Ubuntu : # Ubuntu apt-get install nginx libnginx-mod-rtmp -y # AlmaLinux/Rocky dnf install nginx -y # Compile RTMP module or use community packages Basic Nginx configuration for ingest and HLS delivery: # /etc/nginx/nginx.conf rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; # HLS delivery hls on; hls_path /var/www/html/hls; hls_fragment 3s; hls_playlist_length 60s; # Transcode to multiple qualities exec_push ffmpeg -i rtmp://localhost/$app/$name -c:v libx264 -b:v 3000k -s 1920x1080 -r 30 -c:a aac -b:a 128k -f flv rtmp://localhost/hls/$name_1080p -c:v libx264 -b:v 1500k -s 1280x720 -r 30 -c:a aac -b:a 128k -f flv rtmp://localhost/hls/$name_720p -c:v libx264 -b:v 600k -s 854x480 -r 30 -c:a aac -b:a 96k -f flv rtmp://localhost/hls/$name_480p; } application hls { live on; hls on; hls_path /var/www/html/hls; hls_fragment 3s; hls_nested on; } } } http { server { listen 80; location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /var/www/html; add_header Cache-Control no-cache; add_header Access-Control-Allow-Origin *; } } }# Ubuntu apt-get install nginx libnginx-mod-rtmp -y # AlmaLinux/Rocky dnf install nginx -y # Compile RTMP module or use community packages Basic Nginx configuration for ingest and HLS delivery: # /etc/nginx/nginx.conf rtmp { server { listen 1935; chunk_size 4096; application live { live on; record off; # HLS delivery hls on; hls_path /var/www/html/hls; hls_fragment 3s; hls_playlist_length 60s; # Transcode to multiple qualities exec_push ffmpeg -i rtmp://localhost/$app/$name -c:v libx264 -b:v 3000k -s 1920x1080 -r 30 -c:a aac -b:a 128k -f flv rtmp://localhost/hls/$name_1080p -c:v libx264 -b:v 1500k -s 1280x720 -r 30 -c:a aac -b:a 128k -f flv rtmp://localhost/hls/$name_720p -c:v libx264 -b:v 600k -s 854x480 -r 30 -c:a aac -b:a 96k -f flv rtmp://localhost/hls/$name_480p; } application hls { live on; hls on; hls_path /var/www/html/hls; hls_fragment 3s; hls_nested on; } } } http { server { listen 80; location /hls { types { application/vnd.apple.mpegurl m3u8; video/mp2t ts; } root /var/www/html; add_header Cache-Control no-cache; add_header Access-Control-Allow-Origin *; } } } Cette configuration accepte un flux RTMP provenant d'OBS sur le port 1935, le transcode en trois niveaux de qualité via FFmpeg, puis diffuse les segments HLS via HTTP sur le port 80. Paramètres de diffusion OBS : Serveur : rtmp://adresse-IP-de-ton-serveur/live Clé du flux : n'importe quelle chaîne de caractères (devient le nom du flux) Encodeur : x264 ou NVENC (si un GPU est disponible) Débit binaire : 6 000 Kbps pour une source en 1080p60 Diffuse simultanément sur Twitch et YouTube via un serveur dédié Un serveur RTMP dédié peut rediffuser le contenu sur plusieurs plateformes en même temps, ce qui évite d'avoir recours à un service de rediffusion payant. application live { live on; # Push to Twitch push rtmp://live.twitch.tv/app/YOUR_TWITCH_STREAM_KEY; # Push to YouTube push rtmp://a.rtmp.youtube.com/live2/YOUR_YOUTUBE_STREAM_KEY; # Keep local HLS copy hls on; hls_path /var/www/html/hls; }application live { live on; # Push to Twitch push rtmp://live.twitch.tv/app/YOUR_TWITCH_STREAM_KEY; # Push to YouTube push rtmp://a.rtmp.youtube.com/live2/YOUR_YOUTUBE_STREAM_KEY; # Keep local HLS copy hls on; hls_path /var/www/html/hls; } Ton diffuseur envoie un flux vers ton serveur dédié ; celui-ci le distribue simultanément vers Twitch, YouTube et ton propre point de terminaison HLS. Cela nécessite une bande passante sortante égale à la somme de tous les débits de destination — généralement entre 6 000 et 18 000 Kbps, selon les exigences de chaque plateforme. Optimisation du transcodage avec FFmpeg Les paramètres par défaut de FFmpeg privilégient la qualité au détriment de l'efficacité du processeur. Pour la diffusion en direct, où les performances en temps réel sont indispensables, modifie le préréglage et les paramètres : ffmpeg -i rtmp://localhost/$app/$name \ -c:v libx264 \ -preset veryfast \ # Indispensable pour le temps réel : veryfast ou ultrafast -tune zerolatency \ # Réduit le délai d'encodage -b:v 3000k \ -maxrate 3000k \ -bufsize 6000k \ -g 60 \ # Intervalle entre les images clés (2x la fréquence d'images pour 30 images/seconde) -sc_threshold 0 \ # Désactive la détection de changement de scène (ajoute de la latence) -c:a aac \ -b:a 128k \ -f flv rtmp://localhost/hls/$name_1080pffmpeg -i rtmp://localhost/$app/$name \ -c:v libx264 \ -preset veryfast \ # Critical for real-time: veryfast or ultrafast -tune zerolatency \ # Reduces encoding delay -b:v 3000k \ -maxrate 3000k \ -bufsize 6000k \ -g 60 \ # Keyframe interval (2x framerate for 30fps) -sc_threshold 0 \ # Disable scene change detection (adds latency) -c:a aac \ -b:a 128k \ -f flv rtmp://localhost/hls/$name_1080p Le paramètre « veryfast » réduit légèrement la qualité d'encodage par rapport aux modes « slow » ou « medium », mais diminue la charge du processeur de 60 à 70 % — ce qui est indispensable pour le transcodage en temps réel sur un processeur qui gère simultanément plusieurs flux ou d'autres tâches. Le guide d'encodage de FFmpeg explique en détail les compromis entre les différents préréglages. Configuration du pare-feu pour le streaming Ouvre les ports dont ta pile de streaming a besoin : # Autoriser l'ingestion RTMP depuis les diffuseurs nft add rule inet filter input tcp dport 1935 accept # Autoriser la diffusion HTTP des segments HLS nft add rule inet filter input tcp dport 80 accept nft add rule inet filter input tcp dport 443 accept # Limiter l'ingestion RTMP aux adresses IP connues des diffuseurs si possible # Remplace par l'adresse IP réelle du diffuseur nft add rule inet filter input ip saddr 203.0.113.0/24 tcp dport 1935 accept nft add rule inet filter input tcp dport 1935 drop# Allow RTMP ingest from broadcasters nft add rule inet filter input tcp dport 1935 accept # Allow HTTP delivery of HLS segments nft add rule inet filter input tcp dport 80 accept nft add rule inet filter input tcp dport 443 accept # Restrict RTMP ingest to known broadcaster IPs if possible # Replace with actual broadcaster IP nft add rule inet filter input ip saddr 203.0.113.0/24 tcp dport 1935 accept nft add rule inet filter input tcp dport 1935 drop Si tu laisses le port RTMP ouvert sur Internet, n'importe qui peut diffuser du contenu sur ton serveur. En limitant l'accès au port d'acquisition à certaines adresses IP, tu empêches toute utilisation non autorisée de la bande passante de ton serveur. Espace de stockage pour l'enregistrement de flux Les flux enregistrés en 1080p consomment environ 1 Go pour 10 minutes d'enregistrement, à un débit de 12 à 15 Mbps. Pour tes opérations de streaming habituelles, prévois l'espace de stockage en conséquence : 2 heures d'enregistrement par jour : environ 12 Go/jour, environ 360 Go/mois Le serveur Essential d'InMotion comprend 2 disques NVMe de 1,92 To chacun NVMe une capacité suffisante pour environ 3 000 heures d'enregistrement avant de devoir archiver Configure Nginx-RTMP to record to a specific path: application live { live on; record all; record_path /var/recordings; record_suffix -%d%m%Y-%H%M%S.flv; record_max_size 1000M; # Split at 1GB to keep files manageable }Configure Nginx-RTMP to record to a specific path: application live { live on; record all; record_path /var/recordings; record_suffix -%d%m%Y-%H%M%S.flv; record_max_size 1000M; # Split at 1GB to keep files manageable } L'espace de stockage de sauvegarde Premier Care d'InMotion (500 Go) te permet de conserver une copie hors serveur de tes enregistrements importants. Pour un archivage à plus long terme, configure rclone pour synchroniser régulièrement le répertoire des enregistrements vers un stockage objet compatible S3. À lire aussi: Optimisation de la latence réseau pour les serveurs dédiés | Optimisation des serveurs d'origine CDN Partager cet article Articles connexes Les serveurs écologiques InMotion Hosting: ce qu'apporte réellement le matériel d'entreprise reconditionné RAM DDR4 vs DDR5 : Une comparaison approfondie AMD EPYC vs Intel Xeon : ce que les acheteurs d'hébergement doivent vraiment savoir Hébergement sur serveur dédié Moodle : pourquoi le partage des ressources nuit aux performances des plateformes d'apprentissage en ligne Guide de décision pour les agences qui évaluent les infrastructures d'hébergement Serveurs dédiés bare metal : qu'est-ce que c'est et comment évaluer les fournisseurs Comment choisir une offre de serveur dédié : un cadre basé sur la charge de travail Qu'est-ce que l'IPMI et pourquoi est-ce important pour la gestion des serveurs dédiés ? Traitement de données à haute fréquence sur des serveurs dédiés Analyse du coût total de possession : possession d'un serveur dédié sur 3 ans vs 5 ans