OBS vers SRT : guide de configuration pour une diffusion faible latence

Pourquoi utiliser SRT avec OBS ?

OBS Studio prend en charge la sortie SRT depuis la version 27, et à partir de la version 30+, c’est une option de protocole de premier plan. Si vous pointez encore OBS vers un point d’entrée RTMP, vous passez à côté de trois améliorations majeures :

  1. Chiffrement : SRT chiffre votre flux avec AES-128 ou AES-256 nativement. Pas de gestion de certificats RTMPS, pas de surcharge TLS. Simplement une passphrase partagée.
  2. Récupération d’erreurs : la retransmission sélective (ARQ) de SRT récupère les paquets perdus sans retransmettre l’ensemble du flux. Sur un réseau avec 2-5 % de perte de paquets, RTMP produit des artefacts visibles. SRT délivre un flux propre.
  3. Diagnostics en temps réel : SRT expose des métriques comme le RTT, la perte de paquets, la gigue et le nombre de retransmissions. Votre serveur récepteur peut superviser la santé du flux en temps réel et réagir avant que les problèmes ne deviennent visibles.

Ce guide couvre tout ce dont vous avez besoin pour connecter OBS à une destination SRT — que ce soit Vajra Cast, un listener SRT simple ou tout serveur compatible SRT.

Prérequis

Avant de commencer :

  • OBS Studio 30 ou plus récent — les versions antérieures supportent SRT mais avec moins d’options de configuration et des bugs connus. Mettez à jour vers la dernière version.
  • Une destination SRT — un serveur exécutant un listener SRT. Ce guide utilise Vajra Cast, mais la configuration OBS s’applique à n’importe quel point d’entrée SRT.
  • Connectivité UDP — SRT utilise UDP. Si vous êtes derrière un pare-feu d’entreprise qui bloque l’UDP sortant, vous aurez besoin d’une exception pour votre port SRT. Testez d’abord la connectivité :
# Test rapide : pouvez-vous atteindre votre serveur en UDP ?
nc -vz -u votre-serveur.com 9000

Étape 1 : configurer la destination SRT

Commencez par configurer le côté réception. Dans Vajra Cast :

  1. Créez un nouvel ingest
  2. Sélectionnez SRT Listener
  3. Choisissez un port (par exemple 9000)
  4. Définissez la latence à 500ms comme point de départ (nous l’ajusterons plus tard)
  5. Activez le chiffrement avec une passphrase robuste et AES-256
  6. Enregistrez

Votre point d’entrée SRT est maintenant : srt://votre-serveur.com:9000

Si vous n’avez pas encore Vajra Cast, vous pouvez tester avec FFmpeg comme listener SRT rapide :

ffmpeg -i "srt://0.0.0.0:9000?mode=listener&latency=500000" -c copy output.ts

Étape 2 : configurer les paramètres de flux OBS

Ouvrez OBS et allez dans Paramètres > Flux :

  1. Service : sélectionnez Personnalisé…
  2. Serveur : saisissez votre URL SRT avec tous les paramètres :
srt://votre-serveur.com:9000?latency=500000&passphrase=VotrePassphraseSecurisee&pbkeylen=32
  1. Clé de flux : laissez ce champ vide. SRT n’utilise pas de clés de flux. Si OBS exige une saisie, tapez un simple espace.

Point critique : unités de latence

OBS spécifie la latence SRT en microsecondes, pas en millisecondes. C’est l’erreur de configuration la plus fréquente :

Latence souhaitéeValeur OBS
120ms120000
500ms500000
1000ms1000000
2000ms2000000

Si vous définissez latency=500 dans OBS, vous demandez 0,5ms — soit un tampon pratiquement nul. SRT se connectera mais ne pourra récupérer aucun paquet perdu.

Explication complète de l’URL SRT

srt://votre-serveur.com:9000?mode=caller&latency=500000&passphrase=MonPass123&pbkeylen=32&oheadbw=25
ParamètreValeurDescription
modecallerOBS initie la connexion (par défaut, généralement omis)
latency500000Tampon de réception de 500ms en microsecondes
passphraseMonPass123Passphrase de chiffrement partagée (10-79 caractères)
pbkeylen32AES-256 (16=AES-128, 24=AES-192, 32=AES-256)
oheadbw2525 % de bande passante supplémentaire pour les retransmissions
connect_timeout3000Délai de connexion en millisecondes
tlpktdrop1Abandonne les paquets en retard plutôt que de les livrer dans le désordre

