Mediaconvert Automated-ABR output has twice the max bitrate specified in settings

0

UPDATE: Since my original post (below) I have taken a closer look at the dash output segment files. I can see that the max bitrate of the actual output is indeed TWICE the max bitrate value I specified in the automated ABR settings in mediaconvert. For example, several of the 4 second segment mp4 file sizes are approaching 8MB in size (bytes not bits), meaning the corresponding bitrate for those periods is at or near 16 mbps, which is TWICE the max bitrate specified in in my automated abr settings (furthermore, the total output size divided by total time yields an average bitrate of over 7 mbps, which is only slightly under the max bitrate setting (not typical of auto-abr results). So, the 16mbps bandwidth shown in the output dash manifest is accurate with respect to the actual output. But, the output is INCORRECT because it does not honor the 8 mbps max bitrate setting as being the absolute upper limit on the auto-arb qvbr renditions (but the relationship is always exactly 2X). So, imo, this offers further proof that something is wrong with auto-ABR and its response to related settings -- results are not in line with what the documented purpose of the max bitrate setting -- the documentation clearly states max bitrate sets the upper limit for automated ABR.

ORIGINAL POST: I'm using the automated ABR panel in Mediaconvert and, with Automated ABR enabled, I am using the Max Bitrate setting to constrain the bitrate of the segmented 60fps Dash h264 output (max bitrate in the automated ABR panel is set to 7000000, ie 7Mbps). The job runs fine and the output seemingly plays back OK on several different dash players, however the resulting output indicates a bandwidth of 14000000, ie14Mbps, for the 1920x1080 rendition (as seen in the bandwidth property of the 1920x1080 representation tag in the mpd file for 1080) -- this is exactly double the max bitrate setting. Also, some smaller renditions also exceed the 7Mbps max setting but by lesser amounts. I have confirmed in multiple dash players that the 1920x1080 bitrate recognized/reported by the player is indeed 14Mbps (as indicated in the manifest file). I have also noticed that when I specify the minimum bitrate in the automated ABR panel, the manifest's lowest bitrate rendition also shows a value that is exactly double the minimum bitrate setting. I have changed the max and min bitrate settings in automated ABR panel to other values, and the resulting manifest bandwidths for the highest and lowest bitrate renditions are ALWAYS exactly 2x what I set them to be. I have the segment length set to 4 seconds (got same result with the 30s default segment length), and all other video settings are left in the default/auto values. I have also tried constraining the number of renditions, but still the result is the same -- the highest bitrate rendition is still 2x the auto-abr max bitrate setting. When I leave the max bitrate setting blank (and therefore 8Mbps is apparently used, per the docs) the resulting output is 16Mbps bandwidth in the manifest and in playback, so again it's a baffling 2x difference.

As an alternative approach, I tried setting up multiple rendition outputs manually, with automated ABR disabled, using VBR along with average and max bitrate settings, and in this case the manifest bandwidth value and playback bandwidth MATCH the bitrate setting as I would expect. So the 2X problem seems to only occur when using automated ABR.

So, this 2x difference between the max bitrate setting and the actual output makes no sense to me and I cannot find a reason for it. I can achieve the desired max output bandwidth only if I enter a max bitrate value that is half of what I need. Any ideas on what would cause this, or what I'm missing here?

(FWIW, the input file is a 14 minute h264 60fps mp4 file that was encoded at a 12mbps bit rate)

darz1
asked 10 months ago284 views
1 Answer
0

https://repost.aws/questions/QUWgQdtaGsTfCUtXkQKdA1FA/dash-outputs-with-qvbr-always-exhaust-the-maximum-bit-rate-allowed https://docs.aws.amazon.com/mediaconvert/latest/ug/how-automated-abr-works.html

as per refs above

The DASH manifest specifies a bandwidth attribute in the Representation tag, which might be interpreted by some players as the "actual" bitrate. However, this value might not reflect the true average bitrate of the segments, but rather a maximum allowable value. This could be why you're seeing the bandwidth values as being double your set max bitrate in the DASH manifest and in the players that you're using.

In the automated ABR settings of MediaConvert, the "Max ABR bitrate" is meant to be an upper limit for the bitrate of the highest-bitrate rendition. If MediaConvert can achieve the same video quality at a lower bitrate, it will use that lower bitrate for your highest-quality rendition. However, it seems like this "Max ABR bitrate" may be represented in the DASH manifest as the max allowable bitrate for a given Representation, and some players may interpret this as the "actual" bitrate​.

Furthermore, MediaConvert encodes all renditions with QVBR (Quality Variable Bit Rate) mode. In this mode, the bitrate can vary to achieve a given quality level, but it should not exceed the max bitrate. However, because QVBR is a variable bitrate method, the actual average bitrate of the segments may end up being lower than the max bitrate, especially if the same quality can be achieved at a lower bitrate​.

As a result, you might find that the actual average bitrate of your video segments (as measured over the length of the segments) is lower than the value indicated in the DASH manifest and reported by the players.

You could verify this by examining the size and duration of your video segments to calculate the actual average bitrate, and see if it matches your expectations based on the max bitrate setting in MediaConvert.

profile picture
EXPERT
answered 10 months ago
  • Thanks for the insights Sedat. I understand all the aspects about averages being less than max and qvbr reducing or increasing bitrate as needed based on content. But, the issue here is that the maximum bitrate setting under automated ABR is supposed to be just that --- maximum. Ie, there is no reason or explanation I see for the manifest to report any bandwidth higher than the absolute maximum br setting (and why always exactly 2x ??). The whole point for setting a maximum bitrate is to allow QVBR to do its thing but constrain it to that max limit, so that targeted users will never need to handle a bitrate, even for short periods, that is higher than the max that I specify... seems pointless if it does not actually serve that purpose. I could understand the manifest showing a different LOWER bitrate, such as a lower bitrate that represents an average, but never a value higher than max. Also, as I mentioned, when I set renditions manually (without auto-ABR) I still use QVBR with a max bitrate setting, and in that case the dash manifest bandwidth DOES exactly match the max bitrate setting, as I would expect -- so this leads me to believe there is something not quite right with what "automated ABR" is doing here... And I'm not sure how I would measure the actual "max" bit rate limit during playback since the max bitrate only occurs for short periods and is masked by the segmented file downloads that occur in periodic chunks at whatever mbps the network allows.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions