

# Deploy a customizable architecture to build a video-on-demand workflow
<a name="solution-overview"></a>

Publication date: *December 2020 ([last update](revisions.md): November 2024)*

 Video on Demand on AWS Foundation is a reference implementation that automatically provisions the Amazon Web Services (AWS) services necessary to build a scalable, distributed video-on-demand workflow. 

 To build highly available, resilient architectures that ingest, store, process, and deliver video content on demand, this solution uses the following AWS services: 
+  [AWS Elemental MediaConvert](https://aws.amazon.com/mediaconvert/) to transcode media files from their source format into versions that play back on smartphones, tablets, PCs, and other devices. 
+  [Amazon CloudFront](https://aws.amazon.com/cloudfront/) for global distribution. 
+  [Amazon Simple Storage Service](https://aws.amazon.com/s3/) (Amazon S3) for object storage. 
+  [AWS Lambda](https://aws.amazon.com/lambda/) to run code without provisioning or managing servers. 
+  [Amazon EventBridge](https://aws.amazon.com/eventbridge/) to invoke the Lambda job complete function. 
+  [Amazon CloudWatch](https://aws.amazon.com/cloudwatch/) to log metrics about encoding jobs in MediaConvert. 
+  [Amazon Simple Notification Service](https://aws.amazon.com/sns/) (Amazon SNS) to send notifications for completed jobs. 

 We designed this solution to help you begin encoding video files with MediaConvert. Out of the box, this solution provides a sample MediaConvert `job-settings.json` file, which you can use to transcode videos uploaded to an Amazon S3 bucket. By default, the solution can encode MP4, MPG, M4V, M2TS, and MOV files. You can customize the architecture to encode any media file type supported by MediaConvert. For more information, refer to [Customization](customization.md). 

 If you want to build out more complex workflows with options around ingest processing and publishing video content, AWS also offers the [Video on Demand on AWS](https://aws.amazon.com/solutions/implementations/video-on-demand-on-aws) solution. 

 This implementation guide provides an overview of the Video on Demand on AWS Foundation solution, its reference architecture and components, considerations for planning the deployment, configuration steps for deploying the solution to the AWS Cloud. 

 The intended audience for using this solution's features and capabilities in their environment includes IT infrastructure architects, solution architects, administrators, business decision makers, DevOps engineers, data scientists, and cloud professionals. 

 Use this navigation table to quickly find answers to these questions: 


|  If you want to . . .  |  Read . . .  | 
| --- | --- | 
|   Know the cost for running this solution.   The estimated cost for running this solution in the US East (N. Virginia) Region is approximately \$1232.86 per month, per job for AWS resources.   |  [Cost](cost.md)  | 
|  Understand the security considerations for this solution.  |  [Security](security-1.md)  | 
|  Know how to plan for quotas for this solution.  |  [Quotas](quotas.md)  | 
|  Know which AWS Regions support this solution.  |  [Supported AWS Regions](plan-your-deployment.md#supported-aws-regions)  | 
|  View or download the AWS CloudFormation template included in this solution to automatically deploy the infrastructure resources (the "stack") for this solution.  |  [AWS CloudFormation template](aws-cloudformation-template.md)  | 
| Access the source code and optionally use the AWS Cloud Development Kit (AWS CDK) to deploy the solution. | [GitHub repository](https://github.com/awslabs/video-on-demand-on-aws-foundations) | 

# Features and benefits
<a name="features-and-benefits"></a>

 The solution provides the following features: 

 **Reference implementation** 

 Leverage this solution as a reference implementation to automatically provision the AWS services necessary to build a scalable, distributed video-on-demand workflow. 

 **Customization** 

 You can customize this solution and then use it as the starting point to create a more complex workflow.  

 **Integration with Service Catalog AppRegistry and Application Manager, a capability of AWS Systems Manager ** 

 This solution includes an [Service Catalog AppRegistry](https://docs.aws.amazon.com/servicecatalog/latest/arguide/intro-app-registry.html) resource to register the solution's [AWS CloudFormation](https://aws.amazon.com/cloudformation/) template and its underlying resources as an application in both AppRegistry and [Application Manager](https://docs.aws.amazon.com/systems-manager/latest/userguide/application-manager.html). With this integration, you can centrally manage the solution's resources and enable application search, reporting, and management actions. 

# Use cases
<a name="use-cases"></a>

 **Streaming media** 

 As consumer demand for video streaming increases, media and entertainment companies are looking for secure and reliable web-based video streaming alternatives to traditional television. This solution automatically provisions the services necessary to build a scalable, distributed architecture that ingests, stores, processes, and delivers video content. Using this solution, you can avoid inefficient trial-and-error approaches, and save on time and costs for your streaming media projects. 

 **Educational content delivery** 

 Professional development and educational initiatives create incentives and can be important revenue generators for nonprofit organizations. This solution can help you create modern, scalable content delivery and learning management systems (LMS) to support your membership and programming offerings. The solution streamlines the processes for delivering online training and learning content. 

# Concepts and definitions
<a name="concepts-and-definitions"></a>

 This section describes key concepts and defines terminology specific to this solution:  

 **application** 

 A logical group of AWS resources that you want to operate as a unit. 

 **Dynamic Adaptive Streaming over HTTP (DASH)** 

 An HTTP-based streaming protocol (also known as MPEG-DASH) to deliver media over the internet and developed under Motion Picture Experts Group (MPEG). 

 **HTTP Live Streaming (HLS)** 

 An HTTP-based streaming protocol to deliver media over the internet and developed by Apple Inc. 

 **Quality-Defined Variable Bitrate (QVBR)** 

 A video encoding technology that uses fewer bits in low-complexitiy periods of content, and more bits during high-completely periods (up to the maximum bitrate), delivering consistently high video quality. For more information, see [What is Quality-Defined Variable Bitrate (QVBR)?](https://aws.amazon.com/media/tech/quality-defined-variable-bitrate-qvbr/) 

 **workflow** 

 Generated state machines that run a number of operations in sequence. 

**Note**  
For a general reference of AWS terms, see the [AWS Glossary](https://docs.aws.amazon.com/general/latest/gr/glos-chap.html). 