We use essential cookies and similar tools that are necessary to provide our site and services. We use performance cookies to collect anonymous statistics, so we can understand how customers use our site and make improvements. Essential cookies cannot be deactivated, but you can choose “Customize” or “Decline” to decline performance cookies.
If you agree, AWS and approved third parties will also use cookies to provide useful site features, remember your preferences, and display relevant content, including relevant advertising. To accept or decline all non-essential cookies, choose “Accept” or “Decline.” To make more detailed choices, choose “Customize.”
Customize cookie preferences
We use cookies and similar tools (collectively, "cookies") for the following purposes.
Essential
Essential cookies are necessary to provide our site and services and cannot be deactivated. They are usually set in response to your actions on the site, such as setting your privacy preferences, signing in, or filling in forms.
Performance
Performance cookies provide anonymous statistics about how customers navigate our site so we can improve site experience and performance. Approved third parties may perform analytics on our behalf, but they cannot use the data for their own purposes.
Allowed
Functional
Functional cookies help us provide useful site features, remember your preferences, and display relevant content. Approved third parties may set these cookies to provide certain site features. If you do not allow these cookies, then some or all of these services may not function properly.
Allowed
Advertising
Advertising cookies may be set through our site by us or our advertising partners and help us deliver relevant marketing content. If you do not allow these cookies, you will experience less relevant advertising.
Allowed
Blocking some types of cookies may impact your experience of our sites. You may review and change your choices at any time by selecting Cookie preferences in the footer of this site. We and selected third-parties use cookies or similar technologies as specified in the AWS Cookie Notice.
Your privacy choices
We display ads relevant to your interests on AWS sites and on other properties, including cross-context behavioral advertising. Cross-context behavioral advertising uses data from one site or app to advertise to you on a different company’s site or app.
To not allow AWS cross-context behavioral advertising based on cookies or similar technologies, select “Don't allow” and “Save privacy choices” below, or visit an AWS site with a legally-recognized decline signal enabled, such as the Global Privacy Control. If you delete your cookies or visit this site from a different browser or device, you will need to make your selection again. For more information about cookies and how we use them, please read our AWS Cookie Notice.
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.
This solution is designed to help you start encoding video files with AWS Elemental MediaConvert. It can be easily customized and used as the starting point to create a more complex workflow.
Out of the box, this solution helps you to accomplish the following:
Automatically transcode videos uploaded to Amazon Simple Storage Service (Amazon S3) into formats suitable for playback on a wide range of devices.
Customize AWS Elemental 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.
Video on Demand on AWS
This solution extends the Video on Demand on AWS Foundation solution with additional features and several options that can be customized.
blank
This solution provides the following features:
AWS 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 an Amazon 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.
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.
Customization
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.
Step 8 A destination S3 bucket stores the MediaConvert outputs.
Step 9 Amazon CloudFront is configured with the destination S3 bucket as the origin for global distribution of the transcoded video content.
Step 1 An Amazon Simple Storage Service (Amazon S3) bucket stores source video files. The solution uploads a sample job settings file to the source S3 bucket. This file defines the encoding settings for AWS Elemental MediaConvert.
Step 2 An AWS Lambda job submit function creates the encoding jobs in MediaConvert.
Step 3 MediaConvert transcodes the video into HTTP Live Stream (HLS) adaptive bitrate (ABR) files.
Step 4 Amazon CloudWatch logs metrics about encoding jobs in MediaConvert.
Step 8 A destination S3 bucket stores the MediaConvert outputs.
Step 9 Amazon CloudFront is configured with the destination S3 bucket as the origin for global distribution of the transcoded video content.
Step 1 An Amazon Simple Storage Service (Amazon S3) bucket stores source video files. The solution uploads a sample job settings file to the source S3 bucket. This file defines the encoding settings for AWS Elemental MediaConvert.
Step 2 An AWS Lambda job submit function creates the encoding jobs in MediaConvert.
Step 3 MediaConvert transcodes the video into HTTP Live Stream (HLS) adaptive bitrate (ABR) files.
Step 4 Amazon CloudWatch logs metrics about encoding jobs in MediaConvert.
Step 8 A destination S3 bucket stores the MediaConvert outputs.
Step 9 Amazon CloudFront is configured with the destination S3 bucket as the origin for global distribution of the transcoded video content.
Step 1 An Amazon Simple Storage Service (Amazon S3) bucket stores source video files. The solution uploads a sample job settings file to the source S3 bucket. This file defines the encoding settings for AWS Elemental MediaConvert.
Step 2 An AWS Lambda job submit function creates the encoding jobs in MediaConvert.
Step 3 MediaConvert transcodes the video into HTTP Live Stream (HLS) adaptive bitrate (ABR) files.
Step 4 Amazon CloudWatch logs metrics about encoding jobs in MediaConvert.
Step 8 A destination S3 bucket stores the MediaConvert outputs.
Step 9 Amazon CloudFront is configured with the destination S3 bucket as the origin for global distribution of the transcoded video content.
Step 1 An Amazon Simple Storage Service (Amazon S3) bucket stores source video files. The solution uploads a sample job settings file to the source S3 bucket. This file defines the encoding settings for AWS Elemental MediaConvert.
Step 2 An AWS Lambda job submit function creates the encoding jobs in MediaConvert.
Step 3 MediaConvert transcodes the video into HTTP Live Stream (HLS) adaptive bitrate (ABR) files.
Step 4 Amazon CloudWatch logs metrics about encoding jobs in MediaConvert.
Step 6 CloudWatch for logging and CloudWatch Events rules for MediaConvert notifications.
Step 7 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, and protect content from unauthorized use through content encryption and digital rights management.
Step 9 An S3 bucket for storing destination media files.
Step 10 A CloudFront distribution to deliver your video content to end users.
Step 1 An 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 MediaConvert to transcode media files from their source format.
Step 4 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 CloudWatch for logging and CloudWatch Events rules for MediaConvert notifications.
Step 7 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, and protect content from unauthorized use through content encryption and digital rights management.
Step 9 An S3 bucket for storing destination media files.
Step 10 A CloudFront distribution to deliver your video content to end users.
Step 6 CloudWatch for logging and CloudWatch Events rules for MediaConvert notifications.
Step 7 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, and protect content from unauthorized use through content encryption and digital rights management.
Step 9 An S3 bucket for storing destination media files.
Step 10 A CloudFront distribution to deliver your video content to end users.
Step 1 An 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 MediaConvert to transcode media files from their source format.
Step 4 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 CloudWatch for logging and CloudWatch Events rules for MediaConvert notifications.
Step 7 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, and protect content from unauthorized use through content encryption and digital rights management.
Step 9 An S3 bucket for storing destination media files.
Step 10 A CloudFront distribution to deliver your video content to end users.
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.