Implement captions and subtitles by including:
By default, CEA-608 data is preserved. Additionally, you may choose to convert it to WebVTT.
A CEA-708 channel includes CEA-608 captions for the purpose of backwards-compatibility.
Embedded Plain Text Captions/Subtitles
Embedded plain text captions or subtitles (e.g., SRT subtitles) will be converted to WebVTT.
Timed Text Markup Language (TTML)
A sidecar TTML file will be converted to both CEA-608 and WebVTT.
Fragmented TTML is supported for DASH VOD.
Scenarist Closed Captions (SCC)
A sidecar SCC file will be converted to CEA-608.
CEA-608 only supports a limited number of tracks and has limited support for non-Latin characters, while WebVTT supports additional subtitle/caption tracks and provides full Unicode character support.
Device support for CEA-608 and WebVTT is indicated below.
OS | CEA-608 |
WebVTT |
---|---|---|
iOS version 6 or higher |
*Supported for H.264 streams only. Convert CEA-608 captions to WebVTT for H.265 streams. |
|
Android - our player library |
|
|
Windows 8 RT - our player library |
|
|
Our Flash Player Deprecated |
|
|
Roku |
|
|
BB10 |
|
|
CEA-608 data is preserved when embedded within a container format.
Key information:
Automatically convert CEA-608/708A CEA-708 channel includes CEA-608 captions for the purpose of backwards-compatibility. Enabling this option will only convert those CEA-608 captions to WebVTT when a CEA-708 channel is present. channel to WebVTT via the render_608 and render_608_buffer parameters.
SDI only
Configure the Live Slicer to look for CEA-608 data in the horizontal ancillary data of an SDI signal via either the ancillary_lines or the ancillary_scan parameter.
Embedded plain text captions and subtitles (e.g., SRT subtitles) will be converted to WebVTT when a file contains a track marked as subtitle data.
Key information:
By default, a viewer may select from any of the subtitle language tracks associated with your VOD content. Your asset's language tracks are available even when viewing ad breaks that do not contain those language tracks. This allows the viewer to select a subtitle language track associated with the requested content at any time during the playback session. For example, this behavior allows a viewer to immediately select the desired subtitle language track upon requesting your content, regardless of whether they are viewing a pre-roll ad.
If the viewer is currently watching your main content, then they will only be able to select from the subtitle language track(s) that have been incorporated into that asset. However, if a viewer is currently watching an ad, then the set of subtitle language tracks that will be available for selection varies according to those present in the asset and the ad that is currently being played back.
The following table shows how the set of language tracks present within an asset and the currently playing ad affects the set of subtitle language tracks that are available for selection.
Asset's Language Track(s) |
Ad's Language Track(s) |
|
Available Language Track(s) |
---|---|---|---|
English |
None |
= |
English |
English and Spanish |
English |
= |
English and Spanish |
English and Spanish |
French |
= |
English, Spanish, and FrenchThis language track will only be available for selection while playing the ad that contains it. |
None |
English |
= |
|
None |
None |
= |
None |
Override this behavior by setting one of the following query string parameters within the playback URL:
Query String Parameters | Description |
---|---|
Set this parameter to 1 to only display the available language tracks. This parameter overrides the dash_subtitles_merge parameter. |
|
Set this parameter to 0 to only display the language tracks that have been embedded within the asset. |
Leverage WebVTT tracks when streaming a live event or live channel via HLS by adding the following query string parameter to the playback URL:
Key information:
This parameter is only required when streaming a live event or live channel via HLS. Streaming VOD via HLS will display subtitles regardless of whether this parameter is present.
Ads and system slate do not have subtitle tracks. Therefore, WebVTT should not be enabled if your HLS live stream contains ads or system slate.
You should only enable WebVTT when your HLS live stream does not have ads and all slate has been sliced with subtitle tracks.
Add closed captions from one or more DVB teletext pages by converting it to WebVTT. Convert DVB teletext to WebVTT by defining the render_teletext parameter in your Live Slicer configuration file.
Key information:
Captions and subtitles within a sidecar TTML file will be converted to both CEA-608 and WebVTT whenever possible.
Key information:
The Slicer supports a subset of the TTML standard as indicated below.
Please make sure that your TTML files conform to the following layout:
<?xml version="1.0" encoding="utf-8"?> <tt xml:lang="en" xmlns="http://www.w3.org/2006/04/ttaf1" xmlns:tts="http://www.w3.org/2006/04/ttaf1#styling"> <head> <styling> <style id="defaultCaption" tts:fontStyle="normal" tts:textAlign="center" /> ... </styling> </head> <body style="defaultCaption" id="thebody"> <div xml:lang="en"> <p begin="00:00:01.420" end="00:00:02.620"><metadata ccrow="14" cccol="3" /><span tts:fontStyle="italic">THIS IS SOME TEXT...</span></p> ... </div> ... </body> </tt>
Please ensure that your tags conform to the following specification:
Style Attributes
The following attributes may be applied to style and p tags:
Attribute | Supported Values |
---|---|
tts:fontStyle |
"normal" and "italic" |
tts:textAlign |
"left", "right" and "center" |
Default Style Attributes
The following attribute may be applied to body, div, and p tags:
Attribute | Supported Values |
---|---|
style |
ID of a style to use as the default style |
The following attribute may be applied to div tags:
Attribute | Supported Values |
---|---|
xml:lang |
The RFC 5646 language code for the track |
p tags must contain begin and end attributes to indicate when captions/subtitles should be shown.
Attribute | Supported Values |
---|---|
begin |
hh:mm:ss.sss formatted timestamp |
end |
hh:mm:ss.sss formatted timestamp |
span tags may be used to set the tts:fontStyle attribute for a portion of text within a p element.
p tags may contain a metadata child tag to indicate the CEA-608 column and row position.
Attribute | Supported Values |
---|---|
ccrow |
0-based row number. Must be 0-3 or 11-14 |
cccol |
0-based column number. Must be 0-31 |
All TTML tracks will be converted WebVTT format, but only one track will be converted to CEA-608. The Slicer will choose the track with the fewest characters that cannot be converted to the CEA-608 default character set.
Key information:
CEA-608 line numbers are 1-based, while TTML row numbers are 0-based.
Example:
TTML row 14 refers to CEA-608 line 15.
The Slicer will output a fragmented TTML for DASH VOD for a TTML document or a DVB-TTML stream when the following conditions are met:
Pass one of the following set of options to the Slicer:
TTML Document:
DVB-TTML Stream:
Set show_dash_subtitles=imsc within the playback URL's query string.
Sample manifest request:
Captions and subtitles within a sidecar SCC file will be converted to CEA-608. It will also be converted to WebVTT when the render_608 parameter is passed. Use the scc parameter to define the location of a sidecar SCC file. The Slicer will replace embedded captions or subtitles with the data defined within the SCC file.
The WebVTT codec is automatically initialized for VOD playback of an asset that leverages that codec. This occurs regardless of whether a pre-roll ad contains that codec.
The WebVTT codec may not be initialized when the initial request is for a pre-roll ad that does not contain the WebVTT codec. This will prevent the codec from working within that playback session.
Most DASH players initialize the WebVTT codec at the start of playback. This poses a challenge when the initial request is for a pre-roll ad that does not contain the WebVTT codec. If the player does not detect the WebVTT codec at the start of playback, then it may not initialize it regardless of whether the main content uses it.
Ensure that the WebVTT codec is always initialized by playing a short clip that contains it at the start of playback. This clip, which is known as a codec initialization clip, should be nearly undetectable during playback. Add this clip by including one of the following parameters within the playback URL:
Parameter | Description |
---|---|
Set this parameter to 1 to only prepend a codec initialization clip to the manifest file when the main content contains WebVTT subtitles. |
|
Set this parameter to 1 to always prepend a codec initialization clip to the manifest file. |