← Tous les guidesDiffusion vidéo

Créer son serveur multistream OBS pour Twitch et YouTube

Créez un serveur multistream OBS avec Restreamer. Diffusez vers Twitch et YouTube, estimez le transfert et ajoutez TikTok si votre compte fournit une clé.

Aller aux étapes

Un serveur multistream OBS vous convient-il ?

Un serveur multistream OBS reçoit un seul flux vidéo depuis votre domicile et le transmet à plusieurs plateformes. Si votre connexion supporte un envoi mais peine avec deux, un petit serveur peut vous aider. Ce guide utilise le logiciel libre datarhei Restreamer sur un Droplet DigitalOcean.

Un Droplet est un ordinateur Linux loué. Restreamer fournit le tableau de bord et le relais. OBS capture et encode toujours votre scène. YouTube et Twitch servent les spectateurs. Dix mille spectateurs ne créent donc pas dix mille connexions à votre Droplet.

Je choisirais cette installation pour une personne qui veut garder le contrôle et peut laisser une fenêtre SSH ouverte pendant son émission. Choisissez un relais géré si vous préférez confier la maintenance à un prestataire. Une extension multistream locale convient aussi lorsque votre débit montant est suffisant.

Ce parcours concerne un créateur et un flux paysage partagé. Il ne regroupe pas les conversations, ne crée pas de composition verticale indépendante et ne poursuit pas la diffusion après l'arrêt d'OBS. Les coûts ci-dessous sont des estimations, pas des mesures de performance ni une garantie de capacité.

Vérifiez vos comptes avant de louer un serveur

Ouvrez YouTube Studio et activez la diffusion en direct. La première activation peut prendre 24 heures. Créez une diffusion de test privée et vérifiez que les réglages de l'encodeur affichent une URL de serveur et une clé. Préférez une diffusion privée pour la répétition. Un lien non répertorié peut être partagé.

Sur Twitch, retrouvez votre clé principale dans le tableau de bord des créateurs, Paramètres, Stream. Lisez les règles actuelles de diffusion simultanée ci-dessous. Ajouter une destination à Restreamer ne règle pas votre compte et ne prouve pas que votre émission respecte les règles de chaque plateforme.

Pour TikTok, cherchez une URL de serveur et une clé destinées à un encodeur externe. L'accès à l'application mobile ou à LIVE Studio ne prouve pas que cette méthode soit disponible. Si ces deux valeurs manquent, continuez avec Twitch et YouTube. Vérifiez cet accès avant de payer le serveur.

  • Installez OBS sur votre ordinateur et vérifiez l'image et le microphone avec un enregistrement local.
  • Utilisez un contenu que vous pouvez diffuser, comme une caméra et un test parlé. Gardez les fenêtres privées hors de la scène.
  • Préparez une clé SSH. Sous Windows utilisez PowerShell avec OpenSSH. Sous macOS ou Linux utilisez Terminal.

Chiffrez votre serveur multistream OBS avant sa création

Restreamer n'impose aucun abonnement logiciel. DigitalOcean affiche actuellement un Droplet Basic avec 1 Gio de mémoire et 1 000 Gio de transfert mensuel à 6 USD, ou 2 Gio et 2 000 Gio à 12 USD. Je prévoirais 12 USD pour un premier essai afin de garder une marge. Ce choix n'est pas un minimum mesuré.

Additionnez les débits vidéo et audio, puis multipliez par le nombre de destinations et les heures de diffusion. Avec 6 Mbit/s au total, chaque destination consomme environ 2,51 Gio par heure. Trois destinations pendant 100 heures représentent environ 754 Gio avant les surcoûts des protocoles. Regarder l'aperçu du relais ajoute du transfert sortant.

DigitalOcean inclut le transfert entrant. Le quota sortant s'accumule pendant l'existence du Droplet et se partage au niveau de l'équipe. Un serveur créé pour une soirée ne reçoit pas immédiatement le quota d'un mois. Le dépassement coûte actuellement 0,01 USD par Gio. Les autres services de l'équipe peuvent utiliser ce même quota.

