Streaming Media

Streaming Media on Facebook Streaming Media on Twitter Streaming Media on LinkedIn

Tutorial: Automated ABR With AWS Elemental MediaConvert

In a recent survey, two-thirds of respondents said they weren't using per-title encoding, possibly because of the general perception that its challenges outweigh its benefits. In this tutorial, I'll demonstrate how simple it is to produce per-title output using AWS Elemental's Automated ABR (adaptive bitrate) function.

Choosing Other Encoding Options

Once you choose your Automated ABR options, you can also customize other options like keyframe interval and codec profile as you normally would for ABR encoding. You can access these controls by clicking the Automated ABR base output option in the Output group (Figure 4, below).

Figure 4. Setting options for your base output

You can use these controls to set the maximum resolution and frame rate for your top-quality rung. So, if your source is 4K60p and you want to output at 1080p30, you can set these limits here.

When you’re just experimenting, you can leave all of these options at their defaults. However, before you go into production, you should scan through all of the encoding options to identify those that you want to customize for your output.

For example, you might explore the options contained in the Codec details, shown in Figure 5 (below). There, you can see that for H.264 encodes, MediaConvert uses the Main profile by default.

Figure 5. Configuring your codec options

Producers seeking maximum quality might consider changing this to the High profile, as Apple advises in the HLS Authoring Specification, which involves a slight risk of stranding very old devices. Understand that any options you select here will apply to all rungs in your encoding ladder. So, if you choose the High profile for H.264 encodes, all rungs will use the High profile.

The Results, Please

To illustrate MediaConvert’s Automated ABR functionality, I uploaded two very different files to the service, one a simple cartoon, the other a soccer match. You can see the output in Table 1 (below).

Table 1. Two different completely customized ladders from AWS Elemental MediaConvert

The ladder MediaConvert created for the cartoon has a lower top bitrate, fewer rungs, and higher-resolution rungs pushed to lower bitrates in the encoding ladder. The soccer match shows the reverse, as it should, with a higher top bitrate, more rungs, and lower-resolution rungs down to the bottom.

How do you know that MediaConvert chose the right rate for the top rung? Well, it’s a bit wonky, but you want the top rung of your ladder to measure between 93 and 95 Video Multimethod Assessment Fusion (VMAF) points. According to RealNetworks’ “VMAF Reproducibility: Validating a Perceptual Practical Video Quality Metric Reproducibility” study (, a score in the 93–95 range means that it’s “either indistinguishable from the original or with noticeable but not annoying distortion.” A lower number risks visible artifacts, which most premium services don’t want in their top rung, while a higher number is a bandwidth waste since viewers won’t notice the difference between a 94 and a 99.

The VMAF score for the cartoon was 94.02, which is almost perfect, while the soccer clip measured 96.61, which is a bit high. Typically, though, you’d rather miss high and waste bandwidth than miss low and reduce QoE. No service is perfect, and in my tests, MediaConvert did a credible job of encoding the top rung of a range of clips to at or near the target.

Looking back, if you compare the soccer ladder to the Apple recommendations in Figure 1, you’ll see that they are reasonably close, so per-title wasn’t a huge win for the soccer clip. However, if you used that same ladder for the cartoon, the data rate of your top rung would have been 7.1Mbps, and the video would be visually indistinguishable from the 1.77Mbps clip produced by MediaConvert. Even worse, clips in the middle rungs would look much, much worse using the Apple ladder because they were encoded at lower-than-optimal resolutions.

Again, many other cloud services offer per-title encoding that works pretty much the same way. Hopefully, now that you know how per-title encoding works and the benefits it delivers, you’ll be motivated to check with the service of your choice and start the implementation process.