

# Setting up captions in outputs
<a name="set-up-captions-in-outputs"></a>

The location of the captions in a job depends on your output captions format: Your captions might be in the same output as your video, a separate output in the same output group as your video, or in an entirely separate output group. How you set up multiple captions tracks also depends on the output captions format. 

For a full list of supported input and output captions, see [Captions reference tables](captions-support-tables.md).

For information about how to set up captions in your input, see [Setting up input captions](including-captions.md).

The following procedure shows how to set up captions for different outputs.

**To set up captions for different outputs**

1. Open the MediaConvert console at [https://console.aws.amazon.com/mediaconvert](https://console.aws.amazon.com/mediaconvert).

1. Choose **Create job**.

1. Set up your input, output groups, and outputs for video and audio, as described in [Tutorial: Configuring job settings](setting-up-a-job.md) and [Creating outputs](output-settings.md).

1. Create input captions selectors as described in [Creating input captions selectors](including-captions.md#create-input-caption-selectors).

1. Determine where in your job to specify the captions. This choice depends on the output captions format. Consult the relevant topic below to look this up.

1. In the left pane of the **Create job** page, choose the appropriate output from the list of outputs.

1. Under **Encoding settings**, choose **Add caption**. This displays a captions settings area under **Encoding settings**. 

1. If your output captions format requires a separate group of captions settings for each track in the output, choose **Add captions** again until you have one captions group for each track. To determine whether you need one captions settings group for all tracks or one for each track, see the relevant topic below.

1. Under **Encoding settings**, choose **Captions 1** from the list.

1. Under **Captions source**, choose a captions selector. This selects the track or tracks that you associated with the selector when you set up your input, so that AWS Elemental MediaConvert will include those captions in this output.

1. Under **Destination type**, choose an output captions format. Check [Supported input captions, within video containers](captions-support-tables-by-container-type.md) to ensure that you are choosing a supported format.

1. Provide values for any additional fields as described in the relevant topic below.



**Topics**
+ [CEA/EIA-608 and CEA/EIA-708 (embedded) output captions](embedded-output-captions.md)
+ [DVB-Sub output captions](dvb-sub-output-captions.md)
+ [IMSC, TTML, and WebVTT (sidecar) output captions](ttml-and-webvtt-output-captions.md)
+ [SCC, SRT, and SMI (sidecar) output captions](scc-srt-output-captions.md)
+ [Teletext output captions](teletext-output-captions.md)
+ [Burn-in output captions](burn-in-output-captions.md)
+ [Settings for accessibility captions](accessibility-captions.md)

# CEA/EIA-608 and CEA/EIA-708 (embedded) output captions
<a name="embedded-output-captions"></a>

 This section covers how to configure embedded output captions in AWS Elemental MediaConvert. The main topics include:
+ Where to specify the captions.
+ How to specify multiple captions tracks.
+ Embedded and ancillary captions in MXF outputs.

## Where to specify the captions
<a name="where-embedded-output-captions"></a>

Put your captions in the same output group and the same output as your video.

## How to specify multiple captions tracks
<a name="multilang-embedded-output-captions"></a>
+ If your input captions format is embedded (that is, you are passing through embedded-to-embedded), you need to create only one group of captions settings. The captions selector that you choose under **Captions source** includes all tracks from the input.
+ If your input captions are two SCC files, you can create output captions as two output captions channels that are embedded in your output video stream. For more information, see [Converting dual SCC input files to embedded captions](converting-dual-scc-input-files-to-embedded-captions.md).
+ If your input captions are not embedded or SCC, you can include only one captions track per output. In each output, include one group of captions settings. Under **Captions source**, choose the selector that is set up for the track that you want to include.

## Embedded and ancillary captions in MXF outputs
<a name="embedded-and-ancillary-captions-in-mxf-outputs"></a>

Whether your MXF output can contain ancillary captions depends on the MXF profile:
+ MXF XDCAM HD: This MXF profile specifies ancillary data in the smpte 436 track. With these outputs, MediaConvert copies your embedded captions to the smpte 436 ancillary track in addition to including it in the video stream.
+ MXF D-10: This MXF profile specification doesn't allow for ancillary data. Therefore, your MXF D-10 outputs only have captions embedded in the video stream.

MediaConvert determines an output's MXF profile based on the values for the following encoding settings:
+ Resolution
+ Frame rate
+ Video codec profile
+ Interlace mode

For information about which values for these settings are valid for which MXF profile, see the relevant specifications. For XDCAM HD, see [RDD 9:2009 - SMPTE Standard Doc - MXF Interoperability Specification of Sony MPEG Long GOP Products](https://ieeexplore.ieee.org/document/7290306) in the IEEE Xplore Digital Library. For MXF D-10, see [ST 356:2001 - SMPTE Standard - For Television — Type D-10 Stream Specifications — MPEG-2 4:2:2P @ ML for 525/60 and 625/50](https://ieeexplore.ieee.org/document/7290684).

# DVB-Sub output captions
<a name="dvb-sub-output-captions"></a>

 This section covers how to configure DVB-Sub output captions in AWS Elemental MediaConvert. The main topics include:
+ Where to specify the captions.
+ How to specify multiple captions tracks.
+ How to specify the font script.

## Where to specify the captions
<a name="where-dvb-sub-output-captions"></a>

Put your captions in the same output group and the same output as your video.

## How to specify multiple captions tracks
<a name="multilang-dvb-sub-output-captions"></a>
+ If your input captions are the same format as your output captions (passthrough), you need to create only one group of captions settings. The captions selector that you choose under **Captions source** includes all tracks from the input.
+ If your input captions are in a different format, create one group of captions settings for each track. Put each group of captions settings in the same output. They will appear in the list of settings groups as Captions 1, Captions 2, and so forth. In each group of settings, choose the captions selector under **Captions source** that is set up for the track that you want to include.

## How to specify the font script
<a name="how-to-specify-lang-script-dvb-sub"></a>

AWS Elemental MediaConvert automatically selects the appropriate script for your captions, based on the language that you specify in the output captions settings. If the language that you choose has more than one possible script, specify the script that you want.

**To ensure that the service uses the correct font script**

1. In the **Captions** section under **Encoding settings**, for **Language**, choose the language of the captions text.

1. If the language that you specify has more than one possible script, use **Font script** to specify the script.

   For example, if you choose **Chinese** (ZH) for **Language**, use **Font script** to choose either **Simplified Chinese** or **Traditional Chinese**. In this case, if you don’t specify a value for **Font script**, the service defaults to simplified Chinese. 
**Tip**  
In most cases, for **Font script** you can keep the default value of **Automatic**. When you do, the service chooses the script based on the language of the captions text.

# IMSC, TTML, and WebVTT (sidecar) output captions
<a name="ttml-and-webvtt-output-captions"></a>

 This section covers how to configure IMSC, TTML, and WebVTT (sidecar) output captions in AWS Elemental MediaConvert. The main topics include:
+ Where to specify the captions.
+ How to specify multiple captions tracks.
+ Sidecar captions container options.

If your output captions are IMSC, TTML or WebVTT format, set them up in your outputs according to the following information. For restrictions on IMSC support, see [IMSC requirements](imsc-captions-support.md).

## Where to specify the captions
<a name="where-ttml-and-webvtt-output-captions"></a>

Put your captions in the same output group, but a different output from your video.

After you add captions to an output, delete the **Video** and **Audio 1** groups of settings that the service automatically created with the output.

**To delete the Video and Audio 1 groups of settings**

1. On the **Create job** page, in the **Job** pane on the left, under **Output groups**, choose the output that contains the groups of settings that you want to delete.

1. The **Video** group of settings is automatically displayed in the **Stream settings** section. Choose the **Remove video selector** button.

1. The **Audio 1** group of settings is automatically displayed in the **Stream settings** section. Choose the **Remove** button.

## How to specify multiple captions tracks
<a name="multilang-ttml-and-webvtt-output-captions"></a>

Put each captions track in its own output.

**Note**  
The captions track that you specify first in your job is signaled as the default track in the HLS manifest.

## Sidecar captions container options
<a name="sidecar-captions-container-options"></a>

Depending on your output group, you can choose the captions container for IMSC and TTML captions outputs.

For **DASH ISO** output groups, you can choose from these:
+ Fragmented MP4 (`.fmp4`)
+ Raw (`.xml` for IMSC, `.ttml` for TTML)

For all other output groups, IMSC and TTML files are raw.

**To specify the captions container for IMSC and TTML captions in DASH ISO output groups**

1. Set up the outputs in your **DASH ISO** output group as described in [Creating outputs in ABR streaming output groups](setting-up-a-job.md#create-outputs-in-abr-streaming-output-groups). Put captions in a separate output.

1. On the **Create job** page, in the **Job** pane on the left, choose the captions output.

1. In the **Output settings** section on the right, choose **Container settings**, and then enable **DASH container settings**.

1. For **Captions container**, keep the default **Raw** or choose **Fragmented MPEG-4**.

# SCC, SRT, and SMI (sidecar) output captions
<a name="scc-srt-output-captions"></a>

 This section covers how to configure SCC, SRT, and SMI (sidecar) output captions in AWS Elemental MediaConvert. The main topics include:
+ Where to specify the captions.
+ How to specify multiple captions tracks.

## Where to specify the captions
<a name="where-scc-srt-output-captions"></a>

Put your captions in the same output group, but a different output from your video.

After you add captions to an output, delete the **Video** and **Audio 1** groups of settings that the service automatically created with the output.

**To delete the Video and Audio 1 groups of settings**

1. On the **Create job** page, in the **Job** pane on the left, under **Output groups**, choose the output that contains the groups of settings that you want to delete.

1. The **Video** group of settings is automatically displayed in the **Stream settings** section. Choose the **Remove video selector** button.

1. The **Audio 1** group of settings is automatically displayed in the **Stream settings** section. Choose the **Remove** button.

## How to specify multiple captions tracks
<a name="multilang-scc-srt-output-captions"></a>

 For each SRT, SCC or SMI output you must have one output per caption selector. In the caption output, choose the captions selector under **Captions source** that is set up for the track that you want to include. They will appear in the list of settings groups as **Captions Selector 1**, **Captions Selector 2**, and so forth. 

# Teletext output captions
<a name="teletext-output-captions"></a>

 This section covers how to configure teletext output captions in AWS Elemental MediaConvert. The main topics include:
+ Teletext to Teletext passthrough.
+ Teletext to Teletext, page remapping.
+ Teletext from other captions formats.

How you set up your output Teletext captions depends on whether you want to move the captions to different Teletext pages or to just pass through your captions exactly from the input to the output.

## Teletext to Teletext passthrough
<a name="teletext-to-teletext-passthrough"></a>

When your input captions format is Teletext and you want your output captions to be on the same pages, with the same styling, as the input, then you can pass through the input captions to your output. To do so, set up your captions this way:
+ Make sure that your input captions are set up with one captions selector. For more information, see [Teletext input captions](teletext.md).
+ In the same output group and same output as your video, create one captions tab. This one captions tab represents all of your output captions, regardless of the number of output Teletext pages you have.
+ In your output captions tab, choose your input captions selector for **Captions source**.
+ Don't specify values for any other settings on the output captions tab.

When you work directly in your JSON job specification, one captions tab corresponds to one child of `CaptionDescriptions`.

## Teletext to Teletext, page remapping
<a name="teletext-to-teletext-page-remapping"></a>

When your input captions format is Teletext and, in your output, you want to change the Teletext pages that your captions are on, you specify the pages in the input and output. To do so, set up your captions this way:
+ Make sure that your input captions are set up with one captions selector for each Teletext page and that you specify the page number in the settings for each input captions selector. For more information, see [Teletext input captions](teletext.md).
+ In the same output group and same output as your video, create one captions tab for each output Teletext page.
+ In each output captions tab, choose one of your input captions selectors for **Captions source**.
+ In each output captions tab, for **Page number**, specify the Teletext page number that you want for those captions in your output. Optionally, provide values for **Language**, **Description**, and **Page types**.

## Teletext from other captions formats
<a name="teletext-from-other-captions-formats"></a>

When your input captions are in a format other than Teletext, you must specify the Teletext pages for your output captions. MediaConvert supports these captions workflows:
+ A single input captions track to a single output Teletext page.
+ A single input captions track to multiple output Teletext pages. Each output page duplicates the contents of the others.
+ Multiple input captions tracks to multiple output Teletext pages. You use captions selectors to specify which captions to include on each output Teletext page.

Set up your captions like this:
+ Make sure that your input captions are set up with one captions selector for each captions track that you intend to map to a Teletext page. For more information, see [Creating input captions selectors](including-captions.md#create-input-caption-selectors).
+ In the same output group and same output as your video, create one captions tab for each output Teletext page.
+ In each output captions tab, choose one of your input captions selectors for **Captions source**.
+ In each output captions tab, for **Page number**, specify the Teletext page number that you want for those captions in your output. Optionally, provide values for **Language** and **Description**.

# Burn-in output captions
<a name="burn-in-output-captions"></a>

 This section covers how to configure burn-in output captions in AWS Elemental MediaConvert. The main topics include:
+ Where to specify the captions.
+ How to specify multiple captions tracks.
+ How to use style passthrough.
+ Non-english fonts and unsupported characters.

*Burn-in* is a way to deliver captions, rather than a captions format. Burn-in writes the captions directly on your video frames, replacing pixels of video content with the captions. If you want burn-in captions in an output, set up the captions according to the following information.

## Where to specify the captions
<a name="where-burn-in-output-captions"></a>

Put your captions in the same output group and the same output as your video.

## How to specify multiple captions tracks
<a name="multilang-burn-in-output-captions"></a>

You can burn in only one track of captions in each output.

## How to use style passthrough
<a name="how-to-use-style-passthrough"></a>

You can choose how to stylize the burn-in caption text that appears in your output video. There are a few options, including style passthrough, default settings, or manual overrides. 

When you set Style passthrough to Enabled, MediaConvert uses the available style and position information from your input captions. Note that MediaConvert uses default settings for any missing style information. 

MediaConvert supports style passthrough for the following input caption formats: 
+ Ancillary
+ Embedded
+ SCTE-20
+ SCC
+ TTML
+ STL (EBU STL)
+ SMPTE-TT (text based)
+ Teletext
+ IMSC
+ WebVTT

When you set Style passthrough to Disabled, MediaConvert ignores style information from your input and uses default settings: white text with black outlining, bottom-center positioning, and automatic sizing. 

 Whether you set style passthrough to enabled or not, you can also choose to manually override any of the individual style options. 

**Note**  
TTML and TTML-like (IMSC, SMPTE-TT) inputs have special style formatting requirements. For more information, see [TTML style formatting](ttml-style-formatting.md).

## How to specify the font script
<a name="how-to-specify-the-language-script-burnin"></a>

AWS Elemental MediaConvert automatically selects the appropriate script for your captions, based on the language that you specify in the output captions settings. If the language that you choose has more than one possible script, specify the script that you want.

**To ensure that the service uses the correct font script**

1. In the **Captions** section under **Encoding settings**, for **Language**, choose the language of the captions text.

1. If the language that you specify has more than one possible script, use **Font script** to specify the script.

   For example, if you choose **Chinese** (ZH) for **Language**, use **Font script** to choose either **Simplified Chinese** or **Traditional Chinese**. In this case, if you don’t specify a value for **Font script**, the service defaults to simplified Chinese. 
**Tip**  
In most cases, for **Font script** you can keep the default value of **Automatic**. When you do, the service chooses the script based on the language of the captions text.

## Non-english fonts and unsupported characters
<a name="non-english-unsupported"></a>

When your input font uses a non-English font script, your output burn-in captions may contain unsupported Unicode characters `□`. To resolve, set **Style passthrough** to **Enabled**.

# Settings for accessibility captions
<a name="accessibility-captions"></a>

When you create an HLS or CMAF HLS output and include an ISMC or WebVTT captions track, you can add accessibility attributes for captions to your output manifest. MediaConvert adds these attributes according to sections 4.5 and 4.6 of the [HLS authoring specification for Apple devices](https://developer.apple.com/documentation/http_live_streaming/hls_authoring_specification_for_apple_devices).

When you set **Accessibility subtitles** (`accessibility`) to **Enabled** (`ENABLED`), MediaConvert adds the following attributes to the captions track in the manifest under `EXT-X-MEDIA`: `CHARACTERISTICS="public.accessibility.describes-spoken-dialog,public.accessibility.describes-music-and-sound"` and `AUTOSELECT="YES"`.

Keep the default value, **Disabled** (`DISABLED`), if the captions track is not intended to provide such accessibility. MediaConvert will not add the attributes from the previous paragraph.