How to set up Wowza Transcoder Quick Sync accelerated encoding on CentOS

Note: This article is for an older Wowza™ product or technology that either has been updated or is no longer supported. For the current version of this article, see How to configure Quick Sync accelerated encoding on Linux.
Wowza Transcoder contains preview technology that makes the best use of 3rd generation Intel Core processors on the Linux CentOS operating system distribution by adding support for Intel Quick Sync Video. Using Intel Quick Sync Video can double transcoding speeds over 2nd generation Intel Core processors by moving video-conversion tasks to dedicated media processing space. The final version of the technology that supports Quick Sync Video will be available in a later release of Wowza Transcoder.

This article describes how to set up Quick Sync acclerated encoding on CentOS.
 
Note: Wowza Media Server™ 3.5.0 or later is required.
 
Note: The steps in this article were tested against CentOS 6.3. Older versions of CentOS may not work properly because the Intel LibVA driver technology that Quick Sync acceleration relies on is quite new.
 
Note: Accelerated encoding is not available when running on a virtual hardware environment such as VMWare or XEN.
 
To set up Quick Sync accelerated encoding on CentOS
 
  1. Download and install CentOS 6.3 on a server that has either a Sandy Bridge or Ivy Bridge processor.
     
    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.3/isos/x86_64 and download CentOS-6.3-x86_64-bin-DVD1.iso.
  2. Run the install and be sure to select the Minimal Desktop default option during the installation process.
     
  3. After the installation is complete and the server is rebooted, enable the network connection and execute the following commands in a terminal window to update the system and install the Intel LibVA software (be sure to be logged in as root user):
    rpm -Uvh http://mirror.pnl.gov/epel/6/i386/epel-release-6-8.noarch.rpm
    yum -y localinstall --nogpgcheck http://download1.rpmfusion.org/free/el/updates/6/i386/rpmfusion-free-release-6-1.noarch.rpm http://download1.rpmfusion.org/nonfree/el/updates/6/i386/rpmfusion-nonfree-release-6-1.noarch.rpm
    
    [reboot]
    
    yum -y update
    
    yum -y install libva
    yum -y install libva-utils
    yum -y install libva-intel-driver
  4. Test to be sure LibVA is properly installed by executing the following command:
    export DISPLAY=:0.0
    vainfo
    The output should look like this:
    libva: VA-API version 0.32.0
    libva: va_getDriverName() returns 0
    libva: Trying to open /usr/lib64/dri/i965_drv_video.so
    libva: va_openDriver() returns 0
    vainfo: VA-API version: 0.32 (libva 1.0.15)
    vainfo: Driver version: Intel i965 driver - 1.0.15
    vainfo: Supported profile and entrypoints
          VAProfileMPEG2Simple            : VAEntrypointVLD
          VAProfileMPEG2Main              : VAEntrypointVLD
          VAProfileH264Baseline           : VAEntrypointVLD
          VAProfileH264Baseline           : VAEntrypointEncSlice
          VAProfileH264Main               : VAEntrypointVLD
          VAProfileH264Main               : VAEntrypointEncSlice
          VAProfileH264High               : VAEntrypointVLD
          VAProfileH264High               : VAEntrypointEncSlice
          VAProfileVC1Simple              : VAEntrypointVLD
          VAProfileVC1Main                : VAEntrypointVLD
          VAProfileVC1Advanced            : VAEntrypointVLD
    QuickSync acceleration will not work properly unless you see the following entries in the Supported profile and entrypoints list:
    VAProfileH264Baseline           : VAEntrypointEncSlice
    VAProfileH264Main               : VAEntrypointEncSlice
    If you do not see these entries in the list, then either LibVA is not configured properly or your system does not support Quick Sync acceleration.
     
  5. Install Java and Wowza Media Server 3.5. You can now use the QuickSync encoding implementation in your transcoder template.
 
Note: When running as root user, you may receive an error messages like the following:
error: can't connect to X server!
Xlib: No protocol specified
One solution is to do the following:
 
  1. Login as a non-root user and execute the following command:
    xhost +
    -or-

    Login as root user using the following command:
    su -
  2. Test the VAAP install using the following commands:
    export DISPLAY=:0.0
    vainfo