Subtitles and LIVE ingest

Unified Origin - Live supports TTML subtitles stored in an MP4 container. Use one of the TTML formats (EBU-TT, SMPTE-TT, TTML-TT or CFF-TT) when configuring the encoder. The encoder then will POST the subtitles as a text track to the publishing point.

DFXP (TTML) is preferred as it is the most constrained format.

The track_language is the country code as specified in ISO 639-2/T.

Embedded Subtitles

CEA-608 or CEA-708 closed captions may be embedded in the AVC video stream.

Since CEA-608 embedded closed captions are embedded in the video track, the language of the closed captions is set to the language of the video track.

There are some limitations when using this technique to provide the subtitle tracks. There is a track limit, and usage is limited to two language tracks. As the tracks are embedded they are not available for styling or manipulation by the player.

Because of the limitations associated with this format, it is recommended to use TTML subtitles for best cross format compatibility and player support.

Subtitle playback

Some of the out-of-the-box players have support for showing subtitles or providing a language selection box.

However subtitle support varies greatly from player to player. In addition player support for more current playout formats like MPEG-DASH can vary from month to month. Please make sure you are using the latest version of your player and you are aware of it's limitations regarding subtitle support.

Toggling subtitles on and off at the encoder side is not supported: streams are announced once and should stay the same during the event.

Subtitles for MPEG-DASH

In Live playout DASH players may not be fully support multiple subtitle tracks.

Subtitles for HTTP Live Streaming


Subtitles for HLS require at least version 4 of the HLS protocol.

Make sure to set this using the --hls.client_manifest_version option:


Subtitles for HTTP Smooth Streaming

Enabling subtitles in the Silverlight player (MMP Player Framework 2.7) is done by adding the following value to the InitParams parameter:

param name="InitParams" value="enablecaptions=true, selectedcaptionstream=textstream_eng, mediaurl=...

Note that parameter for the 'selectedcaptionstream' is the name of the text track as given by the @Name attribute in the Smooth Streaming client manifest.