Gardez une marge et consultez la facturation après la répétition. Éteindre un Droplet n'arrête pas ses frais de calcul. Détruisez-le lorsque vous n'en avez plus besoin, après avoir sauvegardé la configuration utile. Les instantanés, volumes et sauvegardes conservés séparément peuvent rester facturés.

Faites défiler horizontalement pour voir toutes les colonnes.

Exemple de transfert mensuel sortant à 6 Mbit/s par destination, hors surcoûts des protocoles
Destinations50 heures100 heures
2251 Gio503 Gio
3377 Gio754 Gio

Étape 1. Créez un serveur accessible uniquement par SSH

Créez un nouveau Droplet Basic Ubuntu 24.04 LTS dans une région proche de votre lieu de diffusion. Choisissez l'authentification par clé SSH, un nom reconnaissable comme obs-relay et notez son adresse IPv4 publique. Utilisez un serveur neuf pour éviter de modifier l'installation d'une autre application.

Créez un Cloud Firewall DigitalOcean et attachez-le à ce Droplet. Autorisez uniquement le port TCP entrant 22 depuis votre adresse IPv4 publique actuelle suivie de /32. Conservez les règles sortantes par défaut pour les mises à jour et publications. N'ajoutez aucune règle entrante pour 8080, 1935, HTTP ou HTTPS.

Ce guide fait passer le tableau de bord et OBS dans SSH. Vous n'avez besoin ni de domaine ni de certificat. Si votre adresse domestique change, modifiez la source autorisée dans le tableau de bord DigitalOcean. N'ouvrez pas SSH à tout Internet pour contourner le problème.

Sur votre ordinateur, remplacez YOUR_DROPLET_IP par cette IPv4 et exécutez la commande. La première connexion demande de vérifier l'empreinte du serveur. Comparez-la avec celle obtenue par la console du fournisseur. Continuez lorsque l'invite distante identifie votre nouveau serveur.

Terminal local1 étape
  1. Se connecter au nouveau serveur
    Modifier d’abordRemplacez chaque valeur surlignée avant d’exécuter la commande.
    ssh root@YOUR_DROPLET_IP

    Remplacez avant l’exécution : YOUR_DROPLET_IP

Étape 2. Installez Docker et créez le fichier de configuration

Vous tapez maintenant sur le Droplet avec le compte root. Docker exécute Restreamer dans un conteneur. Compose lit un court fichier décrivant les ports et le stockage. Exécutez les commandes une par une. Corrigez chaque erreur avant de continuer.

Les noms de paquets ci-dessous correspondent aux dépôts Ubuntu d'un serveur Ubuntu 24.04 neuf. Si apt ne trouve pas docker-compose-v2, vérifiez la version du système et l'activation du dépôt universe. Ne mélangez pas ces instructions avec une installation Docker provenant d'une autre source.

Lorsque la version de Compose apparaît, créez le dossier de travail puis ouvrez compose.yaml. Nano est un éditeur de texte. Collez le YAML de la section suivante, appuyez sur Ctrl+O puis Entrée pour enregistrer et sur Ctrl+X pour revenir à l'invite du serveur.

Droplet connecté4 étapes
  1. Actualiser les paquets
    apt update
  2. Installer Docker et Compose
    apt install -y docker.io docker-compose-v2 nano
  3. Démarrer Docker
    systemctl enable --now docker
  4. Vérifier la version de Compose
    docker compose version
Droplet connecté2 étapes
  1. Créer le dossier
    mkdir -p /opt/obs-relay
  2. Ouvrir le dossier
    cd /opt/obs-relay
Droplet connecté1 étape
  1. Ouvrir compose.yaml dans Nano
    nano compose.yaml

Gardez le tableau de bord et l'entrée vidéo privés

