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.
Note: The NVIDIA microarchitecture of your hardware and the NVIDIA drivers you use must support CUDA 10.
NVIDIA NVENC accelerated encoding
Wowza Streaming Engine and Wowza Media Server™ software (version 3.6) leverage the NVIDIA Encoder (NVENC) API to access the high-performance H.264 hardware video encoder introduced in graphics cards with the Kepler and Maxwell 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.
The following graphics cards support NVENC:
- NVIDIA Quadro K4000 and above - Desktop Workstation
- NVIDIA Quadro K2000M and above - Mobile Workstation
- NVIDIA Tesla K10 and above - High Performance Computing
- NVIDIA GRID - Virtual Desktops and Applications
- Not all Kepler/Maxwell-based 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 CUDA and NVIDIA NVCUVID accelerated decoding
Wowza Streaming Engine and Wowza Media Server (version 3) support CUDA-based accelerated decoding on 64-bit Windows operating systems. The software is compatible with most NVIDIA graphics cards that support the legacy CUDA instruction set.
Some newer NVIDIA graphics cards have fixed-function hardware that use NVIDIA CUDA Video Decoder (NVCUVID) video decode APIs for accelerated decoding on NVIDIA GPUs with CUDA. Wowza Streaming Engine 4.8.0 and later supports NVCUVID-based HEVC/H.265 accelerated video decoding.
For more information about CUDA-enabled hardware, see NVIDIA CUDA GPUs.
NVIDIA CUDA accelerated video scaling
Wowza Streaming Engine 4.6.0 and later supports using CUDA-based GPU resources to scale video. 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 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 the 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