By default, the Beamr encoder in Wowza Streaming Engine™ media server software uses constant bitrate (CBR) encoding for a consistent bitrate. With variable bitrate (VBR) encoding, the bitrate changes according to the complexity of the video and can exceed the target bitrate but not a maximum bitrate. VBR encoding is slower than CBR encoding but results in smaller video file sizes and higher-quality video with complex or high-motion content.
To configure VBR encoding, open your Transcoder template ([install-dir]/transcoder/templates) for editing in a text editor and complete the following steps.
- Set the average target bitrate, in bits per second (bps), with the video Bitrate property for any encoding presets (<Encodes>/<Encode>) using Beamr. For example:
<Video> ... <Bitrate>365000</Bitrate> ... </Video>
Access logs (wowzastreamingengine_access.log) report this property with the beamr4.kbps (H.264) or beamr5.rc_kbps (HEVC/H.265) parameters and the value of Bitrate divided by 1000 (Kbps).
- Configure VBR encoding by adding the following advanced parameters within the <Video>/<Parameters> container element for the same encoding presets.
Note: For H.264 video encoding, use the parameters beginning with beamr4; for HEVC/H.265 video encoding, use the parameters beginning with beamr5.
- Enable VBR encoding with the beamr4.rc_type or beamr5.rc_type parameter set to 1. For example:
<Parameter> <Name>beamr4.rc_type</Name> <Value>1</Value> <Type>Long</Type> </Parameter>
- (Optional) Set a maximum video bitrate, in kilobits per second (Kbps), with the beamr4.max_kbps or beamr5.rc_max_kbps parameter. By default, the maximum bitrate is 2 × (Bitrate ÷ 1000). For example:
<Parameter> <Name>beamr4.max_kbps</Name> <Value>...</Value> <Type>Long</Type> </Parameter>
- Enable VBR encoding with the beamr4.rc_type or beamr5.rc_type parameter set to 1. For example:
Access logs (wowzastreamingengine_access.log) report the new values the next time the Transcoder runs. For example:
INFO 200 - beamr4.kbps: 365
INFO 200 - beamr4.rc_type: 1
INFO 200 - beamr4.max_kbps: 730
Note: Logs do not report a warning or error for invalid parameter values. If you specify an invalid value, the Transcoder uses the default value for the parameter instead, which is reflected in the logs.