What solutions are available for processing video-on-demand content on AWS?
Amazon Web Services (AWS) provides two media solutions to cost-effectively deliver video-on-demand (VOD) content to global audiences using the AWS Cloud. The Video on Demand on AWS solution, and the Video on Demand on AWS Foundation solution both provision the AWS services required to build scalable, distributed VOD processing and delivery workflows. This page provides guidance to choose the streaming solution that best fits your needs.
Out of the box, this solution enables you to accomplish the following:
- Automatically transcode videos uploaded to S3 into formats suitable for playback on a wide range of devices.
- Easily 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.
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 encryption. MediaPackage can reduce storage costs for the outputs; however, there is a trade-off between packaging costs and storage costs.
-
Video on Demand on AWS Foundation
-
Video on Demand on AWS
-
Video on Demand on AWS Foundation
-
Video on Demand on AWS Foundation Solutions Implementation overview
The diagram below presents the serverless architecture you can automatically deploy using the solution's implementation guide and accompanying AWS CloudFormation template.Video on Demand on AWS Foundation Solutions Implementation architecture
When a video is uploaded to the source S3 bucket, the solution triggers an AWS Lambda function that submits an encoding job to AWS Elemental MediaConvert using an Amazon Simple Storage Service (Amazon S3) event notification.
MediaConvert transcodes the source video into multiple adaptive bitrate outputs including HLS, DASH, and MP4 formats, which are stored in the destination S3 bucket. An Amazon CloudFront distribution is deployed for global distribution of the transcoded content with the destination S3 bucket as the origin.
An Amazon CloudWatch Events notification is configured to trigger the job complete Lambda function, which stores all of the job settings and CloudFront URLs for the MediaConvert outputs in a manifest file in the source S3 bucket.
An Amazon Simple Notification Service (Amazon SNS) topic is configured to receive notification of all jobs completed by the workflow.
Video on Demand on AWS Foundation
Version 1.1.0
Last updated: 11/2020
Author: AWS
Estimated deployment time: 10 min
Deployment resources
Download implementation guideUse the button below to subscribe to solution updates.Note: To subscribe to RSS updates, you must have an RSS plug-in enabled for the browser you are using.
-
Video on Demand on AWS
-
Video on Demand on AWS Solutions Implementation overview
The diagram below presents the serverless architecture you can automatically deploy using the solution's implementation guide and accompanying AWS CloudFormation template.Video on Demand on AWS Solutions Implementation architecture
This solution uses AWS Lambda to trigger AWS Step Functions for ingest, processing, and publishing workflows.
A Step Functions workflow ingests a source video, or a source video and metadata file, validates the source files, and generates metadata on the source video. A second Step Functions workflow generates an encoding profile based on the metadata and submits encoding jobs to AWS Elemental MediaConvert. After the video is encoded, a third Step Functions workflow validates the output.
AWS Elemental MediaConvert uses two-pass encoding to generate multiple high-quality versions of the original file. Source and destination media files are stored in Amazon Simple Storage Service (Amazon S3) and file metadata is stored in Amazon DynamoDB. If enabled, source files are tagged to allow the files to be moved to Amazon Glacier using an Amazon S3 lifecycle policy.
The solution also includes the option to use AWS Elemental MediaPackage as part of the workflow. When enabled, the solution creates a separate set of MediaConvert custom templates, and a packaging group in MediaPackage that is configured to ingest the MediaConvert HLS output stored in Amazon S3. MediaPackage packages the content, formatting it in response to playback requests from downstream devices. By default, this solution creates packaging configurations for HLS, DASH, MSS, and CMAF.
Amazon CloudFront is used for global distribution of the workflow outputs and the solution also includes options for Amazon Simple Notification Service (Amazon SNS) notifications or publishing to an Amazon Simple Queue Service (Amazon SQS) topic.
Video on Demand on AWS
Version 5.2.0
Last updated: 12/2020
Author: AWS
Estimated deployment time: 20 min
Deployment resources
Download implementation guideUse the button below to subscribe to solution updates.Note: To subscribe to RSS updates, you must have an RSS plug-in enabled for the browser you are using.
Features
Reference implementation
Customization

Browse our library of AWS Solutions Implementations to get answers to common architectural problems.

Find AWS certified consulting and technology partners to help you get started.

Browse our portfolio of Consulting Offers to get AWS-vetted help with solution deployment.