Home > Linux, Rockchip RK31xx, Testing, Ubuntu, Video > Selecting the Best Adobe Flash Player in Linux for x86 and ARM

Selecting the Best Adobe Flash Player in Linux for x86 and ARM

I’ve had countless and recurrent crashes caused by Adobe flash plugin either in Firefox and Chromium, mainly while playing videos from YouTube or other online video services that still mostly use flash, instead of HTML5. Adobe flash death is certain, but up to now it has been soooo slow, so I doubt that thing will truly die any time soon, and unfortunately it will probably be with us for many years to come. To work around the issue, I started by enabling Youtube HTML5 player, and try to play embedded videos inside YouTube instead of the orignal website. I still had crashes from time to time, and this method did not help with other video services. So I decided to check out what I could do to fix the issue.

When you go to http://www.adobe.com/software/flash/about/ you can check your flash version, and Adobe will also list the player version for different combination of operating systems and web browsers.

Adobe_Flash_Player_VersionAdobe has stopped provided updated for Linux and Solaris for a while, so Firefox will always be stuck to 11.2.x in Linux. Google has however developed their own Pepper-based Flash Player for Chrome, as Google consider flash (and Java) to be insecure.

There are currently three main options in Linux x86 to support flash:

  • Gnash – GNU Flash, open source version of the player. Found in browser-plugin-gnash package.
  • Adobe flash – Version 11.2. Found in flashplugin-installer or flashplugin-nonfree package. The library is called libflashplayer.so.
  • Google Pepper – Version 12.0. Found in google-chrome-stable package. The flash library is called libpepflashplayer.so.

Adobe flash and Google Pepper are not compatible, and Mozilla has no intention to implement the Pepper API, at least for now.

In my case, Firefox and Chromium both used Adobe flash library, and both crashed with version 11,2,202,346. I’ve tried to install Gnash with “sudo apt-get install browser-plugin-gnash“, but it did not seem to work. The only remaining option was to use Google Pepper, so I installed Chrome with “sudo apt-get install google-chrome-stable“, and I have to say flash content seems to be pretty stable now. So for Ubuntu on x86 / AMD64, the best option for flash support seems to install Chrome.

If for some reasons you’d like to keep on using the open source Chromium instead of Chrome,. but still make use of the Pepper library, simply edit /etc/chromium-browser/default, and edit CHROMIUM_FLAGS as follows:

CHROMIUM_FLAGS="--ppapi-flash-path=/opt/google/chrome/PepperFlash/libpepflashplayer.so"

You’ll need to install Chrome to get libpepflashplayer. Your libpepflashplayer may be in another location in your computer. To find it, run locate libpepflashplayer.so.

Go to http://www.adobe.com/software/flash/about/ to verify the version, and you show see:

You have version 12,0,0,77 installed

Let’s have a look at ARM Linux. In Ubuntu, I used to be able to install flash with sudo apt-get install flashplugin-nonfree, but all “flashplugin” packages have now completely disappeared from Ubuntu repository, at least in 13.10. So the only option are Gnash, and Pepper. Gnash can install fine, Adove “About Flash” page returns “You have version 10,1,999,0 installed”, but I was enabled to play any YouTube videos. Chrome is not available for ARM, at least not via the Ubuntu repositories, so we need to use Chromium with libpepflashplayer.so extracted from Chrome OS in the Samsung ARM Chromebook.

The guys behind Radxa Rock have just released Android, Ubuntu, and dual boot images for the board, and the Linux images (Linaro 13.11 Desktop – Lubuntu) happen to support libpepflashplayer.so. Instead of modifying /etc/chromium/default, they’ve changed /usr/bin/chromium-browser script with the following:

/usr/bin/chromium-browser-bin --ppapi-flash-path=/usr/lib/libpepflashplayer.so --ppapi-flash-version=11.5.31.105 --ppapi-flash-args=enable_hw_video_decode=0,enable_stagevideo_auto=0,enable_trace_to_console=0

Adobe “About Flash” page returns “You have version 11,5,32,0 installed”, which confirms this is not Adobe flash for ARM, although it may not be the latest version (12.0). It does not work, but since hardware decode is not available in Linux, performance is poor. A 360p video plays OK within YouTube, but if you zoom or switch to full screen I get about one frame per second. Other flash content appears to be rendered just fine.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

  1. The Cageybee
    March 17th, 2014 at 17:07 | #1

    Flash on ARM Linux is a nightmare. Official!
    YouTubes HTML5 support is a joke. Hardly any videos are supported. Any video that has ads enabled (about 90%) can’t be viewed via HTML5.

  2. rasz_pl
    March 17th, 2014 at 23:10 | #2

    when it comes to YT it would be trivial to write javascript plugin that just extracts URL for the .mp4 file, directly from .googlevideo server farm, and passes it to mplayer for example, or wraps it into HTML5 Video tag.
    You can already extract those URLs using Youtube Center plugin for example (source of the plugin is a pure javascript).

    It works on ALL YT videos now, might stop working when YT forces DASH as the only option.

    Do any android internet browsers support plugins/userscript?

  3. onebir
    March 18th, 2014 at 03:35 | #3

    @rasz_pl Does this mean youtube-dl will stop working? :(

  4. ade
    March 18th, 2014 at 05:40 | #4

    A long time ago, there was a project for a new flash player using LLVM for the JIT and OpenGL for the rendering. It’s located here but I don’t know how much it matured… http://lightspark.github.io/

  5. wycx
    March 18th, 2014 at 16:53 | #5

    @The Cageybee
    If YouTube is not giving you HTML5, put “_popup” in the URL:

    http://www.youtube.com/watch?v=NtqUE67BUDI

    change to

    http://www.youtube.com/watch_popup?v=NtqUE67BUDI

    and it will force HTML5. You will find many more videos now work.

  6. March 18th, 2014 at 17:34 | #6

    @The Cageybee
    @wycx
    watch_popup does not seem to work for me. Maybe they changed something.

    But the method in the link below with Greasemonkey appears to work fine in Firefox.
    http://googlesystem.blogspot.com/2013/09/force-youtube-to-use-html5-player.html

  1. December 14th, 2014 at 20:40 | #1