Skip to content

OBS Studio configuration for a multi-track SRT broadcast (max 12 languages)

OBS Studio lets you configure six stereo tracks and send them in a single broadcast using the SRT protocol. To do this, you need OBS Studio’s support for SRT multi-track broadcasting through its Custom FFmpeg Record output.

Event configuration in Clevercast

You can use each stereo track for sending two languages by panning them L+R. This way, you can broadcast a live stream with max 12 languages.

When creating an event in Clevercast, choose 'SRT broadcast with extra audio tracks (Clevercast as listener)' as the broadcast protocol.

It is important to set the correct number of languages per track (1 or 2) in the settings of the event's Broadcast tab in Clevercast. Otherwise, Clevercast won't be able to convert your broadcast into a multilingual live stream.

  • If each stereo track only contains a single language, Languages per track should be set to 1. In that case, OBS must send the same number of audio tracks as the number of audio languages in Clevercast.
  • If each stereo track contains 2 languages (panned L+R), Languages per track should be set to 2. In that case, the number of audio tracks sent by OBS must be half the number of audio languages in Clevercast.

For more info on how to set up and manage the live stream in Clevercast, see this tutorial.

Audio input and OBS Studio settings

A multi-track environment can be created by adding multiple audio devices using “Audio input capture” sources. These audio capture devices can be physical (eg. analogue-to-USB stereo), or virtual (e.g. Dante DVS receive 1-2, ..)

Make sure your input device sends the languages to OBS in the order on the Audio Languages tab in Clevercast.

Right click audio mixer > Advanced Audio Properties

Map audio devices to separate tracks

Output settings for an SRT Caller in OBS Studio when broadcasting 1080p to Clevercast

Output settings for an SRT Caller in OBS Studio when broadcasting 720p to Clevercast

Go to OBS Studio’s Output menu, select the Advanced ‘Output Mode’ and go to the Recording tab. Configure this tab as follows:

  • In the Type dropdown, select Custom Output (FFmpeg)
  • In the FFmpeg Output Type dropdown, select Output to URL
  • In the File Path or URL box, type the URL of the SRT Caller (you need data from Clevercast for constructing the URL, see below)
  • In Container Format dropdown, select mpegts.
  • Muxer Settings type mpegts_start_pid=0x021 mpegts_pmt_start_pid=0x20
  • Select a Video Bitrate that is in accordance with your connection and encoder resources.
  • As Keyframe interval (frames) set 50 (if your framerate is 25 FPS, recommended) or 60 (if your framerate is 30 FPS)
  • As Video Encoder select libx264
  • Set preset and x-264-params in your Video Encoder Settings. For example: preset=veryfast x264-params=vbv-maxrate=6000k:vbv-bufsize=6000k
    • The preset value depends on your CPU power. Set it to ‘veryfast’ if you have enough headroom left while active (with actual content). Otherwise use ‘ultrafast’.
    • The x-264-params value should be used to set ‘vbv-maxrate’ and ‘vbv-bufsize’ to the value of your video bitrate (eg ‘6000k’ if your video bitrate is 6000 kbps).
  • As Audio Bitrate use 160 or 128 Kbps. Note that OBS Studio will use this for each audio track that is broadcasted.
  • Check the number of Audio Tracks that corresponds with the total number of languages in Clevercast (or half the number if you are using stereo tracks with languages panned L+R)
  • As Audio Encoder select aac

The SRT Caller URL can be copied from the Broadcast panel of your Clevercast event. Here is an example of an SRT Caller URL:

srt://213.163.93.140:17001?mode=caller&port=17001&latency=2000000&passphrase=vrslcopmdacrpxdq&pbkeylen=16&inputbw=0&oheadbw=10&maxbw=0

The URL scheme is srt:// followed by the IP address and Port of the SRT listener. The following query-string arguments are being used

  • The mode argument should be set to caller
  • The port argument should be set to the Listener port (= same port as in the first part of the URL)
  • The latency argument should preferably be set to 2000000 (= 2 seconds)
  • The passphrase and pbkeylen arguments can be retrieved and set in the Advanced panel of your event
  • The inputbw=0&oheadbw=10&maxbw=0 arguments are set to limit overhead bandwidth. If these aren’t set, SRT’s built-in error correction mechanism could casue sudden bitrate peaks, which could result in your broadcast stopping with an error (depending on your available upload bandwidth).

In OBS Studio’s Audio menu, the Audio Channels control should be set to mono (if you are sending a single language per track) or stereo (if you are sending two languages per track using L+R panning).

Make sure to configure the other Video and Audio settings in OBS in accordance with our broadcast guidelines.

Starting the broadcast

Before you start your encoder, set the event in Clevercast to Preview. This starts the SRT listener, allowing Clevercast to receive the broadcast.

Then start OBS by pressing the Start Recording button (= NOT the Start Streaming button). After a number of seconds (latency), you will be able to see your broadcast in the Preview Player.

Starting the SRT broadcast to Clevercast with OBS Studio

Please note that if your local network is unstable and your connection is temporarily dropped, the custom FFmpeg record output will not automatically reconnect, requiring you to press the Start Recording button again.