Architecture overview - Live Streaming on AWS

Architecture overview

Deploying this solution builds the following environment in the AWS Cloud.

        Live streaming solution architectural overview

Figure 1: Live Streaming on AWS solution architecture

The solution’s AWS CloudFormation template launches the AWS products and services necessary to ingest, transcode, and deliver live streaming video. AWS Elemental MediaLive ingests two input feeds and transcodes your content into two adaptive bitrate (ABR) HTTP Live Streaming (HLS) streams as output. Two feeds are ingested for MediaLive redundancy. Each MediaLive transcodes a single ingest feed into ABR outputs. For more information, view the Creating Adaptive Bitrate (ABR) Outputs training.

AWS Elemental MediaPackage ingests the MediaLive ABR output and packages the live stream into HTTP Live Streaming (HLS), Dynamic Adaptive Streaming over HTTP (DASH), and Common Media Application Format (CMAF) formats that are delivered to three MediaPackage custom endpoints. These three formats were selected because that is what popular streaming devices support. MediaPackage is an origin server that prepares the content for delivery to phones, tablets, smart TVs, and other devices.

An Amazon CloudFront distribution is configured to use the MediaPackage custom endpoints as its origin and includes a CDN Identifier custom HTTP header to authenticate requests. MediaPackage only fulfills playback requests that are authorized between MediaPackage and CloudFront using the CDN Identifier. This CDN Identifier is created as part of the AWS CloudFormation deployment and securely stored in AWS Secrets Manager. For details, see the CDN Authorization in AWS Elemental MediaPackage in the AWS Elemental MediaPackage User Guide.

The CloudFront distribution delivers your live stream to viewers with low latency and high transfer speeds.

You can configure the solution to ingest Real-Time Transport Protocol (RTP), Real-Time Messaging Protocol (RTMP), HTTP Live Streaming (HLS), or AWS Elemental MediaConnect flows as input. The solution also includes three encoding profiles, which are ABR stream sets ranging in output resolution from 270p to 1080p, that you can set during initial configuration.

The solution also deploys a demo HTML preview player that you can use to test the solution. The player is a static website hosted in an Amazon Simple Storage Service (Amazon S3) bucket. Amazon CloudFront is used to restrict access to the solution’s website bucket contents.