Overview

Out of the box, this solution helps you to accomplish the following:
- Automatically transcode videos uploaded to S3 into formats suitable for playback on a wide range of devices.
- Customize MediaConvert job settings by uploading your own file and using different job settings for different inputs.
- Store transcoded files in a destination bucket and use Amazon CloudFront to deliver to end viewers.
- Manage costs, view logs, implement patching, and run automation runbooks for this solution from a central location.
In addition to the transcoded video, the outputs include input file metadata, job settings, and output details. These outputs are stored in a separate JSON file that can be used for further processing.
This solution provides the following features:
- Amazon Step Functions orchestration of the ingest, transcoding (including pre-and post-processing steps), and publishing steps of the workflow.
- Choice of video file or metadata file trigger.
- Delivery of videos to viewers with Amazon CloudFront, formatted for playback on a wide range of devices.
- Input file metadata, job settings, and output details storage in a DynamoDB table for easy access by downstream consumers.
- Optional automated archive of video inputs to help reduce storage costs.
With this solution, you can also choose to use AWS Elemental MediaPackage for packaging content into different formats and to apply digital rights management (DRM). MediaPackage can reduce storage costs for the outputs; however, there is a trade-off between packaging costs and storage costs.
Benefits

Leverage the Video on Demand on AWS solution or the Video on Demand on AWS Foundation solution as a reference implementation to automatically provision the AWS services necessary to build a scalable, distributed video-on-demand workflow.
The Video on Demand on AWS Foundation solution can be easily customized and used as the starting point to create a more complex workflow. Alternatively, the Video on Demand on AWS solution leverages AWS Step Functions, which breaks the workflow into individual steps, making it easier to customize or extend the architecture for your specific video-on-demand needs.
Technical details

The following diagrams present the serverless architecture you can automatically deploy using the each solution's implementation guide and accompanying AWS CloudFormation template.
-
Video on Demand on AWS Foundation
-
Video on Demand on AWS
-
Video on Demand on AWS Foundation
-
Step 1
An Amazon Simple Storage Service (Amazon S3) bucket to store source video files. A sample job settings file, used to define the encoding settings for MediaConvert, is uploaded to the source S3 bucket.Step 2
An AWS Lambda function to create the encoding jobs in AWS Elemental MediaConvert.Step 3
MediaConvert transcodes the video into HLS Adaptive Bitrate files.Step 4
Amazon CloudWatch tracks encoding jobs in MediaConvert and invokes the Lambda job complete function.Step 5
A Lambda job complete function to process the outputs.Step 6
An Amazon Simple Notification Service (Amazon SNS) topic to send notifications of completed jobs.Step 7
A destination S3 bucket to store the outputs from MediaConvert.Step 8
Amazon CloudFront is configured with the destination S3 bucket as the origin for global distribution of the transcoded video content.About this deploymentVersion1.3.0Released05/2023AuthorAWSEst. deployment time10 minsEstimated costDeployment optionsReady to get started?Deploy this solution by launching it in your AWS Console
Need help? Deploy with a partner.Find an AWS Certified third-party expert to assist with this deployment
-
Video on Demand on AWS
-
Step 1
An Amazon Simple Storage Service (Amazon S3) bucket for source media files. Content is eventually stored in Amazon S3 Glacier.Step 2
AWS Step Functions, which creates ingest, processing, and publishing step functions.Step 3
AWS Elemental MediaConvert to transcode media files from their source format.Step 4
AWS Lambda functions that perform the work of each step, and process error messages.
Step 5
An Amazon DynamoDB table stores data captured through the workflow.Step 6
Amazon CloudWatch for logging and Amazon CloudWatch Events rules for AWS Elemental MediaConvert notifications.Step 7
Amazon Simple Notification Service (Amazon SNS) topics to send encoding, publishing, and error notifications.Step 8
AWS Elemental MediaPackage (optional) to create video streams formatted to play on several devices from a single video input.Step 9
An Amazon S3 bucket for storing destination media files.Step 10
An Amazon CloudFront distribution to deliver your video content to end users.Step 11
An Amazon Simple Queue Service (Amazon SQS) queue to capture the workflow outputs.About this deploymentVersion6.1.2Released05/2023AuthorAWSEst. deployment time20 minsEstimated costDeployment optionsReady to get started?Deploy this solution by launching it in your AWS Console
Need help? Deploy with a partner.Find an AWS Certified third-party expert to assist with this deployment
Related content

This course provides learners essential information on how video content is streamed over the internet, and how to design cloud-based media workflows for a variety of use cases.
This Learning Plan is designed to help Business Decision Makers, Media Engineers, and Media Operators use AWS services to create high-quality media experiences.