Collez cette configuration complète dans compose.yaml. La version 2.12.0 identifie la version de Restreamer utilisée par ces instructions. Les deux liaisons 127.0.0.1 acceptent les connexions passant par le serveur lui-même, y compris votre tunnel SSH. Elles ne publient pas le service sur toutes ses interfaces réseau.

Les volumes nommés conservent les réglages lorsque vous recréez le conteneur. Ils contiennent des informations sensibles dès que vous ajoutez les clés des plateformes. Cette configuration limite aussi les journaux Docker à trois fichiers de 10 Mo. Elle ne limite pas tous les fichiers de l'application. Laissez l'enregistrement vidéo désactivé pendant l'installation.

Copiez le fichier ici ou téléchargez-le ci-dessous. Cette installation tient dans un fichier lisible en entier. Elle ne nécessite donc aucun dépôt compagnon ni programme d'installation séparé.

compose.yaml : coller dans l'éditeur, pas dans le shellÉditeur de fichiers du serveur
services:
  restreamer:
    image: datarhei/restreamer:2.12.0
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:8080"
      - "127.0.0.1:1935:1935"
    volumes:
      - restreamer-config:/core/config
      - restreamer-data:/core/data
    logging:
      driver: json-file
      options:
        max-size: "10m"
        max-file: "3"
volumes:
  restreamer-config:
  restreamer-data:

Vérifiez avant de continuer : Enregistrez dans /opt/obs-relay/compose.yaml.

Étape 3. Démarrez Restreamer et vérifiez les ports

Depuis l'invite du serveur dans /opt/obs-relay, validez le fichier, démarrez le conteneur et vérifiez son état. Le premier démarrage télécharge l'image et peut prendre quelques minutes. Une validation réussie ne produit aucun texte. Attendez sa réussite avant de lancer la commande suivante.

Les contrôles de ports doivent retourner 127.0.0.1:8080 et 127.0.0.1:1935. Arrêtez si une liaison commence par 0.0.0.0 ou [::]. Corrigez le YAML et relancez docker compose up -d. Ces contrôles confirment la configuration et l'état du conteneur. Le test vidéo vient ensuite.

Droplet connecté3 étapes
  1. Valider le fichier
    docker compose config --quiet
  2. Démarrer Restreamer
    docker compose up -d
  3. Vérifier l'état du conteneur
    docker compose ps
Droplet connecté2 étapes
  1. Vérifier la liaison du tableau de bord
    docker compose port restreamer 8080
  2. Vérifier la liaison RTMP
    docker compose port restreamer 1935

Étape 4. Ouvrez la connexion chiffrée depuis votre ordinateur

Gardez le terminal du serveur disponible. Ouvrez un deuxième terminal sur votre ordinateur et lancez cette commande après avoir remplacé YOUR_DROPLET_IP. Un tunnel fonctionnel laisse normalement la fenêtre vide. Gardez-la ouverte pendant la configuration et chaque diffusion.

Ouvrez http://127.0.0.1:18080/ui dans le navigateur du même ordinateur. HTTP reste limité aux connexions locales. SSH chiffre le trafic qui traverse Internet. Suivez la création du premier compte Restreamer et choisissez un mot de passe unique. Si la page ne répond pas, vérifiez d'abord que le tunnel fonctionne toujours.

Le port local 18080 mène au tableau de bord. Le port local 11935 mène au serveur vidéo. Si SSH indique qu'un port local est occupé, choisissez un autre port disponible et adaptez l'adresse du navigateur ou d'OBS. Ne changez pas par erreur le port distant.

Empêchez la mise en veille et utilisez une connexion filaire si possible. Le tunnel SSH convient à un poste fixe, mais sa reconnexion est manuelle dans ce guide. Une diffusion mobile passant entre plusieurs réseaux demande un autre transport et un autre plan de reprise.

