

# Eligible messages and streams
<a name="eligible-messages-and-streams"></a>

Elemental Live can extract SCTE-35 messages and SCTE-104 messages from input sources. 

The following table specifies the sources (and their corresponding input types) that Elemental Live supports for each message type.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/elemental-live/latest/ug/eligible-messages-and-streams.html)

**Note**  
SCTE-104 messages are converted to SCTE-35 messages early in the processing, so this guide uses “SCTE-35 messages” to refer to both SCTE-35 messages and SCTE-104 messages.

# SCTE-35 and SCTE-104 message processing options
<a name="processing-options"></a>

## The options
<a name="the-options"></a>

The processing possibilities for SCTE messages include the following.

**Automatically convert SCTE-104 messages**  
SCTE-104 messages in the input are automatically converted to SCTE-35 messages during processing of the input. No setup is required for this processing. 

**Line up SCTE Messages to use blanking and blackout of output content**  
The “cue out” and “cue in” instructions in SCTE-35 messages line up with specific content in the video, audio, and closed captions streams. You can set up to blank out this content in the output.
+ The content for ad avails is blanked out using the Ad avail *blanking* feature.
+ The content for other messages is blanked out using the *blackout* feature.

Your desired behavior must be set up in the event or profile.

**SCTE-35 passthrough**  
You can include SCTE-35 messages in the output data stream in any TS output. Your desired behavior must be set up in the event or profile. 

**Manifest decoration**  
You can set up SCTE messages with manifest decoration with these options: 
+ HLS outputs can be set up so that their manifests include instructions that correspond to the original SCTE-35 message content. 
+ MS Smooth outputs can be set up to include these instructions in the sparse track.
+ RTMP outputs can be set up to include these instructions in the data stream (because RTMP outputs do not have manifests).

**Conditioning by a POIS**  
Optionally, SCTE-35 messages (including those converted from SCTE-104) can be diverted to a POIS server for ESAM conditioning. This conditioning is in addition to all the other processing (manifest decoration, blanking and blackout, and passthrough). 

POIS and ESAM conditioning are described in [POIS conditioning](pois-conditioning.md). 

**Insert SCTE-35 messages into content during an event**  
The Elemental Live REST API includes commands to insert SCTE-35 messages into the content while the Elemental Live event is running.

You can insert using the Elemental Live REST API. Elemental Live makes no distinction between these messages and those that were in the original input. So, for example, if manifest decoration is enabled and you insert a message during encoding, that new message is represented in the manifest. 

## Default behavior of SCTE-35 and SCTE-104 messages
<a name="default-behavior"></a>

The default handling of SCTE-35 and SCTE-104 messages in Elemental Live includes the following:
+ No manifest decoration: You do not convert any SCTE-35 messages to event information in any output manifests or data streams.
+ No passthrough: You do not pass through SCTE-35 or SCTE-104 messages in any data stream outputs. 
+ No blanking: You do not blank out video content for any events: you leave the content as is.

If you desire the default behavior as described , you have the information you need for processing SCTE messages and do not need to read the remainder of this guide.

## About timecode configuration and timers
<a name="about-timecode-configuration-and-timers"></a>

The event or profile includes a timecode configuration field that identifies the source for timecode stamps to be inserted in the output. The source for these stamps might be a timecode embedded in the input or might be a source external to the input (for example, the system clock or a specified time). The Timecode Config field is just after the Inputs section on the event page of the web interface. 

Before starting the transcode, the transcoder gets the timecode from the source.

After the initial sampling, Elemental Live calculates the timecode of every frame and attaches it to the output. The timecode stops advancing if there is no output. So, for example, if the input fails at 10:55:03:009, the timecode at that point is 10:55:03:009. If the input restarts 3 seconds later, the timecode of the next frame might be 10:55:03:012. The timecode will *not* be 10:55:**06**:009.

Given the importance of accurate times with SCTE-35 messages, ensure that the **Network Time Protocol (NTP)** is configured on the node. 

# Scope of processing depending on outputs
<a name="scope-of-processing-depending-on-outputs"></a>

The following table summarizes which options apply to which kind of output. Following the table are details for each output type.


