This article describes how to control video decoding using the Wowza Streaming Engine™ media server software Transcoder. Users with advanced decoding knowledge can log all of the video decoding parameters that are available, and their current values, and use this information to adjust the transcoding parameters for transcoded streams.
Contents
Logging available video decoding parameters
Configuring video decoding parameters
More resources
Logging available video decoding parameters
When using Transcoder, you can log all available video decoding parameters with their current values for the <Decode> block to the wowzastreamingengine_access.log file. To do this, open the Transcoder template in a text editor and add the following property to the <Properties> container in the <Decode> block in the template:
<Property> <Name>logVideoDecodingParameters</Name> <Value>true</Value> <Type>Boolean</Type> </Property>
A section of the data logged in the wowzastreamingengine_access.log file might look like this:
TranscoderWorkerVideoDecoder.setupDecoder[_defaultVHost_:live/_definst_/myStream: decodeIterations:0]: Video decoding parameters # long: dpb_size: Set DPB size option mainconcept.dpb_size: 0 # long: deinterlaceDoubleRate: 0:single rate (default), 1:double rate default.deinterlaceDoubleRate: 0 # long: optCPUNum: Sets number of logical CPUs, which can be used in specified SMP mode by the optSMPMode command mainconcept.optCPUNum: 4 # long: optACCMode: Hardware acceleration mode: 0:ACC_MODE_NONE, 1:ACC_MODE_DXVA1, 2:ACC_MODE_DXVA2, 3:ACC_MODE_NVCUVID mainconcept.optACCMode: -1 # long: output_8bit: Allow only 8bit output image option: 0:off, 1:on mainconcept.output_8bit: 0 # long: deinterlace: 1=default (field interpolation top),256=field interpolation top, 768=field interpolation bottom, 512=vertical smoothing (add 2048 to reorder fields) default.deinterlace: 0 # long: optSMPMode: Sets symmetric multiprocessing (SMP) mode of decoding: 0:SMP_NONE, 1:SMP_BY_PICTURES, 2:SMP_BY_SLICES mainconcept.optSMPMode: 1 # long: maxTemporalLayer: Set maximum layer to be decode (default is 8) mainconcept.maxTemporalLayer: 0 # long: ec: Set Error concealemnt modes (bitmask): 0:NONE, 1:SHOW_BASE_LAYER (SVC only), 2:CONCEAL_ERROR_FRAMES, 4:TEMPORAL_FOR_INTRA, 8:ERRORLESS_REF_ONLY mainconcept.ec: 0 # long: loop_filter: Set loop filter mode option: 0:off, 1:on mainconcept.loop_filter: 1 # long: mv_precision: Limits precision of motion vectors option: 0:PRECISION_QUARTER, 1:H264VD_MV_PRECISION_HALF, 2:H264VD_MV_PRECISION_FULL mainconcept.mv_precision: 0
You can then use this information as a basis for adjusting the transcoded video using the available video decoding parameters that are logged.
Configuring video decoding parameters
You must use a text editor to configure video parameters in the transcoder template files ([install-dir]/transcoder/templates) in your Wowza Streaming Engine installation. They can't be configured using Wowza Streaming Engine Manager.
Open the Transcoder template in a text editor and add a <Parameter> section to the <Video>/<Parameters> container in the <Decode> block, as shown in the example below. Then restart Wowza Streaming Engine for the changes to take effect.
Example configuration
As an example, for this deinterlace rate method video parameter defined as available and in use in the wowzastreamingengine_access.log file:
# long: deinterlaceDoubleRate: 0:single rate (default), 1:double rate
default.deinterlaceDoubleRate: 0
You can use this information to change the deinterlace rate method being used by adding the following <Parameter> section to the <Video>/<Parameters> container in the <Decode> block in the template.
<Parameter> <!-- 0:single rate (default), 1:double rate --> <Name>default.deinterlaceDoubleRate</Name> <Value>0</Value> <Type>Long</Type> </Parameter>