

# Input types supported in MediaLive
<a name="inputs-supported-containers"></a>

This section provides lookup information about the types of input sources that AWS Elemental MediaLive can ingest.

**Topics**
+ [

# Input types supported in MediaLive
](inputs-supported-types.md)
+ [

# Input types, protocols, and upstream systems
](inputs-supported-formats.md)
+ [

# Input deployments: AWS Cloud and MediaLive Anywhere
](inputs-emla.md)
+ [

# Push and pull AWS Cloud inputs
](inputs-push-pull.md)
+ [

# Support for live and file sources
](inputs-live-vs-file.md)
+ [

# Supported input class
](inputs-single-standard-vpc.md)
+ [

# Support for setup as a VPC input in MediaLive
](inputs-vpc-support.md)

# Input types supported in MediaLive
<a name="inputs-supported-types"></a>

MediaLive supports the following input types. For more information about these types, see the sections that follow.
+ CDI
+ HLS
+ Link
+ MediaConnect
+ MediaConnect Router
+ MP4
+ RTMP Pull
+ RTMP Push
+ RTP
+ SMPTE 2110
+ SRT Caller
+ SRT Listener
+ TS

# Input types, protocols, and upstream systems
<a name="inputs-supported-formats"></a>

The following table lists the input types that are supported in MediaLive, and describes how the input handles the source content. In the table, find a type of input in the first column, then read across the row for information about how the type is supported.

For information about *push inputs* and *pull inputs*, see [Push and pull AWS Cloud inputs](inputs-push-pull.md).