| Output | Passthrough in TS outputs | Manifest decoration | Blanking | 
| --- | --- | --- | --- | 
| Archive outputs with MPEG-2 as the container |  Include all the original SCTE-35 messages.  Convert any SCTE-104 messages to SCTE-35 messages (of the same message type) and include in the TS output.  | Not applicable | Applicable | 
| Archive outputs with other containers | Not applicable | Not applicable | Applicable | 
| HLS |  Include all the original SCTE-35 messages.  Convert any SCTE-104 messages to SCTE-35 messages (of the same message type) and include in the TS output. Note that, with HLS, you either implement both manifest decoration and passthrough or you implement neither.  | Decorate the HLS manifest with one or more of the following types of ad markers:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/elemental-live/latest/ug/scope-of-processing-depending-on-outputs.html) | Applicable | 
| DASH | Not applicable | Not applicable | Applicable | 
| MS Smooth | Not applicable | Include information about the SCTE-35 event in the sparse track. | Applicable | 
| SMPTE 2110 |  |  |  | 
| RTMP | Not applicable | Include one or more of the following types of ad markers in the RTMP datastream:[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/elemental-live/latest/ug/scope-of-processing-depending-on-outputs.html) | Applicable | 
| UDP/TS |  Include all the original SCTE-35 messages.  Convert any SCTE-104 messages to SCTE-35 messages (of the same message type) and include in the TS output.  | Not applicable | Applicable | 

**Topics**
+ [Archive output with MPEG-2 container](archive-output-with-mpeg-2-container.md)
+ [Archive output with other containers](archive-output-with-other-containers.md)
+ [Apple HLS output](apple-hls-output.md)
+ [DASH output](dash-output.md)
+ [MS Smooth output](ms-smooth-output.md)
+ [Adobe RTMP output](adobe-rtmp-output.md)
+ [SMPTE 2110 output](s35-scope-s2110.md)
+ [UDP/TS output](udp-ts-output.md)

# Archive output with MPEG-2 container
<a name="archive-output-with-mpeg-2-container"></a>

A transport stream (TS) in an MPEG-2 container supports passthrough of the SCTE-35 messages, but it does not support creation of a manifest. Therefore, usable options are:


| SCTE-35 passthrough | Insertion of SCTE-35 messages | Manifest decoration | Blanking and blackout | Effect | 
| --- | --- | --- | --- | --- | 
| Enabled | Yes or No | Not applicable | Yes or No | Turns on passthrough of SCTE-35 messages. In this case, you could also insert more SCTE-35 message if desired. You could also implement blanking and blackout. | 
| Disabled | No | Not applicable | No |  Turns off passthrough in order to remove SCTE-35 messages from the video stream. Do not insert extra messages: they simply get stripped out of the output. Do not implement blanking or blackout. Choose this option only if, in a downstream system, you do not want to replace video that was originally marked by cues.   | 

# Archive output with other containers
<a name="archive-output-with-other-containers"></a>

Other archive outputs do not support passthrough of the SCTE-35 messages or manifest decoration. Therefore, the only workable option is the default behavior:


| SCTE-35 passthrough | Insertion of SCTE-35 messages | Manifest decoration | Blanking and blackout | Effect | 
| --- | --- | --- | --- | --- | 
| Not applicable | No | Not applicable | No | Removes SCTE-35 messages from the output. The manifest is not decorated. Do not implement blanking or blackout because, without SCTE-35 messages in the video stream and without manifest decoration, it is impossible to find these blanks and blackouts programmatically. | 

# Apple HLS output
<a name="apple-hls-output"></a>

Apple HLS output supports both passthrough of the SCTE-35 messages and manifest decoration. In fact, with HLS outputs, passthrough and manifest decoration are either both enabled or both disabled. Therefore, workable options are: 


| SCTE-35 passthrough | Insertion of SCTE-35 messages | Manifest decoration | Blanking and blackout | Effect | 
| --- | --- | --- | --- | --- | 
| Enabled | Yes or No | Enabled | Yes or No | Turns on passthrough of SCTE-35 messages and manifest decoration. In this case, you could also insert more SCTE-35 message if desired. You could also implement blanking and blackout. | 
| Disabled | No | Disabled | No |  Turns off passthrough in order to remove SCTE-35 messages from the video stream. Turns off manifest decoration. Do not insert extra messages: they simply get stripped from the output. Do not implement blanking or blackout.  Choose this option only if, in a downstream system, you do not want to replace video that was originally marked by cues.   | 

# DASH output
<a name="dash-output"></a>

DASH ISO output does not support passthrough of the SCTE-35 messages or manifest decoration. Therefore, the only workable option is the default behavior:


