How to set up Wowza Transcoder NVIDIA NVENC accelerated encoding on CentOS

Wowza Transcoder in Wowza media server software supports NVIDIA's NVENC accelerated H.264 encoding technology, which is available with the Kepler and Maxwell line of NVIDIA graphics cards. This technology is supported on Windows and Linux operating systems.

This article describes how to set up the NVIDIA driver and Wowza media server software on CentOS to leverage this technology.

  • Wowza Streaming Engine™ or Wowza Media Server™ 3.6 is required.
  • The procedure in this article was tested against CentOS 6.4.
  • Accelerated encoding isn't available when running on a virtual hardware environment such as VMware or Xen.
  • 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.

To set up NVENC accelerated encoding on CentOS

  1. Download and install CentOS 6.4 on a server that includes an NVIDIA Kepler-based or Maxwell-based graphics card.
    1. Go to CentOS Download Information and click on CentOS Public Mirror List.
    2. Click the HTTP link for one of the mirror sites.
    3. Navigate to 6.4/isos/x86_64 and download CentOS-6.4-x86_64-bin-DVD1.iso.
    4. Burn the downloaded ISO image onto a DVD.
    5. Install the operating system from the DVD.
      Note: For best performance, select the Minimal install option.
  2. After the installation is complete and the server is rebooted, do the following to prepare the system for the NVIDIA driver installation:
    1. Log on to the system as root user.
    2. Enable the eth0 network interface
      1. Open the ifcfg-eth0 file.
        vi /etc/sysconfig/network-scripts/ifcfg-eth0
      2. Change the ONBOOT value to yes, close and save the file:
      3. Restart the network:
        /etc/init.d/network restart
    3. Update and upgrade all components.
      yum -y update
      yum -y upgrade
    4. Install Development Tools.
      yum -y groupinstall "Development Tools"
    5. Install kernel headers.
      yum -y install kernel-devel kernel-headers dkms
    6. Disable the Nouveau driver:
      1. Open the blacklist.conf file.
        vi /etc/modprobe.d/blacklist.conf
      2. Add the following line to the bottom of the blacklist.conf file and then save and close the file.
        blacklist nouveau
      3. Execute the following commands to have Linux rediscover hardware:
        mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.bak
        dracut -v /boot/initramfs-$(uname -r).img $(uname -r)
    7. Restart the server.
      shutdown -r 0
  3. Download and install the 64-bit Linux driver for your graphics card.
    1. Log on to the system as root user.
    2. Download the graphics driver for your hardware from NVIDIA Driver Downloads.
    3. Make the driver installation package executable.
      chmod +x NVIDIA-Linux-*
    4. Run the driver installation package.
      During the installation, acknowledge the following prompts as follows:
      • Accept: License Agreement
      • Yes: Install NVIDIA 32-bit compatibility OpenGL libraries
      • OK: Failed to execute chcon -t textrel_shlib_t (missing operand)
      • Yes: Continue anyway
      • Yes: Run nvidia-xconfig utility
      • OK: Configuration successfully updated
    5. Restart the server.
      shutdown -r 0
  4. Install Java and Wowza media server software. You can now use the NVENC encoding implementation in your transcoder template. For more information about how to configure your transcoder template, see "Template configuration" in How to set up and run Wowza Transcoder for live streaming.

More resources

NVIDIA Video Encode and Decode GPU Support Matrix

If you're having problems or want to discuss this article, post in our forum.