Skip to main content

Guidance for Channel Assembly Media Ingest Automation on AWS

Overview

This Guidance demonstrates how to prepare mezzanine video files and make them available for scheduling using the channel assembly capability of AWS Elemental MediaTailor. It automates the process of transcoding video files using AWS Elemental MediaConvert, packaging the files into various formats using AWS Elemental MediaPackage, and applying personalized ad insertions to the files. Additionally, an Amazon CloudFront distribution is created as a content delivery network (CDN) that orchestrates the delivery of the files and the details about how to track and manage the content for delivery. The CDN hosts the video streams with security and performance best practices at the forefront.

How it works

These technical details feature an architecture diagram to illustrate how to effectively use this solution. The architecture diagram shows the key components and their interactions, providing an overview of the architecture's structure and functionality step-by-step.

Well-Architected Pillars

The architecture diagram above is an example of a Solution created with Well-Architected best practices in mind. To be fully Well-Architected, you should follow as many Well-Architected best practices as possible.

All resources created in this Guidance are tagged, which helps you identify and organize your AWS resources, as well as easily track your AWS costs. If you need to integrate and deploy changes in this Guidance, use an AWS Serverless Application Model (AWS SAM).  

Read the Operational Excellence whitepaper 

All content at rest is protected by AWS Signature Version 4, and can only be viewed through the CloudFront content delivery network (CDN). You can also configure further access controls at the CDN to secure people and machine access. 

Read the Security whitepaper

All components in this Guidance are serverless and therefore highly available in any given AWS Region, helping to ensure you are implementing a highly available architecture. The workflow processing steps, as outlined in the preceding diagram, are decoupled and use Amazon EventBridge and stateless AWS Lambda, while retry logic is controlled by you. The workflow steps also emit logs to Amazon CloudWatch, in addition to emails sent through Amazon Simple Queue Service (Amazon SQS) for notifications on content state changes. 

This Guidance scales up and down with demand, limited only by the underlying service limits of MediaConvert, MediaPackage, and MediaTailor. The versions of this Guidance are controlled through GitLab, with any changes run through integration tests first. And by relying on the underlying services Amazon S3, MediaConvert, MediaPackage, and MediaTailor for failure handling, this Guidance helps to ensure you are implementing a solution resilient to failures. 

Read the Reliability whitepaper

The services selected for this Guidance were purpose-built for this use, and the components are appropriately sized to help meet your performance requirements. If you want to experiment with this Guidance, you can automate the creation of media resources and channels to determine performance limits.

This Guidance can be deployed in any Region that has AWS Elemental services, including MediaConvert, MediaPackage, and MediaTailor. And because the workflow processing steps are decoupled, appropriate queuing helps ensure a large influx of demand is appropriately staggered. 

Read the Performance Efficiency whitepaper

We evaluated cost and each component in this Guidance have been rightsized for the optimal balance between cost and perceptual quality. Also, there are no idle running costs. Cost is only incurred when and if media is processed and a channel is running. Finally, the relationship between viewer load and infrastructure is separated by CloudFront, so there is no increase in resources when load increases. 

Read the Cost Optimization whitepaper 

This Guidance scales to continually match the load with only the minimum resources. There is zero idle compute when a channel is not running. And by deploying the minimum set of resources required for a high-quality consumer experience, there are no idle resources running when not in use. 

Read the Sustainability whitepaper

Disclaimer

The sample code; software libraries; command line tools; proofs of concept; templates; or other related technology (including any of the foregoing that are provided by our personnel) is provided to you as AWS Content under the AWS Customer Agreement, or the relevant written agreement between you and AWS (whichever applies). You should not use this AWS Content in your production accounts, or on production or other critical data. You are responsible for testing, securing, and optimizing the AWS Content, such as sample code, as appropriate for production grade use based on your specific quality control practices and standards. Deploying AWS Content may incur AWS charges for creating or using AWS chargeable resources, such as running Amazon EC2 instances or using Amazon S3 storage.