AWS RTMP Live-Streaming/VOD Solution using MediaLive, MediaPackage, CloudFront, and S3

24 Dec 2018

My solution for streaming, high quality 360 video using the Media Services provided by AWS. This is a fully serverless, scalable solution.

Here is my working, production design for an AWS architecture capable of receiving 360 degree panoramic 8k video via an RTMP endpoint and live-streaming at varying bitrates and resolutions to various client devices. The architecture also includes an archiving step for users that may find it necessary.

Architecture Walkthrough

  1. The client records stunning 360 video (preferably using a Bonsai Excalibur) and uses OpenBroadcaster Software (OBS) to stream the feed to an AWS MediaLive RTMP endpoint. MediaLive offers dual ingest - two endpoints capable of receiving the stream.
  2. MediaLive saves the incoming live stream to .ts files in S3. This allows us to support highly durable storage of important video files. These files will later be moved to Glacier to save on storage costs.
  3. MediaLive compresses and transcodes the incoming streaming into various output formats that will support low and high bandwidth users. Everything from 320p to 8k video is supported!
  4. MediaPackage uses the MediaLive channels to prepare the videos for distribution to various devices.
  5. The live HLS streams are available via CloudFront endpoints - using a CDN cuts down on cost, and allows us to distribute high resolution video from low latency endpoints around the world.

Note: I am working on a CloudFormation script to automatically deploy this. More to come.