All Projects → aws-solutions → live-streaming-on-aws-with-mediastore

aws-solutions / live-streaming-on-aws-with-mediastore

Licence: Apache-2.0 license
Live streaming on AWS with Amazon S3 automatically configures AWS Elemental MediaLive, Amazon S3 and Amazon CloudFront to ingest, encode, package and deliver a single source live stream through the AWS Cloud. The Solution provides 3 Encoding profiles to support 1080p through 288p HTTP live streaming (HLS) outputs.

Programming Languages

javascript
184084 projects - #8 most used programming language
typescript
32286 projects
shell
77523 projects

Projects that are alternatives of or similar to live-streaming-on-aws-with-mediastore

live-stream-on-aws
The live stream solution is a reference deployment that demonstrates how to deliver highly available live streaming video through an integrated workflow between Elemental Cloud and AWS.
Stars: ✭ 258 (+207.14%)
Mutual labels:  live-streaming, cloudfront, ott, medialive
S3 Deploy Website
Deploy website to S3/CloudFront from Python
Stars: ✭ 26 (-69.05%)
Mutual labels:  s3, cloudfront
Aws
A collection of bash shell scripts for automating various tasks with Amazon Web Services using the AWS CLI and jq.
Stars: ✭ 493 (+486.9%)
Mutual labels:  s3, cloudfront
react-deploy-s3
Deploy create react app's in AWS S3
Stars: ✭ 67 (-20.24%)
Mutual labels:  s3, cloudfront
serverless-aws-static-websites
Deploy your static websites without all the hassle on AWS with CloudFront, S3, ACM and Route53 via Serverless
Stars: ✭ 121 (+44.05%)
Mutual labels:  s3, cloudfront
Dive-Into-AWS
Links to the Repos and Sections in our Dive into AWS Course.
Stars: ✭ 27 (-67.86%)
Mutual labels:  s3, cloudfront
Cyberduck
Cyberduck is a libre FTP, SFTP, WebDAV, Amazon S3, Backblaze B2, Microsoft Azure & OneDrive and OpenStack Swift file transfer client for Mac and Windows.
Stars: ✭ 1,080 (+1185.71%)
Mutual labels:  s3, cloudfront
CloudHunter
Find unreferenced AWS S3 buckets which have CloudFront CNAME records pointing to them
Stars: ✭ 31 (-63.1%)
Mutual labels:  s3, cloudfront
Confetti
🎉 A tool to help creating and deploying static sites with AWS
Stars: ✭ 96 (+14.29%)
Mutual labels:  s3, cloudfront
Scar
Deploy static websites in seconds - with HTTPS, a global CDN, and custom domains.
Stars: ✭ 1,715 (+1941.67%)
Mutual labels:  s3, cloudfront
Terraform Aws Cloudfront S3 Cdn
Terraform module to easily provision CloudFront CDN backed by an S3 origin
Stars: ✭ 162 (+92.86%)
Mutual labels:  s3, cloudfront
gozeit
GoZeit
Stars: ✭ 19 (-77.38%)
Mutual labels:  s3, cloudfront
terraform-aws-frontend
Collection of Terraform modules for frontend app deployment on AWS.
Stars: ✭ 31 (-63.1%)
Mutual labels:  s3, cloudfront
simply-static-deploy
WordPress plugin to deploy static sites easily to an AWS S3 bucket.
Stars: ✭ 48 (-42.86%)
Mutual labels:  s3, cloudfront
cloudfront-image-proxy
Make CloudFront resize images "on the fly" via lambda@edge, cache it and persists it in S3.
Stars: ✭ 32 (-61.9%)
Mutual labels:  s3, cloudfront
Workshop Donkeytracker
Workshop to build a serverless tracking application for your mobile device with an AWS backend
Stars: ✭ 27 (-67.86%)
Mutual labels:  s3, cloudfront
Gatsby Plugin S3
Deploy your gatsby site to a S3 bucket.
Stars: ✭ 186 (+121.43%)
Mutual labels:  s3, cloudfront
nott
The New OTT Platform - an excuse to discuss and design a simple edge computing platform
Stars: ✭ 46 (-45.24%)
Mutual labels:  live-streaming, ott
React Deploy S3
Deploy create react app's in AWS S3
Stars: ✭ 66 (-21.43%)
Mutual labels:  s3, cloudfront
Lad
👦 Lad is the best Node.js framework. Made by a former Express TC and Koa team member.
Stars: ✭ 2,112 (+2414.29%)
Mutual labels:  s3, cloudfront

