View a markdown version of this page

Architecture details - Live Streaming on AWS

Architecture details

Live Streaming on AWS solution architecture details

This section describes the components and AWS services that make up this solution and the architecture details on how these components work together.

== AWS services in this solution

AWS service Description

Amazon Elemental MediaLive

Core. It ingests two input feeds and transcodes your content into two adaptive bitrate (ABR) HTTP Live Streaming (HLS) streams as outputs.

Amazon Elemental Mediapackage

Core. It ingests the MediaLive ABR output and packages the live stream into HLS, Dynamic Adaptive Streaming over HTTP (DASH), and Common Media Application Format (CMAF) formats that are delivered to three MediaPackage custom endpoints.

Amazon CloudFront

Core. It uses the MediaPackage custom endpoints and its origin and includes a CDN identifier custom HTTP header to authenticate requests.

Amazon Secrets Manager

Core. It stores securely the CDN identifier from Amazon CloudFront.

Amazon S3

Core. It stores a demo HTML preview player to help you test the solution.

AWS Systems Manager

Supporting. Provides application-level resource monitoring and visualization of resource operations and cost data.

== HTML preview player

A demo HTML preview player is available to help you test the solution. The player is a static website hosted in an Amazon S3 bucket. It is pre-populated with the URLs that point to the newly created customer stream. The HTML/JavaScript application plays back the HLS, DASH, MSS, and CMAF streams. In addition, the solution can be configured to ingest a Demo HLS feed hosted on AWS. Customize the HTML in the DemoBucket S3 bucket to suit your needs. For details about putting the HLS video into a webpage, refer to the Apache 2.0 Video.JS open-source project.

To check output on the player, start the AWS Elemental MediaLive channel. Even if you selected no for the Start MediaLive Channel CloudFormation template parameter, you can go to the MediaLive channel to start the player when you are ready to start testing.

== URL_PULL (HLS) input configuration

URL_PULL provides the option to ingest an HTTP live streaming (HLS) stream over HTTP or HTTPS. The following parameters are required to configure the solution to ingest an HLS stream:

Source Input Type - URL_PULL.

Primary Source URL - The HTTP(s) link to the HLS stream manifest file. The default value is a demo stream from AWS.

Primary Source Username - Only required if you have basic authentication setup on your source HLS stream.

Primary Source Password - Only required if you have basic authentication setup on your source HLS stream.

Secondary Source URL - The HTTP(s) link to the HLS stream manifest file. The default value is a demo stream from AWS.

Secondary Source Username - Only required if you have basic authentication setup on your source HLS stream.

Secondary Source Password - Only required if you have basic authentication setup on your source HLS stream.

Encoding Profile - Select the profile that best matches your source resolution.

Start MediaLive Channel - If your device is ready to stream, select yes. Otherwise, select no — you can start the AWS Elemental MediaLive channel through the AWS Management Console when you’re ready to stream.

Note

For a full list of input types and configuration details, refer to the Creating an input topic in the AWS Elemental MediaLive User Guide.

== RTMP_PULL input configuration

RTMP_PULL provides the option to ingest an RTMP stream. The following parameters are required to configure the solution to ingest an RTMP stream:

Source Input Type - RTMP_PULL.

Primary Source URL - The RTMP link to the primary source stream, for example rtmp://203.0.113.20:1935/primary.

Primary Source Username - Only required if you have basic authentication setup on your source stream.

Primary Source Password - Only required if you have basic authentication setup on your source stream.

Secondary Source URL - The RTMP link to the primary source stream, for example rtmp://203.0.113.20:1935/secondary.

Secondary Source Username - Only required if you have basic authentication setup on your source stream.

Secondary Source Password - Only required if you have basic authentication setup on your source stream.

Encoding Profile - Select the profile that best matches your source resolution.

Start MediaLive Channel - If your device is ready to stream, select yes. Otherwise, select no — you can start the AWS Elemental MediaLive channel through the AWS Management Console when you’re ready to stream.

Note

For a full list of input types and configuration details, refer to the Creating an input topic in the AWS Elemental MediaLive User Guide.

== RTMP_PUSH and RTP_PUSH input configuration

RTMP_PUSH and RTP_PUSH provide the option to push a transport stream (TS) to AWS Elemental MediaLive. In both options, the following parameters are required to configure the solution:

Source Input Type - RTP_PUSH or RTMP_PUSH

Input Security Group CIDR Block - A valid CIDR block used to create a security group to restrict access to the MediaLive input.

Encoding Profile - Select the profile that best matches your source resolution.

Start MediaLive Channel - If your device is ready to stream, select yes. Otherwise, select no — you can start the MediaLive channel through the AWS Management Console when you’re ready to stream.

Note

For a full list of input types and configuration details, refer to the Creating an input topic in the AWS Elemental MediaLive User Guide.

== MEDIACONNECT input configuration

MEDIACONNECT provides the option to ingest a stream from Elemental MediaConnect. The following parameters are required to configure the solution to ingest from MediaConnect:

Source Input Type - MEDIACONNECT.

Primary MediaConnect ARN - The ARN of the primary source stream, for example: arn:aws:mediaconnect:uswest1:111122223333:flow:1bgf67:primary. This MediaConnect flow must be in a different Availability Zone as the secondary stream.

Secondary MediaConnect ARN - The ARN of the secondary source stream, for example: arn:aws:mediaconnect:uswest1:111122223333:flow:1bgf67:secondary. This MediaConnect flow must be in a different Availability Zone as the primary stream.

Encoding Profile - Select the profile that best matches your source resolution.

Start MediaLive Channel - If your device is ready to stream, select yes. Otherwise, select no — you can start the AWS Elemental MediaLive channel through the AWS Management Console when you’re ready to stream.

Note

For a full list of input types and configuration details, refer to the Creating an input topic in the AWS Elemental MediaLive User Guide.