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:
- If you're running Wowza Streaming Engine in standalone mode, you can also look for the following statements in real-time in the console window that you used to start the server. For more information, see Start and stop Wowza Streaming Engine.
- For information about enabling AMD Xilinx or NVIDIA hardware acceleration, see Set up and run Transcoder in Wowza Streaming Engine.
- You'll only experience accelerated transcoding performance if you have the required hardware and drivers. Make sure that you're always running the latest driver for your hardware:
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:
- In Wowza Streaming Engine Manager, click the Server tab.
- 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. - In the Custom area, click Edit.
- 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.
- Path - Select /Root/Server.
- 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 } }