Configure constant bitrate (CBR) for H.264
Applies to
Request to configure the Vidispine Transcoder for Constant Bitrate H264 ( CBR).
Problem description
H.264 is by default variable bitrate (VBR), as opposed to constant bitrate (CBR), but CBR is required as output from the Vidispine Transcoder.
Summary
This article will describe how to change the necessary parameters for the Vidispine Transcoder in order to produce CBR compliant H264 video.
Pre-requisites in order to successfully follow this article
a verified installation of Vidispine API / Vidinet
a verified installation of the Vidispine Transcoder service
a basic understanding of how to update the Vidispine Transcoder Settings XML
knowledge about the H264 encoder is preferred, but not necessary
Instructions
VBR files vary the amount of output data per time segment. VBR allows a higher bitrate (and therefore requires more storage space) to be allocated to the more complex segments of media files while less space is allocated to less complex segments. The average of these rates can be calculated to produce an average bitrate for the file.
Constant bit rate encoding (CBR) means that the rate at which a codec's output data should be consumed is constant. CBR is useful for streaming multimedia content on limited capacity channels since it is the maximum bit rate that matters, not the average, so CBR would be used to take advantage of all of the capacity.
To configure constant bitrate (CBR) for H.264, insert the lines below;
<setting>
<key>bit_rate_mode</key>
<value>H264_CBR</value>
</setting>
Into your transcode preset, like this XML-example;
<TranscodePresetDocument xmlns="http://xml.vidispine.com/schema/vidispine">
<format>mp4</format>
<audio>
<codec>mp3</codec>
<framerate>
<numerator>1</numerator>
<denominator>44100</denominator>
</framerate>
<channel>0</channel>
<channel>1</channel>
<stream>2</stream>
</audio>
<video>
<setting>
<key>bit_rate_mode</key>
<value>H264_CBR</value>
</setting>
<scaling>
<width>1280</width>
<height>720</height>
</scaling>
<codec>h264</codec>
<bitrate>3000000</bitrate>
<framerate>
<numerator>1</numerator>
<denominator>25</denominator>
</framerate>
<preset>main</preset>
</video>
</TranscodePresetDocument>
Remember to always test in a staging environment before taking the new configurations online.