Vous n’avez pas besoin de spécifier tous les paramètres. L’URL minimale viable est :

srt://votre-serveur.com:9000

Cela se connecte sans chiffrement, avec la latence par défaut (120ms) et la surcharge par défaut. Mais pour tout usage en production, définissez toujours passphrase, pbkeylen et latency explicitement.

Étape 3 : configurer les paramètres de sortie OBS

Allez dans Paramètres > Sortie et passez en mode Avancé.

Onglet Streaming

Le choix de l’encodeur impacte les performances SRT. Le flux doit être encodé avec des images clés régulières et en CBR :

x264 (encodage logiciel)

Encodeur : x264
Contrôle du débit : CBR
Débit : 6000 Kbps
Intervalle d'images clés : 2 secondes
Preset CPU : veryfast (ou faster si le processeur le permet)
Profil : high
Tune : zerolatency

Le tune zerolatency est important. Il désactive la réorganisation des trames et le look-ahead de x264, ce qui réduit la latence d’encodage de 2 à 5 trames. Pour le streaming en direct, ce compromis qualité mineur en vaut presque toujours la peine.

NVENC (GPU NVIDIA)

Encodeur : NVIDIA NVENC H.264
Contrôle du débit : CBR
Débit : 6000 Kbps
Intervalle d'images clés : 2 secondes
Preset : P4 (ou P5 pour une meilleure qualité)
Profil : high
Look-ahead : Désactivé
B-Frames : 0 (latence minimale) ou 2 (meilleure qualité)

Définir les B-Frames à 0 réduit la latence d’encodage mais diminue légèrement l’efficacité de compression. Pour les applications à faible latence, 0 B-frame est recommandé. Pour un streaming orienté qualité où une trame supplémentaire de latence est acceptable, utilisez 2.

Apple VT H264 (macOS)

Encodeur : Apple VT H264 Hardware Encoder
Débit : 6000 Kbps
Intervalle d'images clés : 2 secondes
Profil : high

Intel QSV

Encodeur : QuickSync H.264
Contrôle du débit : CBR
Débit : 6000 Kbps
Intervalle d'images clés : 2 secondes
Profil : high

Si votre serveur Vajra Cast utilise également Intel QSV pour le transcodage, vous obtenez un pipeline entièrement accéléré matériellement de l’encodage au traitement jusqu’à la sortie. Consultez notre guide du transcodage matériel avec Intel QSV pour les détails.

Pourquoi le CBR ?

SRT fonctionne mieux avec un encodage à débit constant pour deux raisons :

  1. Prédiction de bande passante — SRT alloue la bande passante de surcharge en pourcentage du débit du flux. Avec le CBR, c’est prévisible. Avec le VBR, les pics de débit peuvent dépasser la surcharge disponible, causant des échecs de retransmission.
  2. Ordonnancement des paquets — SRT cadence la livraison des paquets. Un débit constant produit des paquets espacés régulièrement, que SRT peut ordonnancer efficacement dans son tampon de latence.

Le VBR peut fonctionner avec SRT, mais vous devez définir maxbw suffisamment haut pour supporter les pics de débit plus la surcharge. Le CBR élimine cette incertitude.

Étape 4 : configurer les paramètres vidéo OBS

Allez dans Paramètres > Vidéo :

Résolution de base (canevas) : 1920x1080
Résolution de sortie (redimensionnée) : 1920x1080
Valeurs FPS courantes : 30 (ou 60 pour du contenu à mouvement rapide)

Recommandations résolution/débit

RésolutionImages/sDébit minimumDébit recommandé
1280x72030 fps2500 Kbps4000 Kbps
1280x72060 fps3500 Kbps5000 Kbps
1920x108030 fps4000 Kbps6000 Kbps
1920x108060 fps6000 Kbps8000 Kbps
2560x144030 fps8000 Kbps12000 Kbps
3840x216030 fps15000 Kbps20000 Kbps

Ces valeurs correspondent à H.264. Si votre destination supporte HEVC (H.265), vous pouvez réduire le débit d’environ 40 % à qualité équivalente. Vajra Cast supporte l’ingest HEVC et peut transcoder en H.264 pour les sorties qui l’exigent.

