Hidden Settings and Features of Wowza Transcoder

An engineer configures hidden options inside the open service panel of an anthropomorphic Wowza Transcoder server. Horizontal image

이 글은 한글 버전이 존재합니다.

Hidden settings in Wowza Streaming Engine Transcoder

Wowza Streaming Engine (hereafter, Wowza) Transcoder has detailed options that do not appear in the web UI but can be applied through an XML template. This article explains the purpose of 13 MainConcept parameters found in official documents and through customer support. It also shows how to apply them by adding a Parameter block to a template file.

How to change the hidden settings

To change the hidden settings, you must edit the template file directly. As is well known, Wowza Transcoder settings are managed through Transcoder template files located in [install-dir]/transcoder/templates/.

Like other Wowza configuration files, these template files use XML. You can edit them in the same way that you edit properties in other Wowza configuration files. Open the template file and go to the video parameter section of the Transcoder preset that you want to change. Then add a parameter block as shown below.

...(earlier part omitted)...
<Encode>
 <Name>Profile name</Name>
 <Enable>true</Enable>
 <Description>Profile description</Description>
 <StreamName>mp4:${SourceStreamName}_360pvbr</StreamName>
 <Video>
 <Parameters>
  <Parameter>
   <Name>mainconcept.bit_rate_mode</Name>
   <Value>2</Value>
   <Type>Long</Type>
  </Parameter>
 </Parameters>
... (remaining part omitted) ...

Like other Wowza parameters, each parameter consists of Name, Value, and Type.

List of hidden additional options

This is the list of additional Wowza Transcoder options that I investigated. It includes options published in official documents and options that have no official document but were confirmed through technical support.

  • Select the bitrate mode
    Name
    mainconcept.bit_rate_mode
    Value
    • 0: CBR mode
    • 1: CQT mode
    • 2: VBR mode
    Type
    Long
  • Average or target bitrate
    Name
    mainconcept.bit_rate
    Value
    Enter an integer in bps. For example, 2500000 means 2.5 Mbps.
    Type
    Long
  • Maximum bitrate
    Name
    mainconcept.max_bit_rate
    Value
    Enter the maximum bitrate allowed in VBR mode as an integer in bps. For example, 4000000 means 4 Mbps.
    Type
    Long
  • IDR frame interval
    Name
    mainconcept.idr_interval
    Value
    Enter the interval for inserting IDR (Instantaneous Decoder Refresh) frames as an integer number of frames.
    Type
    Long
  • H.264 Level setting
    Name
    mainconcept.level_id
    Value
    Enter the integer that corresponds to the H.264 Level to apply to the output stream.
    Type
    Long
  • Number of reference frames
    Name
    mainconcept.num_reference_frames
    Value
    Enter the number of reference frames that the encoder will use as an integer.
    Type
    Long
  • Frame reordering delay
    Name
    mainconcept.reordering_delay
    Value
    Enter the frame reordering delay for B-frames as an integer. The default value described in the official Wowza documentation is 1. At this value, no B-frames are inserted.
    Type
    Long
  • Enable or disable Access Unit Delimiters
    Name
    mainconcept.write_au_delimiters
    Value
    Enter an integer that determines whether to output Access Unit Delimiters.
    Type
    Long
  • Select the entropy coding mode
    Name
    mainconcept.entropy_coding_mode
    Value
    • 0: CAVLC mode
    • 1: CABAC mode
    Type
    Long
  • VBV buffer size
    Name
    mainconcept.bit_rate_buffer_size
    Value
    Enter the VBV (Video Buffering Verifier) buffer size as an integer in bytes. 1000000 means 1 MB.
    Type
    Long
  • I-frame Quantization value
    Name
    mainconcept.quant_pI
    Value
    Enter an integer from 0 to 51. A lower value gives higher quality, while a higher value gives stronger compression. The test value provided by customer support was 23.
    Type
    Long
  • P-frame Quantization value
    Name
    mainconcept.quant_pP
    Value
    Enter an integer from 0 to 51. A lower value gives higher quality, while a higher value gives stronger compression. The test value provided by customer support was 25.
    Type
    Long
  • B-frame Quantization value
    Name
    mainconcept.quant_pB
    Value
    Enter an integer from 0 to 51. A lower value gives higher quality, while a higher value gives stronger compression. The test value provided by customer support was 27.
    Type
    Long

Summary and cautions

In fact, this article covers something that ordinary operators should not have to need. I have already stated several times in other articles that encoding and transcoding work should be handled outside Wowza.

Some sharp-eyed readers may have noticed that the word mainconcept keeps appearing. Wowza Transcoder is based on the MainConcept SDK. The parameters that correspond to the options listed above can be found in the AVCEncoderParams structure of the MainConcept SDK. There are likely to be more options, but no method for configuring them has been published.

The information in this article was officially provided by Wowza technical support, and I also applied the options to an actual system and checked whether they worked. However, some of the information has not been published as regular Wowza documentation. Even when an option has been provided, it may not work correctly.

Still, I am sharing this information in the hope that it will offer some help to anyone who has no choice but to squeeze every last bit out of Wowza. I sincerely hope that none of you will need this article when building a service.

Encoding is the encoder’s job.
EQMaker

Update history

  • First published
  • Revision and URL migration

Leave a Reply

Your email address will not be published. Required fields are marked *