AT&T Video Optimizer
Variable Bitrate
Introduction
The term variable bitrate (VBR) refers to a bitrate control technique, and it is commonly used in sound or video encoding.
VBR is used to achieve improved video and audio quality in comparison to file size ratio. Depending on the complexity of the media the bit rate is continuously changed during the encoding process.
As opposed to constant bitrate (CBR), VBR files vary the amount of output data per time segment. VBR allows data to be transferred at a higher bitrate, with more storage space for more complex media segments and less space for less complex media segments.
Although VBR encoding requires more processing time than CBR, for most video content it produces superior visual quality
Background
Bitrate is the number of bits that are processed when sending files, and the transfer rate of the data that makes up a media signal. It is normally measured in seconds. For video, this is typically measured in megabits per second (or Mbps, or Mb/s); with audio, it is usually is measured in kilobits per second (or kb/s or kbps).
The term bitrate, also written as bit rate, gets tossed around a lot in mobile development, so it might be good to go over some common terminology:
- VBR stands for variable bitrate, a control technique which allows the bit rate to vary, but maintains the quality.
- CBR stands for constant bitrate, a control technique which keeps the bitrate constant, but allows video quality to vary.
- MBR stands for maximum bitrate, a control technique which allows the bit rate to vary, but only up to a maximum value.
- ABR stands for adaptive bitrate, a video segment management technique which delivers different quality levels of video to the client based on network capability at a given time. It is different than the three bitrates terms above that relate to controlling the bitrate. Other Best Practices cover information on ABR streaming.
Variable bitrate (VBR) is the recommended bitrate used in sound or video encoding. Unlike constant bitrate (CBR), VBR files vary based on the amount of output data in a given media segment. CBR encoding control maintains a set bitrate over the entire video clip.
With VBR, the average transfer rates may be calculated to determine the average bitrate for a file.
The Issue
Whenever you encode a video file for streaming distribution, you need to choose a bitrate with a bitrate control technique.
The issue with using CBR is that since the same bitrate is applied to the entire file it often limits the potential image quality, particularly for more complex video. CBR delivers lower overall quality than VBR. And it introduces the potential for dramatic transient quality issues.
The advantage of VBR is that it produces a better quality-to-space ratio compared to a CBR file of the same data. The bits available are used more flexibly to encode the data more accurately.
The primary disadvantage is that, as mentioned above, VBR may take more time to encode. In the past, some players could not decode variable bitrate files properly, but the vast majority of players support it. As VBR encoding algorithms have improved, most of the problems have been resolved.
Best Practice Recommendation
When encoding video you have a choice of which bitrate and bitrate control technique you are going to use.
Unless there is a specific reason for using CBR, we recommend that you choose VBR.
VBR produces significantly higher quality at similar bitrates. The primary benefit of VBR encoding is that it allocates a higher bitrate to the more complex segments of media files and lower bitrates to the simple segments.
The primary downside of VBR encoding is that it requires more processing time, but the superior visual quality should more than make up for the extra effort.
Constant bitrate (CBR) encoding is typically not the best choice for streaming. Encoding video with CBR comes at the expense of quality, because it requires the compression engine to assign bits to content based on time rather than by image or sequence complexity.
Occasionally, compression requirements mandate that you use CBR. One example might be live event video streaming. Another example is satellite television broadcasts, in which many channels are multiplexed into one transport stream that has limited bandwidth.
When making your decision, note that HTTP Live Streaming (HLS) has specific bitrate guidelines. If you are using HLS we recommend choosing 110% constrained VBR to avoid App Store approval issues when initially submitting or when submitting updates. If you are using HLS to deliver to browser-based desktop and mobile playback, and not to an app, you can consider 200% constrained VBR.
Also, any major encoding change such as those recommended here should not be implemented without testing to ensure quality and playability.
Video and other types of rich media are on the rise in mobile apps and in the future we continue to work on more guidance on streaming and other video technology in our Mobile Development Best Practices[BW1] recommendations.