Terminal local1 étape
  1. Ouvrir le tunnel et le garder actif
    Modifier d’abordRemplacez chaque valeur surlignée avant d’exécuter la commande.
    ssh -N -o ExitOnForwardFailure=yes -o ServerAliveInterval=30 -o ServerAliveCountMax=3 -L 127.0.0.1:18080:127.0.0.1:8080 -L 127.0.0.1:11935:127.0.0.1:1935 root@YOUR_DROPLET_IP

    Remplacez avant l’exécution : YOUR_DROPLET_IP

Étape 5. Connectez OBS à l'entrée Restreamer

Dans les réglages système de Restreamer, activez le serveur RTMP sur le port 1935 et définissez un jeton RTMP long et unique. Lancez l'assistant de source et choisissez son entrée RTMP interne. Copiez l'adresse de publication fournie. N'inventez pas l'identifiant du flux et ne copiez pas une adresse de lecture.

Dans OBS, ouvrez Paramètres, Stream et choisissez Personnalisé. Reprenez l'adresse de l'assistant en remplaçant uniquement son hôte et son port par 127.0.0.1:11935. Conservez le chemin d'application, le nom du flux et le jeton. Si l'assistant fournit séparément Serveur et Clé de stream, gardez cette séparation.

Si vous recevez une URL complète, placez la partie précédant la dernière barre oblique dans Serveur. Placez le nom final du flux avec sa requête de jeton dans Clé de stream. Le jeton Restreamer protège cette entrée. Les clés Twitch et YouTube iront plus tard dans leurs services de publication.

Commencez avec une scène de 1280 par 720 à 30 images/s, une vidéo H.264 à débit constant de 4 000 Kbit/s, une image clé toutes les deux secondes et de l'audio AAC stéréo à 128 Kbit/s. Ce sont des réglages de départ pour la répétition. Consultez les recommandations actuelles des destinations avant de changer la qualité.

Démarrez le streaming dans OBS pour que l'assistant détecte le signal. Sélectionnez la piste audio entrante et choisissez copy ou passthrough pour la vidéo et l'audio lorsque ces options sont proposées. Terminez l'assistant et vérifiez l'aperçu. La copie transmet les données encodées sans réencoder la vidéo. Le redimensionnement et les filtres modifient cette charge.

Étape 6. Testez YouTube, puis ajoutez Twitch

Dans Restreamer, utilisez le bouton plus des services de publication pour ajouter YouTube. Saisissez l'URL du serveur et la clé de votre diffusion privée de test. Préférez le point RTMPS documenté par la plateforme pour chiffrer la connexion sortante. Gardez la vérification des certificats activée.

Démarrez ce service de publication et cherchez la vidéo dans YouTube Studio. Si le démarrage automatique est désactivé, utilisez le bouton de mise en direct lorsque vous êtes prêt. Ouvrez le vrai lecteur privé depuis un compte autorisé. Parlez et frappez une fois dans les mains, puis vérifiez l'image, la voix et leur synchronisation.

Lorsque YouTube fonctionne, ajoutez un service Twitch distinct avec son URL d'entrée actuelle et sa clé. Une diffusion Twitch normale peut être publique et notifier les abonnés. Prévoyez donc cette répétition et gardez une scène inoffensive. Vérifiez le vrai lecteur Twitch en plus de l'état affiché par Restreamer.

Conservez d'abord la source de publication par défaut si elle fonctionne. Restreamer documente une source HLS qui peut ajouter du délai. Son option de source RTMP demande d'activer la sortie RTMP du canal dans Processing & Control. Réservez ce réglage à un ajustement ultérieur et revérifiez les deux lecteurs après modification.

Ajoutez TikTok après la réussite des deux premières destinations

Ajoutez TikTok ou une destination RTMP personnalisée avec l'URL et la clé actuellement fournies par votre compte. Les instructions BytePlus indiquent de récupérer ces valeurs à chaque diffusion TikTok. Vérifiez-les de nouveau si la connexion fonctionnait hier et échoue aujourd'hui.

