Verify Transcoder hardware acceleration availability in Wowza Streaming Engine

The Transcoder in Wowza Streaming Engine™ media server software supports AMD Xilinx hardware-accelerated transcoding on Linux and NVIDIA hardware-accelerated transcoding on Windows and Linux.

When Transcoder runs for the first time, it checks whether hardware acceleration resources are available and logs this information in the Wowza Streaming Engine access log file ([install-dir]/logs/wowzastreamingengine_access.log). This article describes what to look for in the logs to determine if hardware acceleration is available.

Notes:

AMD Xilinx acceleration


Wowza Streaming Engine uses the Xilinx Video SDK to provide accelerated encoding and decoding using AMD Xilinx technology. To determine if AMD Xilinx hardware acceleration is available, look for the following log statements:

AMD Xilinx is available

TranscoderVideoLoadBalancerU30Simple.onHardwareInspection: U30 devices: N (where N is the number of U30 devices)

AMD Xilinx isn't available

TranscoderVideoLoadBalancerU30Simple.init: No U30 devices installed in the system

To use AMD Xilinx hardware acceleration, set the video Encoding Implementation or Decoder Implementation to AMD Xilinx U30 for an encoding preset or the decoding preset in your Transcoder template. If you choose the AMD Xilinx U30 implementation but hardware acceleration isn't available, Transcoder uses the appropriate built-in default implementation.

NVIDIA acceleration


Wowza Streaming Engine supports NVIDIA accelerated encoding, decoding, and scaling. To determine if NVIDIA hardware acceleration is available, look for the following log statements:

NVidia is available

JNI:TranscoderSession.isCUDAAvailable[streamName]: NVidia hardware acceleration is available

NVidia isn't available

JNI:TranscoderSession.isCUDAAvailable[streamName]: NVidia hardware acceleration is NOT available

To use NVIDIA encoding or decoding, set the video Encoding Implementation to NVENC or Decoder Implementation to NVCUVID for an encoding preset or the decoding preset in your Transcoder template. To use NVIDIA scaling, set the Implementation property to CUDA in the <Scale> container element of your Transcoder template XML. If you choose an NVIDIA implementation but NVIDIA hardware acceleration isn't available, Transcoder uses the appropriate built-in default implementation.

Note: Older graphics drivers for your NVIDIA hardware may limit NVENC-based video encoding to approximately 30 simultaneous encoding sessions. Update your graphics driver to the latest version to avoid this limitation.

Built-in software encoder and decoder


If your hardware doesn't support acceleration technologies, you can use the default built-in software encoders or decoders, which don't use hardware acceleration.

For H.264 and H.265 videos, MainConcept is the default built-in software encoder and decoder. For VP8 and VP9 video, the default built-in software encoder and decoder include VPX. To use the default software encoder or decoder, set the video Encoding Implementation or Decoder Implementation to Default for an encoding preset or the decoding preset in your Transcoder template. CPU resources are used for video scaling when hardware acceleration isn't available.

Log additional hardware acceleration details


You can log the results of the Transcoder hardware inspection that occurs when the Transcoder is invoked that includes additional detail using the transcoderLogHardwareInspection property. To add this property, complete the following steps:

  1. In Wowza Streaming Engine Manager, click the Server tab.
     
  2. On the Server Setup page Properties tab, click Custom in the Quick Links bar.
     
    Note: Access to the Properties tab is limited to administrators with advanced permissions. For more information, see Manager credentials.
  3. In the Custom area, click Edit.
     
  4. Click Add Custom Property, specify the following settings in the Add Custom Property dialog box, and then click Add:
     
    • Path - Select /Root/Server.
       
    • Name - Enter transcoderLogHardwareInspection.
       
    • Type - Select Boolean.
       
    • Value - Enter true.
  5. Click Save, and then restart the live application to apply the changes.

The logs captured when the transcoderLogHardwareInspection property is enabled are similar to the following. In this example, AMD Xilinx hardware was found during the inspection:

{
  "infoCUDA":{
    "available":false
  },
  "infoQuickSync":{
    "available":false
  },
  "infoVAAPI":{
	"available":false
  },
  "infoXilinxU30":{
	"available":true,
	"availableFlags":63,
	"deviceCount":2,
	"cuExists":true,
	"pluginsLoaded":true
  },
  "infoX264":{
	"available":false
  },
  "infoX265":{
	"available":false
  },
  "infoAdvantechVega":{
	"available":false
  },
  "infoIntrinsicScaler":{
	"available":true
  }
}

More resources