How to broadcast up to 12 languages with OBS Studio (SRT)

Clevercast allows you to send an SRT broadcast with multiple audio tracks which results in a multilingual live stream. OBS Studio lets you configure six stereo tracks, which allows you to produce a live stream with up to 12 languages (by panning them L+R). To do this, you need OBS Studio’s support for SRT multi-track broadcasting through its Custom FFmpeg Record output.

This guide explains how to set up an SRT multilingual event in Clevercast, how to use stereo channels to double your number of languages, and how to configure OBS Studio.

Please note that:

  • hardware encoders usually provide a more reliable stream, more tracks and more options. If you have a hardware encoder that supports multiple audio tracks, we recommend using it.
  • 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
  • if you just need 2 languages, you can also use vMix or OBS Studio’s streaming output (option 1 in the OBS manual page). In that case, pan the audio streams L+R and change the ‘Languages per Track’ setting in your Clevercast event to 2. See the SRT overview page and our Broadcasting Guidelines for more info.
  • Clevercast also allows you to broadcast multiple audio channels using RTMP surround sound and has its own Translate at Home protocol for remote simultaneous interpretation via the browser.


1. Set up your multilingual event

In Clevercast, an Event is used as name for a live stream. To start a new multilingual live stream, go to the event overview page. Click on the Create Multilingual menu on the left side of the screen.

A popup dialog will be displayed:

  • Enter the name of your live stream
  • Select SRT Listener (OBS Studio will act as the SRT Caller)
  • Select your broadcast’s original language as the ‘Default Language’. If your floor audio contains multiple languages, you can select Original instead of a language.
  • Press the ‘Create’ button

A multi-language event will be created. You can now add the additional language(s) that you will be broadcasting. Go to the Advanced panel at the bottom of the page and select the Additional Languages you need. The number of languages you can select depends on your Clevercast plan.

Advanced settings for an SRT event

You can also change the number of languages per track:

  • if each track contains a single language (mono or stereo), set Languages per Track to 1 (default)
  • If you are using stereo tracks to stream 2 languages (panned L+R), make sure to set Languages per Track to 2. In this case, Clevercast will turn the stereo channels into two mono languages.

You can also set or copy the SRT Passphrase  (authentication) and SRT Key Length  (encryption) to be used in your encoder settings


2. Audio Input and OBS Studio settings

The Broadcast panel on the left of your Event page in Clevercast will contain the order of the languages. Make sure your input sends the languages to OBS in the same order. OBS must send the same number of tracks as the number of languages in Clevercast (or half the number if you are using stereo tracks with languages panned L+R).

For more than 2 audio track, you must use option 2 in this OBS Studio guide, using Custom FFmpeg Record output.

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 (eg. Dante DVS receive 1-2, ..)

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:


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 cause 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 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 broadcasting guidelines.


3. Test your broadcast

Before you start your encoder, press the Change Event Status button in Clevercast and select ‘Preview Broadcast’. This will start server-side processing of your stream, required for the SRT listener to start.

Then start OBS by pressing the Start Recording button (= NOT the Start Streaming button). After about a number of seconds (latency), you will be able to see your broadcast in the Preview Player. Note that the preview is only visible to you as Clevercast admin. Your viewers will not be able to see the video until the event is started.

Starting the SRT broadcast to Clevercast with OBS Studio.

Clevercast transmuxes and transcodes the incoming streams and delivers the result to your viewers using adaptive streaming. Press the headset menu in the preview player to change the language. Clevercast player can be embedded in your site using the embed code below the players. For a responsive embed code, press the ‘Customize’ button, select ‘Use Responsive Embed Code’ and use the Copy button in the popup dialog.


4. Managing the live stream

When you are ready to start the live stream, press the Start Event button: the live stream will automatically become available to your viewers in the embedded player. You will also see the stream start in the ‘Public Livestream’ player.

After you have finished broadcasting, set the Event status to ‘Ended’ or reset it to ‘Waiting for Broadcast. This will stop your consumption of server-side resources.