Un flux paysage copié reste en paysage. Le relais ne le transforme pas en composition verticale adaptée. Pour une vue portrait distincte, préparez une seconde sortie OBS ou ajoutez volontairement un traitement sur le serveur. Un deuxième envoi change le calcul du débit domestique. Un encodage serveur change le besoin en processeur.

Si votre compte ne fournit pas d'identifiants pour encodeur externe, arrêtez cette branche facultative. Gardez Twitch et YouTube fonctionnels. N'installez pas d'extracteur de clés et ne supposez pas que l'accès par une autre application fournit des identifiants RTMP réutilisables.

Répétez une session complète et une interruption volontaire

Faites une répétition de 30 minutes avec toutes les destinations prévues. Consultez le panneau Statistiques d'OBS pour repérer les images perdues sur le réseau et la surcharge d'encodage. Sur le Droplet, lancez la commande ci-dessous et notez processeur, mémoire et trafic. Une mesure ponctuelle reste un indice. Répétez-la lors des changements habituels de scène.

Notez l'offre choisie, le débit, les destinations, la durée et le résultat des lecteurs. Si le processeur reste saturé, cherchez un transcodage involontaire avant de louer plus gros. Si OBS perd des images sur le réseau, réduisez le débit et vérifiez la connexion locale. Le Droplet ne peut pas réparer une vidéo qu'il ne reçoit pas.

Pendant le test prévu, fermez le tunnel avec Ctrl+C. Les deux destinations doivent perdre leur entrée. Relancez la même commande SSH et vérifiez la reconnexion d'OBS ainsi que la reprise des plateformes. Certains événements doivent être redémarrés après une coupure. Écrivez cette procédure de reprise.

Redémarrez enfin Restreamer pendant la répétition et vérifiez encore la reprise. Cette action interrompt le flux. Une politique de redémarrage du conteneur ne garantit pas le maintien du même événement sur la plateforme. Pour terminer, arrêtez les publications et OBS, puis vérifiez la fin de chaque diffusion.

Sur le Droplet : consulter les ressourcesDroplet connecté
docker stats --no-stream

Vérifiez avant de continuer : Un relevé des ressources apparaît. Répétez pendant la répétition.

Avant de continuer : Cette action interrompt les publications actives. Exécutez-la pendant la répétition prévue.

Sur le Droplet : interrompre le test et vérifier la repriseDroplet connecté
docker compose restart restreamer

Vérifiez avant de continuer : Le test est interrompu. Vérifiez la reprise dans OBS et les deux lecteurs.

Corrigez la première connexion en échec

Partez d'OBS et avancez vers les plateformes. Un tableau de bord accessible ne prouve pas la réception du son. Un état de publication vert ne prouve pas que les spectateurs voient la bonne scène. Vérifiez une connexion à la fois. Les détails du processus Restreamer aident au diagnostic, mais retirez URL de flux, clés et jetons avant de partager des journaux.

Faites défiler horizontalement pour voir toutes les colonnes.

Identifiez la panne avant de modifier le serveur
SymptômePremier contrôle
Le tableau de bord ne s'ouvre pasTunnel SSH, port local 18080 et état du conteneur.
OBS ne se connecte pasTunnel, port 11935, RTMP activé et clé complète générée.
Image sans sonIndicateur audio OBS, piste entrante sélectionnée et audio AAC.
Une seule destination échoueSon URL, sa clé, son événement et les exigences de l'encodeur.
Délai importantTampon du lecteur et source de publication. Tester RTMP après la réussite du réglage initial.
Toutes les destinations saccadentImages perdues dans OBS, marge de débit, stabilité SSH et processeur du serveur.

Choisissez l'approche que vous souhaitez entretenir

Je retiens Restreamer ici pour son tableau de bord qui facilite la gestion des destinations. Vous restez responsable des mises à jour, des secrets et de la reprise. MediaMTX convient si vous préférez un fichier de configuration et moins de commandes graphiques. Un relais géré convient si vous préférez consacrer ce temps à votre émission.

Faites défiler horizontalement pour voir toutes les colonnes.

