How to get to market fast with Automated ABR encoding
Automated ABR is an AWS Elemental MediaConvert feature that is ideal for customers who are launching an application and require the encoding of video files, but are not video experts. Before Automated ABR, developers had to guess which bitrates/resolutions and encoding settings were ideal to enable the best picture quality for end users.
Usually when application developers create a new product that requires video encoding, they resort to recommended Adaptive Bitrate (ABR) Profiles without knowing which end devices or the bandwidth available to their end users. This leads to increased development time to research the video encoding profiles/settings to use, and often a poor end user experience due to buffering or visually poor video quality.
Automated ABR feature in AWS Elemental MediaConvert takes that burden away from application developers by deciding the number of resolutions and bitrates a given video file will need based on the video complexity. This is achieved by performing a multi-pass analysis and encode to determine the best rung each ABR package.
For instructions on how to create an Automated ABR Stack see https://docs.aws.amazon.com/mediaconvert/latest/ug/creating-an-automated-abr-stack.html.
Using AWS Elemental MediaConvert with Automated ABR shortens time to market since most of the encoding settings (resolutions, bitrates) are all automatically produced so application developers can concentrate their development efforts on features for the application.
Let’s look at costs when using Automated ABR assuming the following:
- MediaConvert deployed in N. Virginia
- The application on average transcodes 500 files a day with an average length per file of 5 minutes.
- The Automated ABR feature on average for each ingested file creates 5 Output ABR Renditions:
- 3 HD p30
- 2 SD p30
Given these assumptions, the monthly cost would be:
(3 x $0.042 + 2 x $0.021)*5*500*30 = ($0.026 + $0.042)*5*500*30 = $5,100
With a cost per asset of $0.34
Based on the preceding information, your yearly MediaConvert cost (not counting application usage growth) would be: $61,200
Now let’s see how you could re-architect your solution to lower AWS Elemental MediaConvert and Amazon Simple Storage Service (Amazon S3) costs by removing Adaptive Bitrate Outputs that are not requested very often by end devices.
To identify the requests made by the end devices you need to collect and process Amazon CloudFront logs in order to query the logs and create dashboards for the intended information.
In order to identify the resolutions and bitrates associated with each child manifest (.m3u8) created by the Automated ABR functionality, you may consider adding the information into the name modifier of the outputs using the settings variables (https://docs.aws.amazon.com/mediaconvert/latest/ug/list-of-settings-variables-with-examples.html)
The following image depicts such example:
Let’s assume your application has been deployed for 3 months. Users have been streaming the encoded video files with Automated ABR and CloudFront Logs are being collected. You now have access to a rich and detailed amount of user access and requests data that allow you to decide which are the most used and streamed Adaptive Bitrates.
To view the request patterns of your users when you deploy your solution make sure to enable real-time logs on Amazon CloudFront and deploy the following solution https://aws.amazon.com/blogs/networking-and-content-delivery/cloudfront-realtime-logs/
Based on CloudFront Logs you can see how often file types are requested based on the cs-uri-stem field in the CloudFront Logs.
For more information on Amazon CloudFront Log Fields, see https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/real-time-logs.html
Let’s assume from the 5 Renditions only 4 where requested more often:
2 HD and 2 SD
With this information, you can create a MediaConvert Job Template using the QVBR Rate Control with only the required bitrates and resolutions that are more frequently requested. This small change allows your application to use Basic Tier Pricing (as long Pro marked options are not used) and you can also use Reserved Transcoding Queues if the business case permits its use.
The savings accomplished by moving from Automated ABR to QVBR Rate Control with On-Demand Basic Tier Pricing with defined ABRs after 3 months based on actual data from Amazon CloudFront Logs would be the following:
(2 x $0.015 + 2 x $0.0075)*5*500*30 = ($0.030 + $0.015)*5*500*30 = $3,375
With a cost per asset of $0.225
This small change represents $1,725 or 33.8% monthly savings on AWS Elemental MediaConvert going forward, not including the savings on Amazon S3 Storage by removing one HD ABR Rendition that was rarely requested.
This post shows describes how to:
- Use AWS Elemental MediaConvert Automated ABR encoding to automatically generate Adaptive Bitrate Outputs for OTT delivery
- Enable Amazon CloudFront Logs to collect end devices requests data
- Deploy a solution to create real-time dashboards using Amazon CloudFront Logs
AWS offers the most purpose-built services for direct-to-consumer (D2C) & streaming to help companies reliably deliver, monetize, and support live and on-demand media over the internet, and bring unparalleled experiences to screens everywhere. Explore https://aws.amazon.com/media/direct-to-consumer-d2c-streaming/ to learn more. To learn how to create real-time dashboards and alarms for AWS Elemental MediaConvert, see: https://aws.amazon.com/blogs/media/creating-dashboards-and-alarms-for-aws-elemental-mediaconvert-using-amazon-cloudwatch/.