Skip to content

aws-samples/aws-cdk-mediaservices-refarch

AWS CDK MediaServices Reference Architectures

Table of content

Introduction

The aim of this project is to provide a broader understanding of the media services as well as how to implement them to build media supply chain, media infrastructure and media application workflow.

Services

This project will provide you with deployment samples for the following AWS services:

  • AWS Elemental Connect (EMX)
  • AWS Elemental MediaLive (EML)
  • AWS Elemental MediaLive Statmux (EML-STX)
  • AWS Elemental MediaConvert (EMC)
  • AWS Elemental MediaPackage (EMP)
  • AWS Elemental MediaStore (EMS)
  • AWS Elemental MediaTailor (EMT)
  • AWS Elemental Channel Assembly (ECA)
  • AWS Elemental Secure Packager and Encoder Key Exchange (SPEKE)
  • Amazon Interactive Video Service (IVS)

Some examples will also demonstrate the integration of MediaServices with other AWS services through detailed use cases.

Prerequisites

Before you start with this project make sure you are familiar with the following tools:

  • AWS CLI v2
  • AWS CDK
  • AWS SDK for Python

Reference Architectures

Example Type Description
live encoding loop (LILO) Foundational The live encoding loop example is intended to provide a live channel from a video file.
Live Low Latency OTT workflow using MediaPackage V2 (OTT_LOW_LATENCY) Advanced Creating a highly configurable low latency and standard latency Live OTT stream using MediaLive, MediaPackage V2 and CloudFront. This supercedes the OTT project and should be used for new HLS and CMAF deployments.
Live OTT workflow (OTT) Advanced Creating a highly configurable Live OTT stream using MediaLive, MediaPackage and CloudFront.
Live Ad insertion workflow (SSAI) Advanced Example to provide Dynamic Ad Insertion using MediaTailor.
Live Ad insertion workflow (SSAI_CMAF_AND_DASH) Advanced Example to provide Dynamic Ad Insertion using MediaTailor with CMAF and DASH.
Sustainable Outputs from MediaLive (SUSTAINABILITY_LIVE) Professional Sustainable code example to cover how to share encodes across multple outputs.
MediaLive Private Networking Output (PRIVATE_LIVE) Professional Sample code for sending an output from MediaLive via a VPC (and a private subnet). This could be to your own Origin solution running in your VPC.
Live2VoD workflow (LIVE2VOD) Professional Example for demonstrating a Live2VoD workflow in CDK, which uses a REST API to initiate the Harvest with MediaPackage and EventBridge to capture the completition.
Audio Only with EMP workflow (AUDIO_ONLY_EMP) Professional Example use case of using Elemental MediaLive & Elemental MediaPackage to create a simple audio only workflow.
Monitoring your Live Workflow (LIVE_CW_MONITOR) Professional Example of using CloudWatch dashboards to monitor your live workflow with CloudWatch metrics produced by MediaLive & MediaPackage.
Monitoring your MediaLive input and output with thumbnails (LIVE_THUMBNAIL_MONITORING) Professional Example of using MediaLive source thumbnails and output frame capture to build a HTML template for monitoring your live stream.

Coming Soon

Example Type Description
Social Network Publication (SNP) Foundational This example is intended to provide a live channel to publish directly to social network platform using RTMP output.
Static packaging/origination (ORG) Foundational
Feeder (FDR) Foundational
Subscriber local (SBRL) Foundational
Subscriber remote (SBRR) Foundational
Live to archive workflow (L2A) Advanced
Live broadcast workflow (BSCT) Advanced
Live OTT workflow (OTT_SECURE) Advanced Creating a highly configurable Live OTT streaming using MediaLive, MediaPackage and CloudFront using Secure Media Delivery at the Edge Solution.
Ad insertion workflow (SSAI_SECURE) Advanced Example to provide Dynamic Ad Insertion using MediaTailor. This example provides an integration with the Secure Media Delivery at the Edge solution for a secure streaming.

License

This library is licensed under the MIT-0 License. See the LICENSE file.