Verify Transcoder hardware acceleration availability in Wowza Streaming Engine

The Transcoder in Wowza Streaming Engine™ media server software supports Intel Quick Sync and NVIDIA hardware-accelerated transcoding on Windows and Linux. When Transcoder runs for the first time, it checks to see if any 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:

Contents


Intel Quick Sync acceleration
NVIDIA acceleration
Built-in software encoder and decoder
Log additional hardware acceleration details

Intel Quick Sync acceleration


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

Quick Sync is available

JNI:TranscoderSession.isQuickSyncAvailable[streamName]: Intel Quick Sync hardware acceleration is available

Quick Sync isn't available

JNI:TranscoderSession.isQuickSyncAvailable[streamName]: Intel Quick Sync hardware acceleration is NOT available

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

Note: On more recent Windows operating systems, Intel Quick Sync hardware acceleration may not be available when running Wowza Streaming Engine as a system service due to a security measure called Session 0 Isolation. For information about how to work around this issue, see Enable hardware-accelerated transcoding for Wowza Streaming Engine when running as a Windows service.

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 video, the default built-in software encoder and decoder is Beamr. For VP8 and VP9 video, the default built-in software encoder and decoder is 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, Intel Quick Sync hardware was found during the inspection:

{
    "infoQuickSync":{
      "availabe":true,
      "availableFlags":523,
      "versionMajor":1,
      "versionMinor":16,
      "isQuickSyncH264EncodeAvailable":true,
      "isQuickSyncH265EncodeAvailable":false,
      "isQuickSyncVP8EncodeAvailable":false,
      "isQuickSyncVP9EncodeAvailable":false,
      "isQuickSyncH264DecodeAvailable":true,
      "isQuickSyncH265DecodeAvailable":false,
      "isQuickSyncMP2DecodeAvailable":true,
      "isQuickSyncVP8DecodeAvailable":false,
      "isQuickSyncVP9DecodeAvailable":false
    },
    "infoVAAPI":{
      "available":false
    },
    "infoX264":{
      "available":false
    },
    "infoX265":{
      "available":false
    }
    "infoAdvantechVega": {
       "available": false
    },
    "infoIntrinsicScaler": {
       "available": true
    }
}

More resources