Étape 5 : lancer le streaming et vérifier

Cliquez sur Démarrer le streaming dans OBS. Vérifiez immédiatement ces éléments :

Dans OBS

Regardez la barre d’état en bas :

  • Carré vert : connexion établie
  • Indication de débit : doit correspondre à votre valeur configurée
  • Images perdues : doit être à 0 %. Si des images sont perdues, votre encodeur CPU ou GPU ne suit pas le rythme.

Dans Vajra Cast

Sur le tableau de bord d’ingest :

  • État de connexion : doit afficher “Connecté” avec l’IP du caller SRT
  • Débit : doit correspondre au débit d’encodage OBS
  • RTT : doit être stable (temps d’aller-retour réseau)
  • Perte de paquets : doit être à 0 % ou très faible (<0,1 %)
  • Paquets retransmis : un certain nombre est normal ; un compteur élevé soutenu indique des problèmes réseau
  • État du chiffrement : doit afficher “AES-256 SECURED”

Liste de vérification rapide

  • OBS connecté et en cours de diffusion (indicateur vert)
  • Vajra Cast affiche le flux entrant avec la bonne résolution et le bon débit
  • Chiffrement actif (AES-256)
  • RTT stable (pas de pics erratiques)
  • Perte de paquets inférieure à 0,1 %
  • Sortie jouée proprement sur la destination de test

Ajustement de la latence

La latence par défaut de 500ms convient à la plupart des connexions au sein d’un même pays. Mais vous pouvez optimiser davantage.

Mesurer votre référence

  1. Démarrez le streaming avec latency=500000
  2. Dans Vajra Cast, observez le RTT rapporté pendant 5 minutes
  3. Notez le RTT moyen et le RTT de pointe

Calculer la latence optimale

Latence optimale = 4 * RTT moyen + 2 * (RTT de pointe - RTT moyen)

Exemple : RTT moyen = 40ms, RTT de pointe = 65ms

Latence = 4 * 40 + 2 * (65 - 40) = 160 + 50 = 210ms

Arrondissez à 250ms par sécurité. Dans OBS : latency=250000

Optimisation faible latence

Pour la latence la plus basse possible (par exemple, interviews en direct, gaming) :

  1. Placez votre serveur SRT géographiquement proche d’OBS (même ville ou région)
  2. Utilisez une connexion filaire stable (pas le Wi-Fi)
  3. Définissez latency à 4 fois le RTT sans marge supplémentaire
  4. Définissez le tune de l’encodeur sur zerolatency
  5. Définissez les B-frames à 0
  6. Utilisez l’encodage matériel (NVENC ou QSV)
  7. Réduisez l’intervalle d’images clés à 1 seconde

Cela peut atteindre 80-150ms de latence SRT sur un bon chemin réseau, avec une latence totale de bout en bout inférieure à 400ms incluant l’encodage et le décodage.

Pour une référence complète sur l’ajustement de la latence, consultez notre guide d’ajustement de la latence SRT.

Dépannage

OBS indique “Échec de connexion au serveur”

Causes les plus fréquentes :

  1. Mauvais port — vérifiez que le numéro de port correspond à votre listener SRT
  2. Pare-feu bloquant l’UDP — SRT utilise UDP, pas TCP. De nombreux pare-feu bloquent UDP par défaut.
  3. Passphrase non concordante — SRT rejette silencieusement les connexions avec une mauvaise passphrase. OBS peut rapporter cela comme un échec de connexion générique.
  4. Serveur non à l’écoute — vérifiez que le listener SRT est effectivement en cours d’exécution sur le serveur cible

Étapes de diagnostic :

# Vérifiez si le port est ouvert depuis votre machine
nc -vz -u votre-serveur.com 9000

# Vérifiez si le listener SRT est en cours d'exécution sur le serveur
ss -ulnp | grep 9000

Le flux se connecte mais la vidéo est cassée/présente des artefacts

