Clevercast allows you to send an SRT broadcast with one or more audio tracks, each containing one or two languages. The SRT protocol is reliable for broadcasts over unreliable networks and very long distances. It may contain multiple audio tracks (of which the number depends on your encoder).
If you only need two languages, you can send your broadcast with any SRT encoder (eg vMix). This is done by using a stereo channel, panning your languages L+R and setting the Languages per Track in Clevercast to 2. If you’re looking for example configurations for a specific number of languages or a specific encoder (vMix, Makito X), see our post on SRT support in Clevercast.
This guide explains how to send an SRT broadcast with multiple audio tracks, supported by OBS Studio and hardware encoders like Haivision Makito X and Intinor Direct Link. It explains how to set up an SRT multilingual event in Clevercast and how you can use stereo channels to double your number of languages.
This guide also explains how OBS Studio supports SRT multi-track broadcasting through its Custom FFmpeg Record output.
Please note that:
- OBS Studio lets you configure six tracks, which allow you to produce a live stream with 12 languages
- 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 our post on SRT support 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 allowing 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, select:
- Enter the name of your live stream
- Select SRT Listener (= in most cases, also if you’re using OBS Studio) or SRT Caller (= only if your encoder acts as the listener) as the ‘Broadcast Protocol’.
- 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.
In the Advanced Panel also make the following changes:
- Set Languages per Track to 1 when each track contains a single language (mono or stereo).
- If you are using stereo tracks to pan 2 languages L+R, make sure to set Languages per Track to 2. In this case, Clevercast will turn the stereo channels into two mono languages.
- Set your SRT Passphrase: this must consist of 16 alphanumeric characters.
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 your encoder in the same order. Your encoder (eg OBS Studio) 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).
Specific for OBS Studio, use option 2 in this OBS Studio guide to configure the audio tracks. This guide contains the instructions to configure the Custom FFmpeg Recording output. To configure this tab, you will also need some information from the Clevercast event page.
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
Custom Output (FFmpeg)
- In the
FFmpeg Output Typedropdown, select
Output to URL
- In the
File Path or URLbox, type the URL of the SRT Caller (you need data from Clevercast for constructing the URL, see below)
Container Formatdropdown, select
- Select a
Video Bitratethat is in accordance with your connection and encoder resources.
Keyframe interval (frames)set
50(if your framerate is 25 FPS, recommended) or
60(if your framerate is 30 FPS)
Video Encoder Settings. For example:
presetvalue depends on your CPU power. Set it to ‘veryfast’ if you have enough headroom left while active (with actual content). Otherwise use ‘ultrafast’.
x-264-paramsvalue 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).
128 Kbps(or more in special circumstances)
- Check the number of
Audio Tracksthat corresponds with the total number of languages in Clevercast (or half the number if you are using stereo tracks with languages panned L+R)
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:
modeargument should be set to
portargument should be set to the
Listener port(= same port as in the first part of the URL)
latencyargument should preferably be set to
2000000(= 2 seconds)
passphraseargument can be set in the Advanced panel of your event
pbkeylenargument must be set to the length of your passphrase
inputbw=0&oheadbw=10&maxbw=0arguments 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.
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.