Serverless Media Video Ingestion Process on AWS Platform (PoC)
This application has been tested on Firefox ESR 45.7.0 and Google Chrome Version 53.0.2785.116.
- If not already authenticated, click 'Login with Amazon'. This will direct you to login using your Amazon identity and obtain Amazon Cognito credentials in order to upload media to an Amazon S3 bucket.
- You will be asked to allow access to your camera and microphone so that an HTML5 MediaStream object can be constructed and played in the 'Live' player.
- In the 'Live' section, enter a name for the media file you will record and click the record button. This will use the HTML5 MediaRecorder object to record media in MPEG4 format.
- Once you have recorded your video, click the stop button. The recorded media will be uploaded to S3 using the AWS JavaScript SDK ManagedUpload object. A progress bar will be displayed during the upload.
- Once the media is uploaded, S3 may call an AWS Lambda function which will a customer can use to extract metadata with tools aligning to their business processes. MediaInfo, is a popular web example which can store data in a Amazon DynamoDB table and start an Amazon Elastic Transcoder job to transcode the media file into multiple variants of HLS.
- Once the Amazon Elastic Transcoder job is complete, Elastic Transcoder will publish a message to an Amazon SNS topic which will execute an AWS Lambda function. This Lambda function will update the Amazon DynamoDB table with the time the transcode was completed.
- Click 'Refresh' to exemplify a Serverless Update to DynamoDB by populating a list of media previously uploaded.
This Architecture depicts the full application inclusive of the Fan Experience:
This is a potential MVP Iteration in which we add in a Deep learning-based image recognition service called Amazon Rekognition that can be used to enrich the ElasticSearch Cluster by adding labels and level of confidence: