The sorry state of Flash with 64-bit Debian

Vincent Bernat

Even with the availability <video> tag in HTML5, most websites still require the use of Adobe Flash plugin to access some content. If you run a 64-bit (Intel architecture) version of Debian, you can still get this plugin through the flashplugin-nonfree package. Unfortunately, Adobe never committed to a decent support for the 64-bit version of its plugin. The first 64-bit version was provided as late as the fall of 2008. The support was discontinued. Then, we recently got a new preview release but it is still lagging behind the 32-bit version.

The 64-bit plugin has two major drawbacks:

  • it is not up-to-date and plagued by several security holes that are not planned to be corrected for the 64-bit version;
  • it exhibits some bugs of its own, like some sound artifacts that come from the use of memcpy() in place of memmove() and only happen with recent GNU libc—where memcpy() has been optimized and is no longer equivalent to memmove(). Adobe has no plan to fix this. There are several ways documented in the bug report to circumvent this bug.

Even if you fix the second point, you have no way to fix the first one. What are the alternatives?

Update (2011-07)

Adobe released, on July 13, version 11 of its Flash Player. Whether or not this version will be maintained is a complete mystery. However, it supports Linux 64-bit.

Lightspark#

Lightspark is a modern, free, open-source Flash player implementation featuring JIT compilation (with the help of LLVM) and hardware acceleration using OpenGL. It only supports ActionScript 3 (introduced in Flash 9) but it now fallbacks to Gnash if an older version is required.

The main problem of Lightspark is that it is optimized for modern hardware and uses OpenGL textures to display video frames. This allows you to achieve video compositing with the help of the graphic card. Unfortunately, if you use a video card with poor OpenGL performance, like a NVIDIA card with Nouveau driver, Lightspark is slow as hell. It works well with an Intel card.

Currently, Lightspark is only available in experimental for Debian. Install browser-plugin-lightspark.

Gnash#

Gnash is a more mature project but does not support ActionScript 3. Youtube works well with Gnash, as well as most other applications unless they use too recent features. If your use of Flash is limited, it is a nice alternative. Unfortunately, more and more content are delivered with an application requiring ActionScript 3 support.

On Debian, you can get started by installing browser-plugin-gnash.

32-bit Flash plugin on Debian#

Ubuntu provides Flash as a 32-bit plugin with the help of nspluginwrapper which is a special plugin that will enable the use of a 32-bit plugin inside a 64-bit browser. This seems a sensible choice since Adobe only really supports the 32-bit version. You can also use nspluginwrapper with Debian. You need to download 32-bit version of Flash (not available anymore), uncompress it and put libflashplayer.so in ~/.mozilla/plugins.

# aptitude purge flashplugin-nonfree
# aptitude install nspluginwrapper lib32asound2-plugins
$ cd ~/.mozilla/plugins
$ nspluginwrapper -i $PWD/libflashplayer.so

Beware that you need to watch for updates yourself. Mozilla provides a website checking if plugins are up-to-date. It works with other browsers than Firefox.

This is a pity to still need this kind of hack in 2011 but it seems that this is currently the best solution.

Update (2011-06)

In a comment, Paul Rufous tells debian-multimedia.org repository provides flashplayer-mozilla package which is the 32-bit plugin with nspluginwrapper.

HTML5#

Thanks to the <video> tag available in HTML5, most videos should be available without the need of a special plugin. Unfortunately, HTML5 does not define a list of video codecs and container formats that should be supported by any browser. Therefore, some browsers support Ogg Theora, some others H264 and some of them also support WebM, the new royalty-free format from Google. You can find a good summary of the problem from Mark Pilgrim.

With Chromium as found in Debian, you have Ogg Theora, WebM and H264. Youtube has an opt-in program to enable HTML5 video but most other video content are just unavailable without Flash. Web without Flash is not a reality yet.

Grab video with helper tools#

Update (2011-06)

Josh Triplett pointed in a comment the existence of several command line tools that could be used to download Flash video from popular websites. These tools include: youtube-dl, get-flash-videos and clive. They can be useful even if you have installed a Flash plugin since they allow the use of the video player of your choice (better performance, working fullscreen mode).

Update (2011-06)

Another solution provided in a comment: Video DownloadHelper extension allows one to extract videos from the current web page.