AWS CDK MediaServices Reference Architectures

February 19, 2025 ยท View on GitHub

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

ExampleTypeDescription
live encoding loop (LILO)FoundationalThe live encoding loop example is intended to provide a live channel from a video file.
Live Event Framework (LEF)AdvancedSample Live Event Framework supporting the deployment of multiple concurrent MediaPackage V2 live events (or 24x7 channel) with or without MediaTailor Ad Insertion.
Live Low Latency OTT workflow using MediaPackage V2 (OTT_LOW_LATENCY)AdvancedCreating 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)AdvancedCreating a highly configurable Live OTT stream using MediaLive, MediaPackage and CloudFront.
Live Ad insertion workflow (SSAI)AdvancedExample to provide Dynamic Ad Insertion using MediaTailor.
Live Ad insertion workflow (SSAI_CMAF_AND_DASH)AdvancedExample to provide Dynamic Ad Insertion using MediaTailor with CMAF and DASH.
Sustainable Outputs from MediaLive (SUSTAINABILITY_LIVE)ProfessionalSustainable code example to cover how to share encodes across multple outputs.
MediaLive Private Networking Output (PRIVATE_LIVE)ProfessionalSample 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)ProfessionalExample 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)ProfessionalExample use case of using Elemental MediaLive & Elemental MediaPackage to create a simple audio only workflow.
Monitoring your Live Workflow (LIVE_CW_MONITOR)ProfessionalExample 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)ProfessionalExample of using MediaLive source thumbnails and output frame capture to build a HTML template for monitoring your live stream.
Infrastructure for granting EMX Entitlements to another account and stop secrets being shared via another medium (EMX_SECRET_SHARING)AdvancedExample architecture on how you could share secrets automatically between accounts, without having to use another medium.

Coming Soon

ExampleTypeDescription
Social Network Publication (SNP)FoundationalThis 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)AdvancedCreating a highly configurable Live OTT streaming using MediaLive, MediaPackage and CloudFront using Secure Media Delivery at the Edge Solution.
Ad insertion workflow (SSAI_SECURE)AdvancedExample 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.