Subtitles and LIVE ingest

Unified Origin - Live supports ingest of subtitles samples stored in a fragmented MP4 container. The encoder should POST the subtitles one track per language to the publishing point.

Fragments consist of either VTTCue samples (text/wvtt) or XML-based TTML fragments (EBU-TT, SMPTE-TT, DFXP or CFF-TT) using timing attributes that are either track-relative (subt/stpp) or fragment-relative (text/dfxp).

DFXP (TTML) is preferred as it is the most constrained format. Timing attributes @begin and @end are expected in sibling elements under tt/body/div/p. The track language is read from the track's media header.

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, with usage 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. Player support for more current playout formats like MPEG-DASH can even vary from month to month. Please make sure you are using the latest version of your player and make yourself aware of its limitations regarding subtitle support.


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

Subtitles for MPEG-DASH

In Live playout DASH players may not fully support multiple subtitle tracks. TTML-based subtitles are presented using stpp codec, with timing attributes relative to start of track, usually (1970-01-01 00:00:00 UTC). The wvtt codec follows ISO/IEC 14496-30:2014 - Web Video Text 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:


If both WVTT and TTML-based subtitle are ingested for a given language, both tracks will be advertised in the master playlist. To exclude the TTML-based subtitles from the playlist, use dynamic track selection, for instance: .../.m3u8?filter=FourCC=="wvtt"||type!="textstream"

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.