Gnash

Gnash

Screenshot of Gnash 0.8.0 GTK+ GUI with test SWF file
Developer(s) Rob Savoye, Sandro Santilli, Bastiaan Jacques, Benjamin Wolsey, Zou Lunkai, Tomas Groth, Udo Giacomozzi, Hannes Mayr, John Gilmore, Markus Gothe.
Stable release 0.8.9 [1] / March 19, 2011; 10 months ago (2011-03-19)
Written in C++, GTK+ / Qt
Operating system BSD, Debian, gNewSense, Microsoft Windows and Ubuntu[2]
Type Media player
License GNU General Public License
Website gnashdev.org

Gnash is a media player for playing SWF files. Gnash is available both as a standalone player for desktop computers and embedded device, as well as a plugin for several browsers.[3] It is part of the GNU Project and is a Free and open-source alternative to Adobe Flash Player.[4] It was developed from the GameSWF project.[5]

Gnash was first announced in late 2005[6] by software developer John Gilmore. The current maintainer is Rob Savoye.

Contents

History

Writing a free software Flash player has been a priority of the GNU Project for some time.[7] Prior to the launch of Gnash, the GNU Project had asked for people to assist the GPLFlash project. The majority of the previous GPLFlash developers have now moved to the Gnash project and the existing GPLFlash codebase will be refocused towards supporting embedded systems.[8]

The primary distribution terms for Gnash are those of the GNU GPL. However since Gnash was started using the codebase of the GameSWF project, which is in the public domain, code developed by the Gnash project which might be useful in GameSWF is placed in the public domain.[9]

Technical details

Architecture

Adobe provides an official player for GNU/Linux on x86 and an AMD64 developer preview release in a binary-only form.[10][11] Gnash, however, can be compiled and executed on many architectures, including x86, AMD64, MIPS/IRIX, and PowerPC. It also supports BSD-based operating systems. An early port for RISC OS, which has never had Macromedia/Adobe Flash support beyond Flash 3,[12] does exist, as well as an early port for BeOS, where Flash support terminated at Version 4.[13] Development of a port to AmigaOS 4.1 has also recently begun.[14] A port to the Haiku Operating System also exists.[15]

Gnash requires one of AGG, Cairo, or OpenGL for rendering. In contrast to most GNU projects, which are typically written in C, Gnash is written in the C++ programming language because of its GameSWF heritage.[5]

Flash compatibility

Currently, Gnash can play SWF files up to version 7, and 80% of ActionScript 2.0[16].

The goal of the Gnash developers is to be as compatible as possible with the proprietary player (including behavior on bad ActionScript code). However, Gnash offers some special features not available in the Adobe player, such as the possibility to extend the ActionScript classes via shared libraries: sample extensions include MySQL support, file system access and more. For security reasons the extension mechanism must be compiled-in explicitly and enabled via configuration files.

Video support

Gnash supports playback of FLV videos and allows playing some FLV files from YouTube, MySpace, ShowMeDo and other similar websites (older files with sound – newer files without playing sound). FLV support requires FFmpeg or GStreamer to be installed on the system.[17]

Some other free-software programs, such as MPlayer,[18] VLC media player[19] or players for Windows based on the ffdshow DirectShow codecs can play back the FLV format if the file is specially downloaded or piped to it.

The version 0.8.8 was released on the 22 August 2010. Rob Savoye announced that Gnash should now work with 100% of all YouTube videos.[20] Version 0.8.8 has GPU support, pushing it ahead of the proprietary Adobe Flash Player which lacks such support in Linux.[21] Gnash still suffers from high CPU usage. A Flashblock plugin can be installed by the user, turning on the Flash support on a case-by-case, as needed basis.[22] YouTube video controls and full screen mode is functioning, although version 0.8.8 has a bug that can cause YouTube to display "Invalid parameters". Many popular Flash games do not work with Gnash 0.8.8.

Commercial support

The project was financially supported by a commercial company, Lulu.com[23] until July 2010.[24]

Adobe Flash Player End User License Agreement

One problem for the project is the difficulty of finding developers. The current developers have never installed Adobe's Flash player, because they fear that anyone who has ever installed the Adobe Flash Player has at the same time accepted an agreement not to modify, reverse engineer or develop a competing Flash player. Therefore, the Gnash project has only about 6 active developers.[25][26][27]

Such generic clauses, however, may be against national anticompetition laws when used in normal software license agreements.

Windows support

Gnash has been ported to Windows and the plugin works best with Firefox 1.0.4 or newer, and should work in any Mozilla based browser.[28] However, in newer browsers the plugin may become unstable or inoperative.

Newer Gnash binaries for Windows do not include a plugin and currently there is no newer working Gnash plugin on Windows.[29]

Lightspark

Lightspark is the most recent open source Flash player designed to support high performance graphics and most of ActionScript 3 code (AVM2). It will fallback on Gnash if detected on the system for any clip using ActionScript 1.0 and 2.0 code (AVM1).

See also


