Handling SMPTE 2038 metadata - MediaLive

Handling SMPTE 2038 metadata

You can configure MediaLive to extract specific ancillary data from a SMPTE 2038 stream contained in these inputs:

  • Elemental Link inputs

  • HLS transport stream (TS) inputs

  • MediaConnect inputs

  • RTP inputs

Note

This section assumes that you are familiar with creating or editing a channel, as described in Creating a channel from scratch.

Metadata that MediaLive can extract

MediaLive can extract the following data from a SMPTE 2038 stream that is in the source.

Captions

  • ARIB captions – Captions that are compliant with ARIB STD-B37 version 2.4.

  • Embedded captions – Captions carried as ancillary captions that are compliant with SMPTE 334. The ancillary captions themselves must be compliant with EIA-608 standard (also known as CEA-608 or “line 21 captions”) or CEA-708 standard (also known as EIA-708).

  • Teletext captions – OP47 teletext format, also known as SMPTE RDD-08 (compliant with ITU-R BT.1120-7).

Timecode

  • Timecode – A SMPTE 12M timecode. MediaLive recognizes this timecode as an embedded timecode source.

Ad avail messages

  • SCTE 104 messages.

Metadata

  • KLV metadata – Data that is compliant with SMPTE 336M-2007.

A well-formed SMPTE 2038 stream

For MediaLive to extract and process the data appropriately, the SMPTE 2038 stream in the input must meet certain criteria:

  • The SMPTE 2038 stream must be present in every PMT.

  • The PID in which the SMPTE 2038 stream is located must not change in the stream. There is no support for changing the PID and sending a new PMT identifying that PID.

  • The transport stream should contain the SMPTE 2038 stream in only one PID. If it's present in more than one PID, there's no guarantee that MediaLive will identify the PID that appears first. It could choose another PID, with results you don't intend.

Note that if the input is a Elemental Link input, embedded captions (if any), the timecode, and KLV metadata (if any) are always in a SMPTE 2038 stream. The stream is always well-formed.

Configuring inputs

If you want MediaLive to use the data in a SMPTE 2038 stream, you must configure the input to read the SMPTE 2038.

  1. On the Create channel page, find the Input attachment for the relevant input.

  2. In General input settings, set Prefer SMPTE 2038 to one of the following:

    • Prefer – For a specific item of data, MediaLive first looks for the data in a SMPTE 2038 PID. If the data is not found in the SMPTE 2038 stream or if there is no SMPTE 2038 stream, MediaLive looks for the data in other locations in the stream.

    • Ignore (default) – MediaLive never looks for a SMPTE 2038 stream. Even if a specific item of data is not available in other places in the stream, MediaLive doesn't look for a SMPTE 2038 stream. For example, you might set the timecode source to Embedded (in the General Configuration section for the channel). With Ignore, if the timecode source isn't in the video stream, MediaLive won't look for it in a SMPTE 2038 stream.

    Note that with Elemental Link input, any KLV metadata is always in a SMPTE 2038, never in a different PID. Therefore, if you have been told that the source includes KLV metadata, always choose Prefer.

How MediaLive uses the SMPTE 2038 stream

If you set up to prefer SMPTE 2038 in an input, MediaLive uses the data according to the following rules.

Captions

You might set up the input with captions selectors that specify ARIB, Embedded, or Teletext. In this case, MediaLive first looks for the specified type of captions in the SMPTE 2038 stream. If MediaLive doesn't find the captions there, it looks in other locations in the stream.

Regardless of where MediaLive finds the captions, MediaLive extracts them, and processes them in the usual way, according to how you set up for captions in the output.

Timecode

When an input includes a SMPTE 2038 stream, MediaLive first looks for a SMPTE 12M timecode in the SMPTE 2038 stream. If MediaLive doesn't find the timecode there, it looks for a timecode embedded directly in the video stream. MediaLive associates the SMPTE 12M timecode with the closest video frame.

For information about how MediaLive uses the timecode, see How the output timecode works at runtime .

Ad avail messages

If you prefer SMPTE 2038 in an input, MediaLive extracts any SCTE 104 messages it finds, then immediately converts them to SCTE 35 messages. You can then handle the messages as you would handle SCTE 35 messages from any source. For more information, see SCTE-35 message processing.

KLV metadata

If you prefer SMPTE 2038 in an input, MediaLive extracts any KLV data that it finds.

You can choose to pass through the KLV metadata in one or more of the following output groups. MediaLive wraps the KLV in a SMPTE 2038 stream.

  • Archive

  • MediaPackage

  • HLS (with a TS container)

  • UDP/TS

The setup steps follow.

Configuring outputs for KLV metadata

You can choose to pass through the KLV metadata in one or more of the following output groups.

Note

The information in this section assumes that you are familiar with the general steps for creating a channel, as described in Creating a channel from scratch.

Archive

  1. On the Create channel page, in the Output groups section, in the Archive group, choose the output.

  2. In Output settings, select Container settings, then select PID settings.

  3. Set these fields:

    • KLV: Choose PASSTHROUGH

    • KLV data PIDs: Enter the PID where you want the KLV metadata.

MediaPackage

MediaPackage outputs are automatically set up for passthrough. If MediaLive finds KLV metadata in an input, it passes it through in a MediaPackage output, in PID 501.

HLS

You can pass through KLV metadata in any output that has a standard HLS container (a TS container).

  1. On the Create channel page, in the Output groups section, in the HLS group, choose the output.

  2. In Output settings, make sure that HLS settings specifies Standard HLS.

  3. In HLS settings, select PID settings.

  4. Set these fields:

    • KLV: Choose PASSTHROUGH

    • KLV data PIDs: Enter the PID where you want the KLV metadata.

UDP/TS

  1. On the Create channel page, in the Output groups section, in the UDP group, choose the output.

  2. In Output settings, select Network settings, then select PID Settings.

  3. Set these fields:

    • KLV: Choose PASSTHROUGH

    • KLV data PID: Enter the PID where you want the KLV metadata.