| SCTE-35 passthrough | Insertion of SCTE-35 messages | Manifest decoration | Blanking and blackout | Effect | 
| --- | --- | --- | --- | --- | 
| Not applicable | No | Not applicable | No |  Removes SCTE-35 messages from the output. The manifest is not decorated. Do not implement blanking or blackout because, without SCTE-35 messages in the video stream and without manifest decoration, it is impossible to find these blanks and blackouts programmatically.  | 

# MS Smooth output
<a name="ms-smooth-output"></a>

MSS output does not support passthrough of the SCTE-35 messages but does support instructions in the sparse track. Therefore, the workable options are:


| SCTE-35 passthrough | Insertion of SCTE-35 messages | Manifest decoration | Blanking and blackout | Effect | 
| --- | --- | --- | --- | --- | 
| Not applicable | Yes or No | Enabled | Yes or No | Removes SCTE-35 messages from the video stream. But instructions are included in the sparse track. You could insert extra messages: although they are not included in the video stream of the output, they are represented by instructions in the sparse track. You could also implement blanking and blackout. | 
| Not applicable | No | Disabled | No | Removes SCTE-35 messages from the output. The sparse track does not include instructions. Do not implement blanking or blackout because, without SCTE-35 messages in the video stream and, without data in the sparse track, it is impossible to find these blanks and blackouts programmatically. | 

# Adobe RTMP output
<a name="adobe-rtmp-output"></a>

Adobe RTMP output does not support passthrough of the SCTE-35 messages but does support manifest decoration. Therefore, the workable options are:


| SCTE-35 passthrough | Insertion of SCTE-35 messages | Manifest decoration | Blanking and blackout | Effect | 
| --- | --- | --- | --- | --- | 
| Not applicable | Yes or No | Enabled | Yes or No | Removes SCTE-35 messages from the video stream. But instructions are included in the manifest. You could insert extra messages: although they are not included in the video stream of the output, they are represented by instructions in the manifest. You could also implement blanking and blackout. | 
| Not applicable | No | Disabled | No | Removes SCTE-35 messages from the output. The manifest is not decorated. Do not implement blanking or blackout because, without SCTE-35 messages in the video stream and without manifest decoration, it is impossible to find these blanks and blackouts programmatically. | 

# SMPTE 2110 output
<a name="s35-scope-s2110"></a>

SMPTE 2110 output supports passthrough of the SCTE-35 messages. Therefore, workable options are:


| SCTE-35 passthrough | Insertion of SCTE-35 messages | Manifest decoration | Blanking and blackout | Effect | 
| --- | --- | --- | --- | --- | 
| Enabled | Yes or No | Not applicable | Yes or No | Turns on passthrough of SCTE-35 messages. In this case, you could also insert more SCTE-35 messages if desired. Elemental Live converts all these SCTE-35 messages to SCTE-104 messages in the ancillary data stream in the output.You could also implement blanking and blackout. | 
| Disabled | No | Not applicable | No |  Doesn't include SCTE-104 messages in the output. Do not insert extra messages: they are simply get stripped out of the output. Do not implement blanking or blackout. Choose this option only if, in a downstream system, you do not want to replace video that was originally marked by cues.   | 

# UDP/TS output
<a name="udp-ts-output"></a>

UDP/TS output supports passthrough of the SCTE-35 messages, but it does not support creation of a manifest. Therefore, workable options are:


| SCTE-35 passthrough | Insertion of SCTE-35 messages | Manifest decoration | Blanking and blackout | Effect | 
| --- | --- | --- | --- | --- | 
| Enabled | Yes or No | Not applicable | Yes or No | Turns on passthrough of SCTE-35 messages. In this case, you could also insert more SCTE-35 message if desired. You could also implement blanking and blackout. | 
| Disabled | No | Not applicable | No |  Turns off passthrough in order to remove SCTE-35 messages from the video stream. Do not insert extra messages: they are simply get stripped out of the output. Do not implement blanking or blackout. Choose this option only if, in a downstream system, you do not want to replace video that was originally marked by cues.   | 

# Blanking and passthrough and manifest decoration
<a name="blanking-and-pass-through-and-manifest-decoration"></a>

It is important to understand that the logic for blanking ad content works on the video content associated with the “ad avail event” while the logic for passthrough and manifest decoration works on the actual SCTE-35 message.

So you can blank ad avails and not pass through SCTE-35 messages or not blank ad avails and not pass through SCTE-35 messages and decorate the manifest or any combination: the actions are independent.

The only exception to this rule is for HLS outputs: manifest decoration and passthrough are either both enabled or both disabled.