The Growing Need For A Simple VOD Solution

At TrackIt, we have experienced a growing number of content creators looking for an easy-to-use and simple VOD solution they can implement to start sharing their content with users.

As of September 2019, there was no offering currently available in the AWS marketplace that serves as a full-package plug-and-play VOD solution. Some VOD workflows made by AWS are available on GitHub, such as aws-media-services-simple-vod-workflow but as you will discover below these workflows are not as complete as the one presented in this post.

API that allows the content creator to perform CRUD operations on the content Content tagging in the S3 buckets Cognito integration for user management Content Metadata stored in DynamoDB White label branding capability Easy installation with just a single command required to deploy the full stack M3U8 support through Apple HLS

Recognizing the need, TrackIt has developed and shared a clean and simple VOD workflow that can be quickly deployed on AWS with minimal technical expertise.

Since we have strong experience with open-source software and AWS solutions, we decided to publish this workflow on GitHub.

Challenges For Content Creators

1. Limited Control Over Video Content

When using AWS, content creators typically choose to store their video content in S3 buckets. Unfortunately, this provides very little control over the content related to the video. For example, a content creator can easily add tags but cannot add more (video metadata) information about the video such as location, name of the video creator, etc.

2. Potential Security Risks

In order to allow viewers to access the videos from a website, content creators will often implement one of two scenarios:

Make the S3 bucket public: In this case, everyone can access all of the content — including private videos. Add specific policies to the bucket: This approach is prone to mistakes in configuration that expose the content creators to possible security breaches.

As a result, using these approaches for a website to provide viewers with access to video content risks opening backdoor access into their AWS accounts.

3. Issues With Video Quality/Resolution

In the absence of a purpose-built VOD solution, content creators generally only provide their viewers with videos of a single quality — the original quality of the uploaded video. Thus viewers with low bandwidth connections might have trouble buffering the content, and those with high bandwidth don’t have the option of experiencing higher-quality video.

The VOD Workflow

TrackIt’s workflow has been designed to be an easy-to-implement and elegant VOD solution. Our workflow implements only the minimum services required.

An API gateway is used to make requests, S3 buckets are used to store video content, and AWS Elemental MediaConvert transcodes content and manages format resolutions.

AWS Elemental MediaConvert

AWS Elemental MediaConvert is a file-based video transcoding service that allows users to easily create video-on-demand (VOD) content for broadcast and multiscreen delivery at scale. Using MediaConvert allows content creators to provide users with multiple resolutions for each of the videos.

How It Works

MediaConvert is used for video transcoding.

The source video is converted into two different kinds of output: MP4 and HLS (allowing users access to multiple resolutions they can switch between during playback).

In our use case MediaConvert also generates thumbnails by extracting multiple evenly distributed frames in the video to provide a preview capability.

Details of a job in MediaConvert

Amazon CloudFront

Amazon CloudFront is AWS’ content delivery network (CDN). CloudFront provides content creators a simple and straightforward solution for video delivery with in-built caching mechanisms. A content creator simply needs to create a new distribution and select the right S3 buckets as targets, and CloudFront does the rest of the work.

Distribution in CloudFront

How the Workflow Works

This workflow creates buckets that will be used to store the video content

An API is used to manage VOD content

An input bucket is created to store raw video content uploaded by the content creator

Once a file is uploaded into this bucket, a Lambda function is triggered which creates a MediaConvert job to transcode the video

The transcoded videos are then stored in an output bucket

The API Gateway provides a method for users to make requests to retrieve the list of transcoded videos available in the output bucket

Features of the Workflow