Causes et solutions :

  1. Latence trop faible — augmentez la latence SRT. Si les paquets ne peuvent pas être récupérés à temps, des artefacts apparaissent.
  2. Conteneur MPEG-TS manquant — SRT utilise MPEG-TS, pas FLV. OBS gère cela automatiquement, mais les pipelines FFmpeg personnalisés peuvent nécessiter -f mpegts.
  3. Intervalle d’images clés trop long — définissez-le à 2 secondes maximum. Des intervalles plus longs signifient un temps de récupération du décodeur plus long après toute perturbation.

Gel intermittent toutes les quelques secondes

Cause : l’encodeur ne peut pas maintenir la vitesse d’encodage en temps réel. La file d’attente d’encodage se remplit, causant des pertes d’images périodiques.

Solutions :

  • Passez à un preset d’encodeur plus rapide (veryfast ou ultrafast pour x264)
  • Utilisez l’encodage matériel (NVENC, QSV)
  • Réduisez la résolution ou la fréquence d’images
  • Fermez les autres applications qui sollicitent le CPU/GPU

Audio désynchronisé

Cause : généralement un problème de pipeline d’encodage, pas spécifique à SRT.

Solutions :

  • Définissez le décalage de synchronisation dans le mixeur audio OBS (clic droit sur la source audio > Propriétés audio avancées)
  • Vérifiez que la fréquence d’échantillonnage audio est à 48000 Hz (standard broadcast)
  • Redémarrez le pipeline audio OBS en désactivant puis réactivant la source audio

Perte de paquets élevée affichée dans Vajra Cast alors que le réseau semble correct

Cause : OBS n’envoie pas à un débit constant. Les fluctuations de débit poussent SRT à interpréter les vides comme de la perte de paquets.

Solutions :

  • Passez au contrôle de débit CBR
  • Augmentez oheadbw à 50 % (oheadbw=50 dans l’URL SRT)
  • Vérifiez si d’autres applications monopolisent la bande passante montante

Avancé : multi-sortie depuis OBS via Vajra Cast

L’un des schémas les plus puissants consiste à utiliser OBS pour alimenter un seul flux SRT vers Vajra Cast, qui le distribue ensuite vers plusieurs destinations :

OBS → SRT → Vajra Cast → RTMP → YouTube
                        → RTMP → Twitch
                        → SRT  → Producteur distant
                        → SRT  → Serveur d'enregistrement
                        → HLS  → Lecteur web

Sans passerelle, OBS devrait encoder et envoyer plusieurs flux simultanément, ce qui multiplie l’utilisation CPU et bande passante. Avec la distribution zéro-copie de Vajra Cast, ajouter des sorties ne coûte aucun CPU supplémentaire. Le flux est encodé une seule fois dans OBS et répliqué au niveau de la passerelle.

Pour configurer cela :

  1. Configurez OBS avec une seule sortie SRT vers Vajra Cast (comme décrit ci-dessus)
  2. Dans Vajra Cast, créez un ingest (SRT Listener)
  3. Créez plusieurs sorties, chacune pointant vers une destination différente
  4. Activez ou désactivez les sorties à la volée sans toucher à OBS

Cette architecture vous offre également le failover au niveau de la passerelle. Si OBS plante ou si le réseau tombe, Vajra Cast peut basculer sur une entrée de secours (une seconde instance OBS, un encodeur matériel, ou même une mire de secours pré-enregistrée) sans qu’aucune de vos destinations de sortie ne s’en aperçoive.

Référence rapide des paramètres SRT OBS

Pour un copier-coller facile, voici les URL SRT complètes pour les scénarios courants :

Réseau local (LAN)

srt://192.168.1.100:9000?latency=60000

Même ville (faible latence)

srt://serveur.example.com:9000?latency=250000&passphrase=VotrePassphrase&pbkeylen=32

National

srt://serveur.example.com:9000?latency=800000&passphrase=VotrePassphrase&pbkeylen=32&oheadbw=25

International

srt://serveur.example.com:9000?latency=1500000&passphrase=VotrePassphrase&pbkeylen=32&oheadbw=30

Fiabilité maximale (réseau à pertes)

srt://serveur.example.com:9000?latency=3000000&passphrase=VotrePassphrase&pbkeylen=32&oheadbw=50

Pour en savoir plus sur les fondamentaux du protocole SRT, consultez notre comparaison SRT vs RTMP. Pour le guide complet de configuration de la passerelle, lisez le guide de la passerelle SRT Streaming.