The Transcoder in Wowza Streaming Engine™ media server software supports accelerated video encoding and decoding using NVIDIA graphics cards, enabling transcoding of live streams at greater scale and speed. Transcoder also supports offloading transcoder video scaling to NVIDIA CUDA-based GPUs. This article describes the requirements for transcoding with supported NVIDIA graphics cards.
- The NVIDIA microarchitecture of your hardware and the NVIDIA drivers you use must support CUDA 10. See Wowza Streaming Engine does not support CUDA 11 (NVIDIA drivers 450.00 and later) for more information and refer to the NVIDIA documentation for installation instructions.
- Wowza Streaming Engine 4.8.8.01 deprecated support for using NVIDIA Kepler GPUs, which will be unsupported in future releases.
NVIDIA NVENC accelerated encoding
Wowza Streaming Engine leverages the NVIDIA Encoder (NVENC) API version 9 to access the high-performance hardware video encoder introduced in graphics cards with the Maxwell and Kepler (deprecated) GPU architecture. NVENC-based H.264 video encoding is faster and consumes less power than legacy CUDA-based or CPU-based encoding. Wowza Streaming Engine 4.8.0 and later supports HEVC/H.265 NVENC-based video encoding. Support for NVIDIA NVENC accelerated encoding is included in Wowza Streaming Engine for 64-bit Windows and Linux.
Not all Maxwell-based or Kepler-based (deprecated) cards support NVENC. For details, see the list of supported NVIDIA Quadro, Tesla, and GRID GPUs on the NVIDIA website.
- 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.
- For information about NVENC-accelerated encoding on Linux 64-bit operating system distributions, see NVENC-accelerated encoding support in Wowza Streaming Engine on Linux.
NVIDIA NVCUVID and NVIDIA CUDA accelerated decoding
Most modern NVIDIA graphics cards have fixed-function hardware that uses the NVIDIA Video Codec SDK Video Decoder (NVCUVID) for accelerated decoding. Wowza Streaming Engine supports NVCUVID-based accelerated decoding for 64-bit Windows and Linux. HEVC/H.265 accelerated video decoding is available in Wowza Streaming Engine 4.8.0 and later.
CUDA-based accelerated decoding on 64-bit Windows operating systems is also supported but is deprecated with Wowza Streaming 4.8.8.01 and the deprecation of support for NVIDIA Kepler GPUs.
NVIDIA CUDA accelerated video scaling
Wowza Streaming Engine 4.6.0 and later supports using CUDA-based GPU resources to scale video, leveraging NVIDIA CUDA API version 7.5.18. This reduces the overall CPU usage of a given set of Transcoder sessions. The software is compatible with NVIDIA CUDA cards of Tesla technology or greater. For more information about CUDA-enabled hardware, see NVIDIA CUDA GPUs.
For instructions on how to set up NVIDIA CUDA GPU video scaling, see Template details - Scale.
- Important: NVIDIA CUDA encoding acceleration isn't supported in the latest NVIDIA graphics drivers (340 and later). CUDA-based accelerated encoding is not supported in Wowza Streaming Engine 4.1.2 and later.
- It's best to upgrade your graphics driver for your NVIDIA hardware to the latest version that supports accelerated encoding. (Note: Although NVIDIA graphics drivers (version 340 and greater) do not support accelerated encoding using NVIDIA CUDA, they can support accelerated encoding using NVIDIA NVENC. See the NVIDIA Video Encode and Decode GPU Support Matrix to determine whether your hardware configuration supports NVENC.)
- On new Windows operating systems, NVIDIA CUDA 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 a workaround for this issue, see Enable hardware-accelerated transcoding in Wowza Streaming Engine when running as a Windows service.
- Transcoder can be used with more than one NVIDIA graphics card (both NVENC and CUDA acceleration). You'll need to directly address the specific card that you want to use in your Transcoder template by configuring the GPU ID setting (<Video>/<GPUID> property in [Template].xml). It won't automatically load balance between multiple cards. A value of -1 tells the software to select the highest capacity GPU. GPU cards are numbered starting at 0 and are enumerated when Transcoder starts.
- NVIDIA Video Encode and Decode GPU Support Matrix
- About NVENC accelerated encoding support in Wowza Streaming Engine on Linux
- Set up NVIDIA NVENC accelerated encoding on Fedora for Wowza Streaming Engine
- Set up NVIDIA NVENC accelerated encoding on Ubuntu for Wowza Streaming Engine
- Set up NVIDIA NVENC accelerated encoding on CentOS for Wowza Streaming Engine
- Set up NVIDIA NVENC accelerated encoding on Debian for Wowza Streaming Engine
- Configure NVIDIA NVENC accelerated encoding on Amazon EC2 for Wowza Streaming Engine