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.
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, selectCustom Output (FFmpeg)
- In the
FFmpeg Output Type
dropdown, selectOutput 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, selectmpegts
. Muxer Settings
typempegts_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)
set50
(if your framerate is 25 FPS, recommended) or60
(if your framerate is 30 FPS) - As
Video Encoder
selectlibx264
- Set
preset
andx-264-params
in yourVideo 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).
- The
- As
Audio Bitrate
use160 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
selectaac
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 tocaller
- The
port
argument should be set to theListener port
(= same port as in the first part of the URL) - The
latency
argument should preferably be set to2000000
(= 2 seconds) - The
passphrase
andpbkeylen
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.
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.