Hardware Video decoding

From Gnash Project Wiki

Jump to: navigation, search

Enabling Hardware Video Decoding

As of mid March 2010, Gnash gained support for hardware based video decoding using the libVA library. This work was done primary by Gwenole Beauchesne from Splitted Desktop, and donated to Gnash. You can see his page on VAAPI. There is more information on the Freedesktop.org's page for VAAPI.

To build Gnash with VAAPI support, you need a recent version of ffmpeg, roughly anything after Jan 2010 should work. Ffmpeg and Gnash then both depend on libva, which supports the VAAPI. Libva then needs video drivers for the GPU, currently in the vdpau-video package. You can get packages for these from http://www.getgnash.org/packages or from Gwenole's site

For Ubuntu users, there are experimental packages for these and more at: https://launchpad.net/~nvidia-vdpau/+archive/cutting-edge-multimedia. I haven't had much luck with these packages myself, which is why I started building my own.

Currently, to enable this support in Gnash, you have to specify --enable-media=ffmpeg when configuring Gnash. If your version of ffmpeg has VAAPI support, then it'll be used by Gnash as well. Once built, you can control whether VAAPI is used or not at runtime via the --hwaccel= command line option, or by adding a set HWAccel vaapi (or none)

While the newer versions of ffmpeg have some performance improvements for video in general, this really only works well for mpeg4. My tests with HD YouTube videos, has them playing in a window with around 30% cpu load on my dual-core laptop with the AGG backend.