SRT broadcast with multiple audio tracks

The SRT broadcast protocol

The Secure Reliable Transport (SRT) protocol is a new open source broadcast protocol, promoted by the SRT Alliance of which Clevercast is a member. It includes mechanisms for packet recovery while maintaining low latency between encoder and ingest server. It is therefore particularly suited for long-distance and high-quality broadcasting across unreliable and unpredictable networks like the public internet. Because of its reliability over long distances, we recommend it for broadcasts from outside of Europe.

Unlike RTMP, the SRT protocol has built-in mechanisms for authentication and encryption. SRT can also be used for single-language broadcasts, but the ability to add multiple (stereo) audio tracks to a single video broadcast makes it very suitable for multilingual live streaming.

The possible number of languages depends on your SRT encoder. Each stereo track can be used to send a language in stereo to Clevercast, or it can be used to send two languages in mono (L+R channels). This way, you can send at least two languages with every SRT encoder. Hardware encoders like Makito X support 16 languages in a very reliable fashion. Using vMix, you can send a single track consisting of 8 channels (for 8 languages, see below).

Note: before you start broadcasting, ensure that the status of your Clevercast event is set to Preview, Started or Paused. No SRT listener is active while the event status is Waiting or Ended, so your broadcast won’t be ingested.

Event settings for SRT broadcasts

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 (= 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 the 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.
  • If you use vMix to send more than 2 channels in a single track, you should enter the number of channels.

The ‘Broadcast panel’ on the left of your Event page will contain the order of the languages. Make sure your input sends the languages to your encoder in the same order. Your encoder must send the same number of tracks as the number of languages in Clevercast, or half the number if Languages per Track is set to 2 (stereo tracks with languages panned L+R).

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

Streaming 1 or 2 languages with any encoder

Streaming one or two languages is possible with any SRT encoder. If your encoder only supports a single stereo track, you can still stream 2 languages by:

  1. Setting Languages per Track to 2 in Clevercast
  2. Configuring your encoder so both languages are panned L+R

For example, Wirecast (currently) only supports a single stereo track.

To send 2 languages with vMix, first update the vMix output settings to enable SRT. Select the ‘Caller’ type and a ‘Stereo’ channel for 2 languages. Fill in the ‘Hostname‘, ‘Port‘ and ‘Passphrase‘ with data from the ‘Broadcast‘ and ‘Advanced‘ panels in Clevercast.

OBS Studio has 2 options for SRT broadcasting. If you only need one or two languages, we recommend to use the regular Streaming Output option (1). This allows you to do a local recording while broadcasting. Your broadcast will also continue when interrupted (which isn’t the case for option 2). Make sure to select a single audio track (in the Output tab) and a mono or stereo channel (in the Audio tab). Then copy the ‘SRT Caller URL‘ from Clevercast to the ‘Server‘ field in OBS Studio (in the ‘Stream’ tab).

Setting the SRT caller in OBS (for 1 or 2 languages)

You can leave the ‘Stream Key’ empty in OBS. Some query-string arguments in the ‘SRT Caller URL’ are only necessary for option 2 (see below), but they will be ignored by OBS.

Streaming up to 8 languages with vMix

While vMix doesn’t support broadcasting multiple audio tracks, you can configure it to send a single track with up to 8 audio channels to Clevercast, for a multilingual live stream with up to 8 mono languages. To do this, create an event in Clevercast with ‘SRT Listener’ as broadcast protocol. In the advanced settings, set ‘Languages per track’ to 8 (or the number of channels you are sending) and add the number of languages required. For more info on how to set up vMix, see this tutorial for broadcasting 8 languages using vMix.

Streaming up to 12 languages with OBS studio

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). In that case, you need to use option 2 in this OBS Studio guide to configure and broadcast the audio tracks. 

For more info, see our online guide.

Streaming up to 16 languages with hardware encoders

This number of languages is possible with SRT hardware encoders, like Haivision’s Makito X or Intinor Direct Link. For more encoder brands, see the SRT Alliance’s members page. If you want to test your SRT encoder with Clevercast, feel free to ask.

The set up is the same as in the previous chapter:

  • 8 stereo or mono languages: in Clevercast, keep ‘Languages per track’ set to 1
  • 16 mono languages: set ‘Languages per track’ to 2 in Clevercast, and pan the languages L+R in your input and encoder (for every audio track).

From the ‘Broadcast’ panel in Clevercast, copy the domain (eg “mine.origin01.live-srt.rambla.be”) and port to the Makito configuration (‘Address’ and ‘Destination Port’). From the ‘Advanced’ panel in Clevercast, copy the passphrase to the Makito configuration. Note: other query-string arguments of the ‘Caller URL’ in Clevercast may be ignored.

Below is an example of a Makito X set up for 4 stereo/mono languages or 8 mono languages (depending if you are L+R panning the languages).

Haivision Makito X – setting up 4 audio tracks (mono or stereo)

Haivision Makito X – setting up streaming parameters

Haivision Makito X – make sure to set the same passphrase as in Clevercast

Streaming up to 32 languages

Some high-end hardware encoders, like Haivision’s Makito X4 support 16 stereo tracks. Theoretically, this allows you to send a live stream with up to 16 stereo or mono languages, or 32 mono languages. In practice, 32 mono languages is only possible if your live production hardware also allows you to send 32 inputs to your encoder.

Want to try it yourself?

Try Now