Autres approches pour la même diffusion
ApprocheAvantage utileCompromis
Restreamer sur DropletUn seul envoi domestique et un tableau de bord.Location, quota de transfert et maintenance.
MediaMTX sur serveurRelais piloté par une courte configuration.Configuration plus manuelle, sans tableau de bord créateur équivalent.
Extension multistream OBS localePas de serveur à louer.Un envoi distinct par destination.
Service multistream géréLe prestataire exploite le relais.Limites, tarifs et intégrations propres au prestataire.

Questions fréquentes

Peut-on diffuser vers plusieurs plateformes gratuitement avec OBS ? Restreamer est libre, mais la location et les dépassements de transfert sont payants. Les extensions locales évitent la location avec un envoi distinct par destination. Comparez leur besoin en débit montant à votre connexion avant de choisir un relais.

Un Droplet à 6 USD suffit-il pour Twitch et YouTube ? Il peut servir à essayer le relais de médias encodés compatibles, sans garantie de capacité. Testez votre débit et vos destinations pendant une répétition complète. Redimensionnement, filtres, enregistrement et encodages supplémentaires demandent une évaluation distincte.

L'accès à TikTok LIVE fournit-il une clé de flux ? Ne le supposez pas. Cette installation exige une URL de serveur et une clé pour encodeur externe fournies par votre compte. Si la plateforme ne vous donne pas ces deux valeurs, suivez le parcours Twitch et YouTube et laissez TikTok non configuré.

Les spectateurs supplémentaires augmentent-ils le transfert du serveur ? Les plateformes distribuent la vidéo aux spectateurs. Le relais envoie une copie à chaque destination. Son transfert principal dépend donc du débit, du nombre de destinations et de la durée. Regarder directement son aperçu ou héberger la lecture pour des spectateurs ajoute du transfert.

Puis-je fermer la fenêtre SSH après l'installation ? Non. SSH transporte ici l'envoi OBS et la connexion au tableau de bord. Gardez cette fenêtre ouverte et l'ordinateur éveillé pendant la diffusion. Rouvrez le tunnel après une interruption, puis vérifiez la reprise d'OBS et de chaque plateforme.

Gardez l'installation si la répétition vous convainc

Si les deux lecteurs restent utilisables pendant une session normale et que vous savez reprendre après une coupure, sauvegardez la configuration et vos notes. Vérifiez le transfert réel après la première semaine. Utilisez ces mesures pour décider si la taille du Droplet convient.

Avant une mise à jour Restreamer, arrêtez les publications, sauvegardez les volumes nommés dans un emplacement protégé, lisez les notes de version et testez pendant une répétition. Gardez les clés hors de Git. N'exécutez pas docker compose down -v sauf si vous voulez supprimer les réglages sauvegardés.

Pour mettre le relais en pause, utilisez la commande ci-dessous. Le Droplet reste facturé. Si cette approche demande trop de travail, terminez les événements des plateformes, conservez la configuration utile et détruisez le Droplet dédié dans DigitalOcean. Vérifiez la facture des ressources éventuellement conservées séparément.

Pour un créateur qui veut un relais privé et accepte sa maintenance, partez du budget calculé plus haut. Le résultat utile est une diffusion qui passe votre répétition avec une facture mensuelle comprise.

Sur le Droplet : arrêter le relais et conserver les réglagesDroplet connecté
docker compose stop restreamer

Vérifiez avant de continuer : Le relais s'arrête et conserve ses réglages. Le Droplet reste facturé.

Vérifier le résultat

Résultat attendu
Les deux lecteurs montrent la bonne scène avec la voix synchronisée pendant une répétition de 30 minutes.
Arrêter si
Arrêtez si le tableau de bord ou RTMP est public, si le son manque, si des images se perdent ou si une destination ne reprend pas.
Étape suivante
Notez la reprise et le transfert réel. Ajoutez TikTok uniquement avec des identifiants actuels pour encodeur externe.