References

  1. ^ GnashDev Blog
  2. ^ "Gnash: Obtaining Pre-built Packages". Gnash Developers Wiki. Gnash Project. http://wiki.gnashdev.org/w/index.php?title=Gnash&oldid=6444. Retrieved 19 January 2011. 
  3. ^ Gnash Project
  4. ^ "Gnash 0.8.8 Claims To Support All YouTube Videos, But Is It Good Enough?". Web Upd8. http://www.webupd8.org/2010/08/gnash-088-claims-to-support-all-youtube.html. Retrieved 2010-11-03. 
  5. ^ a b "Why do you use C++ and not C? FAQ entry". Gnash Project. http://www.gnashdev.org/?q=node/25#c++. Retrieved 2011-03-25. 
  6. ^ Welcome to the Gnash project! Gnash mailing list, 20 December 2005
  7. ^ "High Priority Free Software Projects". http://www.fsf.org/campaigns/priority.html. Retrieved 2008-08-05. 
  8. ^ "GPLFlash homepage". http://gplflash.sourceforge.net/. Retrieved 2007-04-17. 
  9. ^ Gilmore, John (20 December 2005). "Welcome to the Gnash project!". Gnash mailing list. http://lists.gnu.org/archive/html/gnash/2005-12/msg00000.html. Retrieved 2006-12-28. 
  10. ^ "Adobe TechNote: Flash Player support on 64-bit operating systems". Adobe. http://www.adobe.com/cfusion/knowledgebase/index.cfm?id=6b3af6c9. Retrieved 2007-04-22. 
  11. ^ "Flash Player "Square" Preview Release". Adobe. http://labs.adobe.com/downloads/flashplayer10.html. Retrieved 2010-11-04. 
  12. ^ "RISC OS To Get Flash, Word Support". Thom Holwerda, osnews.com. http://osnews.com/story.php?news_id=16552. Retrieved 2007-04-22. 
  13. ^ "Gnash for BeOS (Take 2)". DaaT, joomla.iscomputeron.com. http://joomla.iscomputeron.com/index.php?option=com_content&task=view&id=924. Retrieved 2007-04-22. 
  14. ^ "Gnash - The GNU SWF movie player". Amigasoft.net. http://www.amigasoft.net/pages/gnash/gnash.asp. Retrieved 2009-06-15. 
  15. ^ "Gnash 0.8.6". Haikuware.com. http://www.haikuware.com/directory/view-details/multimedia/video/playback/gnash-086. Retrieved 2009-11-28. 
  16. ^ "Gnash Reference Manual". www.gnu.org. http://www.gnu.org/software/gnash/manual/gnashref.html#runs-on. Retrieved 2011-11-12. "Gnash is capable of reading up to SWF v9 files and opcodes, but primarily supports SWF v7, with better SWF v8 and v9 support under heavy development. Since the 0.8.2 release, Gnash includes initial parser support for SWF v8 and v9. Not all ActionScript 2 classes are implemented yet, but all of the most heavily used ones are. Many ActionScript 2 classes are partially implemented; there is support for all of the commonly used methods of each class. Gnash has implemented about 80% of ActionScript v2.0, and has begun implementing ActionScript v3.0. Gnash supports the majority of Flash opcodes up to SWF v9, and a wide sampling of ActionScript classes for SWF v8" 
  17. ^ "Task #5930 on GNU Gnash Savannah Site". Gnash Developers. http://savannah.gnu.org/task/?5930. Retrieved 2007-04-22. 
  18. ^ "FFmpeg Documentation - Supported Video Formats". MPlayer Developers. http://ffmpeg.mplayerhq.hu/ffmpeg-doc.html#SEC24. Retrieved 2007-04-22. 
  19. ^ "VideoLAN Client Features List". VideoLAN Developers. http://www.videolan.org/vlc/features.html. Retrieved 2007-04-22. 
  20. ^ Gnash Project Rob's Blog
  21. ^ Lewis, David Robert. "Gnash 0.8.8 Released with GPU support". U8UNTU ELIXIR. http://u8untu.blogetery.com/2010/08/23/gnash-0-8-8-released/. Retrieved 2010-11-03. 
  22. ^ Martin, Caitlyn (August 27, 2010). "Gnash 0.8.8: A Huge Improvement Over Previous Versions". O'Reilly Community. http://broadcast.oreilly.com/2010/08/gnash-088-a-huge-improvement-o.html. Retrieved 2010-11-03. 
  23. ^ "John Gilmore's home page". John Gilmore. http://www.toad.com/gnu/. 
  24. ^ "Gnash Developers' Blog - "Funding Plea"". Gnash. http://www.gnashdev.org/?q=node/74. 
  25. ^ "Gnash FAQ - How do Gnash developers work with the Adobe/Macromedia EULA?". Gnash Project. http://www.gnashdev.org/?q=node/25#eula. Retrieved 2010-11-03. 
  26. ^ "Adobe Flash Player "Square" End User License Agreement". Adobe Labs. http://labs.adobe.com/technologies/eula/flashplayer10.html. Retrieved 2010-11-03. 
  27. ^ "Two approaches to Flash". Gnash Project. http://lwn.net/Articles/228637/. Retrieved 2010-11-04. 
  28. ^ "Gnash 0.8.3 release". Free Software Foundation. http://www.gnu.org/software/gnash/release-0.8.3.txt. Retrieved 2010-11-04. 
  29. ^ "Gnash unsupported windows port". Open Media Now!. http://benjaminwolsey.de/downloads/. Retrieved 2010-11-04. 

External links