Live Streaming on AWS with Amazon S3

Live streaming on AWS with Amazon S3 automatically configures AWS Elemental MediaLive, Amazon S3 and Amazon CloudFront to ingest, encode, package and deliver a single source live stream through the AWS Cloud. The Solution provides 3 Encoding profiles to support 1080p through 288p HTTP live streaming (HLS) outputs. For more details see the solution home page.

The solution was developed using the AWS Cloud Development Kit and also leverages a AWS Solutions Construct CloudFrontToS3

On this Page

Architecture Overview

Architecture

Input Options

The solution supports RTP Push, RTMP push, HLS and AWS Elemental Link input types. For more detialed instructions see the implementation guide on the solution home page.

Encoding Profiles:

  • HD-1080p profile: 1920x1080, 1280x720, 960x540, 768x432, 640x360, 512x288
  • HD-720p profile: 1280x720, 960x540, 768x432, 640x360, 512x288
  • SD-540p profile: 960x540, 768x432, 640x360, 512x288

Deployment

The solution can be deployed through the CloudFormation template available on the solution home page.

Creating a custom build

Prerequisites:

The are 2 options for deploying the solution: using the CDK deployment tools or running the build script to generate a CFN template and the packaged lambda code.

Options 1: Deploying through the CDK.

This options simply flollows the standard CDK deployment process. You will need to run cdk bootstrap before you run cdk deply the first time to setup the cdk resource in your AWS account. Details on using the CDK can be found [here].

  1. Download or clone the repo and make the required changes to the source code.
  2. installl the dependecies for the lambda function and construct.
  3. then run cdk deploy (first time use you will need to run cdk bootstrap first)
cd ./source/custom-resource
npm install --production
cd ../constructs
npm install 
cdk bootstrap //if you havent already done so.
cdk deploy

Option 2: Generate a CloudFormation template.

The CloudFormation template (generated by the CDK) includes a lambda backed custom resource to configure MediaLive and create a UUID. To launch the solution the Lambda source code has to be deployed to an Amazon S3 bucket in the region you intend to deploy the solution.

1. Clone the repo

Download or clone the repo and make the required changes to the source code.

2. Running unit tests for customization

Run unit tests to make sure added customization passes the tests:

cd ./deployment
chmod +x ./run-unit-tests.sh && ./run-unit-tests.sh

3. Create an Amazon S3 Bucket

The CloudFormation template is configured to pull the Lambda deployment packages from Amazon S3 bucket in the region the template is being launched in. Create a bucket in the desired region with the region name appended to the name of the bucket. eg: for us-east-1 create a bucket named: my-bucket-us-east-1

aws s3 mb s3://my-bucket-us-east-1

4. Create the deployment packages

Build the distributable:

chmod +x ./build-s3-dist.sh
./build-s3-dist.sh <my-bucket> live-streaming-on-aws-with-amazon-s3 <version>

Notes: The build-s3-dist script expects the bucket name as one of its parameters. This value should not have the region suffix (remove the -us-east-1)

Ensure that you are owner of the AWS S3 bucket.

aws s3api head-bucket --bucket my-bucket-us-east-1 --expected-bucket-owner YOUR-AWS-ACCOUNT-NUMBER

Deploy the distributable to the Amazon S3 bucket in your account:

aws s3 sync ./regional-s3-assets/ s3://my-bucket-us-east-1/live-streaming-on-aws-with-amazon-s3/<version>/ 
aws s3 sync ./global-s3-assets/ s3://my-bucket-us-east-1/live-streaming-on-aws-with-amazon-s3/<version>/ 

5. Launch the CloudFormation template.

  • Get the link of the live-streaming-on-aws-with-amazon-s3.template uploaded to your Amazon S3 bucket.
  • Deploy the solution.

Deploying with minimum permissions

When deploying this solution you may have a DevOps operator IAM user that deploys this CloudFormation template. The json file located at the following directory is the minimum IAM permissions that an AWS IAM user needs to be able to deploy the CloudFormation template successfully.

deployment/min_user_iam_deploy.json

License

  • This project is licensed under the terms of the Apache 2.0 license. See LICENSE.

This solution collects anonymous operational metrics to help AWS improve the quality of features of the solution. For more information, including how to disable this capability, please see the implementation guide.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].