| MediaLive input type | Use case | Upstream system and supported protocol | 
| --- | --- | --- | 
| CDI | Push an uncompressed stream in your VPC to a fixed endpoint on MediaLive.  | Amazon VPC within a private cloud | 
| HLSSee [HLS inputs](#input-hls-definition), after this table. | Pull an HLS stream or asset from an external endpoint using the HTTP protocol, with or without a secure connection. | HTTP server orHTTPS server | 
| HLS | Pull an HLS stream or VOD asset from an AWS Elemental MediaStore container, using a secure connection. | AWS Elemental MediaStore with a custom protocol | 
| HLS | Pull an HLS stream or VOD asset from an Amazon S3 bucket, using a secure connection. | Amazon S3 over a custom protocol | 
| Link | Push a transport stream (TS) from an AWS Elemental Link device. | AWS Elemental Link over an internal connection | 
| MediaConnect | Push a transport stream (TS) from a flow in AWS Elemental MediaConnect.This input uses a MediaConnect flow ARN, not a URI. | AWS Elemental MediaConnect over an internal connection | 
| MediaConnect Router | Push a transport stream (TS) from MediaConnect Router.This input uses a MediaConnect Router ARN, not a URI. | AWS Elemental MediaConnect over an internal connection | 
| MP4 | Pull an MP4 file from an HTTP server, with or without a secure connection. | HTTP server or HTTPS server | 
| MP4 | Pull an MP4 file from an Amazon S3 bucket, using a secure connection. With MediaLive, the bucket name can't use *dot* notation. For example, `mycompany-videos` is valid, but `mycompany.videos` isn't.  | Amazon S3 over a custom protocol | 
| RTMP Pull | Pull a stream from an external endpoint using the RTMP protocol.MediaLive doesn't support inputs using the RTMPS protocol. | RTMP server over RTMP Pull | 
| RTMP Push | Push a stream to a fixed endpoint on MediaLive using the RTMP protocol. MediaLive doesn't support inputs using the RTMPS protocol. | RTMP server over RTMP Push | 
| RTMP Push | Push a stream in your VPC to a fixed endpoint on MediaLive, using the RTMP protocol. MediaLive doesn't support inputs using the RTMPS protocol. | Amazon VPC over RTMP within a private cloud | 
| RTP | Push a transport stream (TS) to a fixed endpoint on MediaLive, using the RTP protocol. | RTP server over RTP Push | 
| RTP | Push a transport stream (TS) in your VPC to a fixed endpoint on MediaLive, using the RTP protocol. | Amazon VPC over RTP within a private cloud | 
| SMPTE 2110 stream | Deliver a set of streams that are compliant with the SMPTE 2110 specification. MediaLive supports 2022-7 seamless protection switching with SMPTE 2110 inputs.MediaLive doesn't support SMPTE 2110 with NMOS. The SMPTE 2110 source must be Precision Time Protocol (PTP) locked, to ensure that the video, audio, and ancillary data synchronize properly. | A service provider that supports delivery of SMPTE 2110 using SDP files retrieved from the service provider. SMPTE 2110 is delivered over the RTP protocol | 
| SRT Caller | Pull a live transport stream using the SRT protocol. The SRT source can be encrypted or unencrypted.  | A service provider that supports delivery over the SRT protocol. | 
| SRT Listener | Push a transport stream to a fixed endpoint on MediaLive using the SRT protocol. The upstream system acts as the SRT caller, MediaLive acts as the SRT listener. | A service provider that supports delivery over the SRT protocol as a caller. | 
| Transport Stream (TS) file | Pull a TS file from an HTTP server, with or without a secure connection. File extensions of .ts or .m2ts are supported.MediaLive only supports static TS files. It does not support growing TS files that are written to while in use. | HTTP server or HTTPS server | 
| Transport Stream (TS) file | Pull a TS file from an Amazon S3 bucket, using a secure connection. File extensions of .ts or .m2ts are supported.MediaLive only supports static TS files. It does not support growing TS files that are written to while in use.With MediaLive, the bucket name can't use *dot* notation. For example, `mycompany-videos` is valid, but `mycompany.videos` isn't.  | Amazon S3 over a custom protocol | 

**HLS**

With HLS, the media must be a transport stream. MediaLive doesn't support ingest of HLS content that contains any other type of media.

# Input deployments: AWS Cloud and MediaLive Anywhere
<a name="inputs-emla"></a>

Inputs are categorized by the deployment mode of the channel that they are attached to:
+  AWS Cloud only. These inputs can be attached only to a channel that is running in the AWS Cloud.
+ MediaLive Anywhere only. These inputs can be attached only to a channel that is running in a MediaLive Anywhere cluster. 
+ Both. These inputs can be used in both AWS Cloud amd MediaLive Anywhere deployments. 


| MediaLive input type | Supported deployments | 
| --- | --- | 
| CDI | AWS Cloud deployments only | 
| HLS | Both | 
| Link | AWS Cloud deployments only | 
| MediaConnect | AWS Cloud deployments only | 
| MediaConnect Router | AWS Cloud deployments only | 
| MP4 | Both | 
| RTMP Pull | Both | 
| RTMP Push | Both | 
| RTP | Both | 
| SMPTE 2110 | MediaLive Anywhere deployments only | 
| SRT Caller | Both | 
| SRT Listener | Both | 
| Transport Stream (TS) file | Both | 

# Push and pull AWS Cloud inputs
<a name="inputs-push-pull"></a>

When an input is being [deployed in the AWS Cloud](inputs-emla.md), it is categorized in terms of how MediaLive and the upstream system negotiate delivery:
+ Push input with handshake. 
+ Push input without handshake.
+ Pull input. 

There are different [limits](eml-limitations-and-rules.md#limits-inputs) and [charges](pricing.md) for push inputs compared to pull inputs.


| MediaLive input type | Category | 
| --- | --- | 
| CDI | Push |  | 
| HLS |  | Pull | 
| Link | Push |  | 
| MediaConnect | Push  |  | 
| MP4 |  | Pull | 
| RTMP Pull |  | Pull | 
| RTMP Push | Push. See the note below |  | 
| RTP | Push |  | 
| SRT Caller |  | Pull | 
| SRT Listener | Push |  | 
| Transport Stream (TS) file |  | Pull | 

**Note about RTMP push inputs**

An RTMP push input works as follows: The source attempts to deliver to an endpoint that is specified in the MediaLive input. There must be a handshake between the source and the MediaLive channel so that the source has information about the status of the input. 

When you start the channel that includes this input, MediaLive responds to the handshake message and ingests it. When the channel is not running, MediaLive does not react; the source goes into a paused state. 

# Support for live and file sources
<a name="inputs-live-vs-file"></a>

A source might be a live source or a file (VOD) source:
+ A streaming source is continually being published.
+ A VOD source is made available on the endpoint and then does not change.

The following table specifies whether each MediaLive input type supports live streams or VOD assets.


| MediaLive input type | Live stream supported? | VOD asset supported? | 
| --- | --- | --- | 
| CDI | Yes | No | 
| HLS from an HTTP or HTTPS server, or from MediaStore | YesMediaLive considers an HLS input to be a *live stream* if the **Buffer segments** field has a value from 3 to 10, inclusive. (To display this field in the **Channel** page, in **General input settings** for **Network input settings**, choose **Network input**. For HLS input settings, choose **Hls input**. The **Buffer segments **field appears.) | YesMediaLive considers the input to be a *VOD asset* if the **Buffer segments** field has a value of 11 or more, or is undefined (empty).  | 
| HLS from Amazon S3 | Yes, as defined in the previous row We don't recommend Amazon S3 as a source for a live stream. | Yes, as defined in the previous row | 
| Link | Yes | No | 
| MediaConnect | Yes | No | 
| MediaConnect Router | Yes | No | 
| MP4 | No | Yes, with .mp4 file extension only | 
| RTMP Pull | Yes | Yes | 
| RTMP Push | Yes | No | 
| RTP | Yes | No | 
| SMPTE 2110  | Yes | No | 
| SRT Caller | Yes | No | 
| SRT Listener | Yes | No | 
| Transport Stream (TS) file | No | Yes, with .ts and .m2ts file extensions only | 

# Supported input class
<a name="inputs-single-standard-vpc"></a>

In MediaLive there are two kinds of class for inputs — standard class inputs and single-class inputs. Some inputs can be set up as either input class. Some inputs can be set up only as single-class inputs. 

When you have a choice, the type to use depends on whether you want to create a standard channel, in order to implement pipeline resiliency. For more information, see [Choosing the channel class and input class](class-channel-input.md).


| MediaLive input type | Supported classes | 
| --- | --- | 
| CDI | Standard-class only | 
| HLS | Both | 
| Link | Both | 
| MediaConnect | Both | 
| MediaConnect Router | Both | 
| MP4 | Both | 
| RTMP Pull | Both | 
| RTMP Push | Both | 
| RTP | Standard-class only | 
| SMPTE 2110  | Single-class only | 
| SRT Caller | Both | 
| SRT Listener | Both | 
| Transport Stream (TS) file | Both | 

# Support for setup as a VPC input in MediaLive
<a name="inputs-vpc-support"></a>

Some MediaLive inputs can be set up in Amazon Virtual Private Cloud (Amazon VPC). For more information, see [Creating an input](create-input.md).


| MediaLive input type | Can be set up as a VPC input | 
| --- | --- | 
| CDI | Yes, setup as a VPC input is supported | 
| HLS | No | 
| Link | No | 
| MediaConnect | No | 
| MediaConnect Router | No | 
| MP4 | No | 
| Transport Stream (TS) file | No | 
| RTMP Pull | No | 
| RTMP Push | Yes, setup as a VPC input is supported | 
| RTP | Yes, setup as a VPC input is supported | 
| SMPTE 2110 | No | 
| SRT Caller | No | 
| SRT Listener | No | 