Knowledge Base > Streaming > SRT Protocol Streaming Guide

SRT Protocol Streaming Guide

Play SRT in OBS Studio

One can use either VLC Source or Media Source.
VLC restrictions: SRT must be in caller mode (this is the default) and not in listener mode.

  • In a VLC Source in obs :

    • Add a Path/URL
    • The URL must be in caller mode : srt://IP:PORT and not in listener mode; this implies the stream played in obs must be sent from an IP in listener mode.
  • In a Media Source, uncheck 'Local File'.

    • For 'Input', enter the SRT URL. If the stream is received from a server (in listener mode), the SRT connection will be in mode=caller (which is the default one so the option can be omitted). If however the stream is received straight from an encoder in caller mode, add the mode=listener to the URL (see screenshot).
    • If you experience reconnection issues, some users report that the parameter timeout=5000000 helped them. So enter the URL as srt://IP:PORT?mode=listener&timeout=5000000
    • For 'Input Format', enter mpegts.

Stream with SRT

  1. Go to Settings > Stream
  2. In the Service dropdown, select Custom.
  3. Enter the SRT URL in the form: srt://IP:port (OBS Studio will also accept any protocol relying on MPEGTS container and supported by FFmpeg, therefore UDP, TCP, RTP, etc.)
  4. Don't enter anything for the key. It's not used.

OBS Studio will accept options in the syntax: srt://IP:port?option1=value1&option2=value2. The full list of options is those supported by FFmpeg:

The most important option is latency in microseconds (μs). It has a default value of 120 ms = 120 000 μs and should be at least 2.5 * (the round-trip time between encoder and ingest server, in ms).
Ex: for a latency of 1 sec, set latency=1000000 .

Another sometimes required option is the mode, which can be caller, listener or rendezvous. caller opens client connection. listener starts server to listen for incoming connections. rendezvous use Rendezvous connection mode which is a bi-directional link where the first to initiate handshake is considered caller. The default value is caller and usually need not be set for OBS Studio since it'll be in caller mode normally.

A case where it's useful to set the mode to listener is when sending a stream to VLC. OBS Studio then acts as a server to VLC, which is the client. On a LAN for instance, set OBS Studio to srt:// to establish a connection to VLC which you point to srt://