Amazon Web Services (AWS) offers its customers several methods to cost-effectively deliver live video content to a global audience on the AWS Cloud. These methods combine multiple AWS services with third-party AWS Partner Network (APN) products to help customers build cost-effective OTT solutions for live video streaming, however it is not always easy to decide between the potential options.

This webpage provides best practices and guidance to consider when choosing a live video streaming solution, third-party products to get you started with live video streaming on the AWS Cloud, and an AWS-provided solution that integrates an existing AWS Elemental Cloud deployment with other AWS services to build a highly available and cost-effective architecture that delivers an exceptional real-time viewing experience.

The following sections assume basic knowledge of architecting on the AWS Cloud, live video streaming, adaptive bitrate streaming, video encoding, and video packaging.

Solution Brief

When streaming live video in the cloud, there are some universal video-streaming principles that will help you build highly scalable, performant, and resilient live streaming video solutions. Before you implement a streaming solution, determine the requirements for your use case. Consider your sources, encoding and playout formats, as well as the devices you want to target. Then, choose a solution that meets those requirements. Also, weigh the entire cost of the solution against the desired video quality and overall flexibility, scalability, and redundancy. Keeping these general principles in mind, consider the following best practices for live streaming video on the AWS Cloud:

To maximize the number of different devices you can target, encode your source at high quality (resolution and bitrate). Once in the AWS Cloud, transcode that contribution stream into multiple playout resolutions and formats. Encoding a single stream is more cost effective than encoding multiple streams and requires less bandwidth. Transcoding and packaging your stream into multiple playout formats allows your content to be viewed on computers, set-top boxes, tablets, smartphones, gaming consoles, and connected TVs.

To provide the best experience for all viewers, utilize HTTP-based adaptive bit rate (ABR) formats to let each device continually negotiate the highest quality bit-rate stream available. ABR formats automatically adjust the quality of the delivered content to match the bandwidth available to each client device. ABR-based delivery greatly reduces buffering, provides a fast start time, and provides an optimal viewing experience for a customer's available bandwidth.

Choose a streaming solution that complements your company’s existing processes and skill sets to ensure that you can manage and modify your solution to meet future requirements. This will streamline your live streaming video workflow and reduce operational complexity for developers and operators.

Clearly define an end-to-end workflow with a specific and well-understood design for redundancy and failover. Ensure transcoding, packaging, and origination software and settings are optimized for troubleshooting and management at scale.

The AWS Cloud provides flexible infrastructure and tools to support both diverse partner offerings and self-managed live streaming video solutions. In general, the desired encoding and playout formats, as well as a company’s experience, budget, business requirements, and end-to-end workflow will determine which approach is most appropriate. The following sections describe native AWS services and an automated solution for live video streaming using AWS Elemental Cloud.

Amazon CloudFront can be used to deliver your live adaptive bitrate media content at scale to a global audience. Amazon CloudFront provides you the scale and flexible pay-as-you-go pricing model, and the use of HTTP protocols for streaming your live event offers your viewers easy access to your content. With Amazon CloudFront, you can use any software that outputs HTTP-based protocols to stream live video content, and Amazon CloudFront will cache and distribute that content globally.

AWS Elemental Live provides real-time video and audio encoding for linear pay TV broadcast and live streaming to new media platforms. The software-based solution performs simultaneous processing of multiple video outputs, delivering the high-quality, high-efficiency performance required for formatting live video for any device. AWS Elemental Live is designed to integrate seamlessly into an end-to-end real-time video delivery workflow, evolve as technology requires and maximize revenue opportunities.

AWS also offers an automated solution that integrates AWS Elemental Cloud with additional AWS functionality such as Elastic Load Balancing, Auto Scaling, and Amazon CloudFront to build a highly performant, scalable architecture that optimizes the viewing experience. Customers can easily deploy the solution in minutes using AWS CloudFormation. For more information, see the AWS Solution tab.

The AWS Partner Network offers a variety of comprehensive live streaming video solutions that can help make it easier for companies of any size or stage of development to deliver live video content on the AWS Cloud. When selecting a third-party product, look for a solution that is easy to configure, leverages your company's existing technologies, and provides the desired encoding and playout formats.

This approach may be appropriate for customers who have an existing partner tool in place for encoding and packaging on-premises live video streams and want to extend their solution to incorporate live video streams from cloud resources.

AWS Solution

AWS provides a live streaming video solution that combines AWS Elemental Cloud, a service that enables customers to rapidly deploy multiscreen offerings for live and on-demand content, with Elastic Load Balancing, Auto Scaling, and Amazon CloudFront to build a highly resilient and scalable architecture that delivers your live content worldwide.

The diagram below presents the live streaming video architecture you can automatically deploy using the solution's implementation guide and accompanying AWS CloudFormation template.

Deploy the live streaming solution using AWS CloudFormation. The CloudFormation template will automatically launch and configure the AWS components necessary to stream live video content on the AWS Cloud.

You must deploy this solution in an AWS Region that supports AWS Elemental Cloud. This solution includes two templates for deployment. The primary template uses AWS Lambda, which is currently available in specific AWS Regions only. To use the primary template, you must deploy this solution an AWS Region where Lambda and AWS Elemental Cloud services are available (see AWS service offerings by region). The secondary template uses a Python script instead of AWS Lambda for deployment. Use the secondary template to deploy this solution in an AWS Region where Lambda is not available.