Gnash (software)

Last updated
GNU Gnash
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.10 [1]   OOjs UI icon edit-ltr-progressive.svg / 31 January 2012
Repository
Written in C++, GTK+ / Qt ReAction
Operating system BSD, Linux, Microsoft Windows and AmigaOS
Type Media player
License 2007: GPL-3.0-or-later [lower-alpha 1]
2005: GPL-2.0-or-later [lower-alpha 2]
Website gnu.org/software/gnash

Gnash is a media player for playing SWF files. [2] Gnash is available both as a standalone player for desktop computers and embedded devices, as well as a plugin for the browsers still supporting NPAPI. [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]

Contents

Gnash was first announced in late 2005 [6] by software developer John Gilmore. As of 2011, the project's maintainer is Rob Savoye. The main developer's web site for Gnash is located on the Free Software Foundation's GNU Savannah project support server. [7]

Gnash supports most SWF v7 features and some SWF v8 and v9, however SWF v10 is not supported. [7]

History

Writing a free software Flash player has been a priority of the GNU Project for some time. [8] 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. [9]

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. [10]

Technical details

Architecture

Adobe only provides an outdated version (11.2) of its official player for Linux on IA-32 and an AMD64 developer preview release in a binary-only form. [11] [12] Gnash, however, can be compiled and executed on many architectures, including x86, ARM, MIPS, 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, [13] does exist, as well as an early port for BeOS, where Flash support terminated at Version 4. [14] Development of a port to AmigaOS 4.1 has also begun. [15] A port to the Haiku Operating System also exists. [16]

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

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

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. [18]

Some other free-software programs, such as MPlayer, [19] VLC media player [20] 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.

Version 0.8.8 was released 22 August 2010. Rob Savoye announced that Gnash should now work with all YouTube videos. [21] Version 0.8.8 has GPU support, which pushed it ahead of the proprietary Adobe Flash Player in Linux, until Flash 10.2 came out with hardware acceleration built in. [22] [23] 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. [24] 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.

Cygnal

Cygnal is the Gnash Project's Flash Media Server-compatible audio and video server. [25] It handles negotiating the copyright metadata exchange, as well as streaming the content. It will need to handle many thousands of simultaneous network connection, and support running on large Linux clusters. It should support handling multiple streams with differing content, as well as a multicast stream with a single data source. [26]

Due to the patent issues surrounding MP3, and the fact that FLV and ON2 are closed formats, one of the main goals of this project is to support free codes and free protocols as the primary way of doing things. There is an optional support for MP3, FLV, and ON2 (VP6 and VP7) when playing existing Flash content. Both FLV and the VP6 & VP7 codecs are included in ffmpeg. Users can use the ffmpeg plugin for GStreamer 0.10 to use these proprietary codecs. [26]

Platform availability

Gnash has successfully run on Microsoft Windows, Darwin (OS X), Irix, Solaris, BeOs, OS/2, and Haiku. Gnash has also run on the following 64-bit systems: PowerPC, Itanium, UltraSparc and AMD64. [27]

Microsoft Windows

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]

Financial support

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

As of March 2012, the lead developer reported donations were barely enough to pay for hosting the project on the web. [32]

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 or reverse engineer Adobe Flash Player. Therefore, the Gnash project has only about 6 active developers, as of November 2010. [33] [34] [35]

Such generic clauses, however, may be against national anticompetition laws when used in normal software license agreements. On May 2, 2012, the Court of Justice of the European Union ruled in case C-406/10 of SAS Institute Inc v World Programming Ltd that the functionality of a computer program is not covered by copyright in the European Union and that contractual provisions are null and void if they forbid observing, studying and testing a computer program in order to reproduce its behavior in a second program. This holds as long as no source code or object code was copied. [36]

See also

Notes

  1. GPL-3.0-or-later since 2007-07-01.
  2. GPL-2.0-or-later from 2005-12-20 until 2007-07-01.

Related Research Articles

<span class="mw-page-title-main">Adobe Flash</span> Discontinued multimedia platform used to add animation and interactivity to websites

Adobe Flash is a discontinued multimedia software platform used for production of animations, rich internet applications, desktop applications, mobile apps, mobile games, and embedded web browser video players.

<span class="mw-page-title-main">VLC media player</span> Free and open-source media-player and streaming-media-server

VLC media player is a free and open-source, portable, cross-platform media player software and streaming media server developed by the VideoLAN project. VLC is available for desktop operating systems and mobile platforms, such as Android, iOS and iPadOS. VLC is also available on digital distribution platforms such as Apple's App Store, Google Play, and Microsoft Store.

<span class="mw-page-title-main">ActionScript</span> Object-oriented programming language created for the Flash multimedia platform

ActionScript is an object-oriented programming language originally developed by Macromedia Inc.. It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript, though it originally arose as a sibling, both being influenced by HyperTalk. ActionScript code is usually converted to byte-code format by a compiler.

SWF is a defunct Adobe Flash file format that was used for multimedia, vector graphics and ActionScript.

Netscape Plugin Application Programming Interface (NPAPI) is a deprecated application programming interface (API) for web browser plugins, initially developed for Netscape Navigator 2.0 in 1995 and subsequently adopted by other browsers.

Adobe Flash Player is discontinued computer software for viewing multimedia content, executing rich Internet applications, and streaming audio and video content created on the Adobe Flash platform. It can run from a web browser as a browser plug-in or independently on supported devices. Originally created by FutureWave under the name FutureSplash Player, it was renamed to Macromedia Flash Player after Macromedia acquired FutureWave in 1996. It was then developed and distributed by Adobe as Flash Player after Adobe acquired Macromedia in 2005. It is currently developed and distributed by Zhongcheng for users in China, and by Harman International for enterprise users outside of China, in collaboration with Adobe.

<span class="mw-page-title-main">Adobe Flash Lite</span> Lightweight version of Adobe Flash Player

Adobe Flash Lite is a discontinued lightweight version of Adobe Flash Player, a software application published by Adobe Systems for viewing Flash content. Flash Lite operates on devices that Flash Player cannot, such as mobile phones and other portable electronic devices like Wii, Chumby and Iriver.

Flash Video is a container file format used to deliver digital video content over the Internet using Adobe Flash Player version 6 and newer. Flash Video content may also be embedded within SWF files. There are two different Flash Video file formats: FLV and F4V. The audio and video data within FLV files are encoded in the same way as SWF files. The F4V file format is based on the ISO base media file format, starting with Flash Player 9 update 3. Both formats are supported in Adobe Flash Player and developed by Adobe Systems. FLV was originally developed by Macromedia. In the early 2000s, Flash Video was the de facto standard for web-based streaming video. Users include Hulu, VEVO, Yahoo! Video, metacafe, Reuters.com, and many other news providers.

<span class="mw-page-title-main">Adobe AIR</span> Cross-platform runtime system for building rich web applications

Adobe AIR is a cross-platform runtime system currently developed by Harman International, in collaboration with Adobe Inc., for building desktop applications and mobile applications, programmed using Adobe Animate, ActionScript, and optionally Apache Flex. It was originally released in 2008. The runtime supports installable applications on Windows, macOS, and mobile operating systems, including Android, iOS, and BlackBerry Tablet OS.

<span class="mw-page-title-main">Microsoft Silverlight</span> Application framework for writing and running rich Internet applications

Microsoft Silverlight is a discontinued application framework designed for writing and running rich internet applications, similar to Adobe's runtime, Adobe Flash. While early versions of Silverlight focused on streaming media, later versions supported multimedia, graphics, and animation, and gave support to developers for CLI languages and development tools. Silverlight was one of the two application development platforms for Windows Phone, but web pages using Silverlight did not run on the Windows Phone or Windows Mobile versions of Internet Explorer, as there was no Silverlight plugin for Internet Explorer on those platforms.

<span class="mw-page-title-main">Moonlight (runtime)</span> Implementation of Microsoft Silverlight for some Unix-based operating systems

Moonlight is a discontinued free and open source implementation for Linux and other Unix-based operating systems of the Microsoft Silverlight application framework, developed and then abandoned by the Mono Project. Like Silverlight, Moonlight was a web application framework which provided capabilities similar to those of Adobe Flash, integrating multimedia, graphics, animations and interactivity into a single runtime environment.

Asao is a proprietary single-channel (mono) codec and compression format optimized for low-bitrate transmission of audio, developed by Nellymoser Inc.

<span class="mw-page-title-main">Uzbl</span> Open source minimalist web browser

Uzbl is a discontinued free and open-source minimalist web browser designed for simplicity and adherence to the Unix philosophy. Development began in early 2009 and is still considered in alpha software by the developers. The core component of Uzbl is written in C, but other languages are also used, most notably Python. All parts of the Uzbl project are released as free software under GNU GPL-3.0-only.

<span class="mw-page-title-main">Adobe Flash Media Live Encoder</span>

Flash Media Live Encoder (FMLE) was a free live encoding software product from Adobe Systems. It was available for Microsoft Windows and Mac OS.

HTML video is a subject of the HTML specification as the standard way of playing video via the web. Introduced in HTML5, it is designed to partially replace the object element and the previous de facto standard of using the proprietary Adobe Flash plugin, though early adoption was hampered by lack of agreement as to which video coding formats and audio coding formats should be supported in web browsers. As of 2020, HTML video is the only widely supported video playback technology in modern browsers, with the Flash plugin being phased out.

<span class="mw-page-title-main">Lightspark</span> Free and open source SWF player

Lightspark is a free and open-source SWF player released under the terms of the GNU Lesser General Public License (LGPL) version 3.

Modern HTML5 has feature-parity with the now-obsolete Adobe Flash. Both include features for playing audio and video within web pages. Flash was specifically built to integrate vector graphics and light games in a web page, features that HTML5 also supports.

<span class="mw-page-title-main">Shumway (software)</span>

Shumway is a discontinued media player for playing SWF files. It was intended as an open-source replacement for Adobe Flash Player. It is licensed under Apache and SIL Open Font License (OFL). Mozilla started development on it in 2012. It was preceded by a failed earlier project called Gordon, a JavaScript library with a similar concept and name, which interprets SWF files with onboard resources of a browser via SVG conversion. These names are an allusion to Flash Gordon and Gordon Shumway.

<span class="mw-page-title-main">OpenFL</span> Software framework for video games

OpenFL is a free and open-source software framework and platform for the creation of multi-platform applications and video games. OpenFL applications can be written in Haxe, JavaScript, or TypeScript, and may be published as standalone applications for several targets including iOS, Android, HTML5, Windows, macOS, Linux, WebAssembly, Flash, AIR, PlayStation 4, PlayStation 3, PlayStation Vita, Xbox One, Wii U, TiVo, Raspberry Pi, and Node.js.

<span class="mw-page-title-main">Ruffle (software)</span> Open source emulator for Adobe Flash

Ruffle is a free and open source emulator for playing Adobe Flash (SWF) animation files.

References

  1. Rob Savoye (7 February 2012). "Gnash 0.8.10 released".
  2. "For Flash on Linux, There Are Open Player Alternatives" . Retrieved 2016-08-10.
  3. "Gnash Project". Archived from the original on 2007-04-20. Retrieved 2007-04-23.
  4. Andrei, Alin (23 August 2010). "Gnash 0.8.8 Claims To Support All YouTube Videos, But Is It Good Enough?". Web Upd8. Retrieved 2010-11-03.
  5. 1 2 "Why do you use C++ and not C? FAQ entry". Gnash Project. Archived from the original on 2008-06-17. Retrieved 2011-03-25.
  6. Welcome to the Gnash project! Gnash mailing list, 20 December 2005
  7. 1 2 "GNU Gnash - GNU Project - Free Software Foundation". Free Software Foundation . Retrieved 2016-08-10.
  8. "High Priority Free Software Projects". Archived from the original on 2007-08-10. Retrieved 2008-08-05.
  9. "GPLFlash homepage" . Retrieved 2007-04-17.
  10. Gilmore, John (20 December 2005). "Welcome to the Gnash project!". Gnash mailing list. Retrieved 2006-12-28.
  11. "Adobe TechNote: Flash Player support on 64-bit operating systems". Adobe. Retrieved 2007-04-22.
  12. "Flash Player "Square" Preview Release". Adobe. Archived from the original on 2012-01-09. Retrieved 2010-11-04.
  13. "RISC OS To Get Flash, Word Support". Thom Holwerda, osnews.com. Retrieved 2007-04-22.
  14. "Gnash for BeOS (Take 2)". DaaT, joomla.iscomputeron.com. Archived from the original on 2007-09-29. Retrieved 2007-04-22.
  15. "Gnash – The GNU SWF movie player". Amigasoft.net. Archived from the original on 2009-05-15. Retrieved 2009-06-15.
  16. "Gnash 0.8.6". Haikuware.com. Archived from the original on 2013-01-25. Retrieved 2009-11-28.
  17. "Gnash Reference Manual". www.gnu.org. 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
  18. "Task #5930 on GNU Gnash Savannah Site". Gnash Developers. Retrieved 2007-04-22.
  19. "FFmpeg Documentation – Supported Video Formats". MPlayer Developers. Retrieved 2007-04-22.
  20. "VideoLAN Client Features List". VideoLAN Developers. Retrieved 2007-04-22.
  21. "Gnash Project Rob's Blog". Archived from the original on 2010-08-25. Retrieved 2010-08-26.
  22. Lewis, David Robert. "Gnash 0.8.8 Released with GPU support". U8UNTU ELIXIR. Archived from the original on 2010-12-01. Retrieved 2010-11-03.
  23. Larabel, Michael. "Adobe Flash 10.2 Brings Linux Video Acceleration". Joe Shmoe. Retrieved 2012-06-10.
  24. Martin, Caitlyn (August 27, 2010). "Gnash 0.8.8: A Huge Improvement Over Previous Versions". O'Reilly Community. Retrieved 2010-11-03.
  25. "Linux Fund: Gnash". www.linuxfund.org. Linux Fund. Retrieved 2016-08-10.
  26. 1 2 "Cygnal - Gnash Project Wiki". Free Software Foundation. 2015-09-05. Archived from the original on 2015-09-05. Retrieved 2016-08-09.
  27. "Gnash User Manual". www.gnu.org. Free Software Foundation. p. Section Software Requirements. Retrieved 2016-08-09.
  28. "Gnash 0.8.3 release". Free Software Foundation. Retrieved 2010-11-04.
  29. "Gnash unsupported windows port". Open Media Now!. Retrieved 2010-11-04.
  30. "John Gilmore's home page". John Gilmore. Archived from the original on 2010-04-27.
  31. "Gnash Developers' Blog – "Funding Plea"". Gnash. Archived from the original on 2010-11-23. Retrieved 2010-11-29.
  32. "Gnash, Lightspark, and Shumway".
  33. "Gnash FAQ – How do Gnash developers work with the Adobe/Macromedia EULA?". Gnash Project. Archived from the original on 2008-06-17. Retrieved 2010-11-03.
  34. "Adobe Flash Player "Square" End User License Agreement". Adobe Labs. Archived from the original on 2010-11-17. Retrieved 2010-11-03.
  35. "Two approaches to Flash". Gnash Project. Retrieved 2010-11-04.
  36. "Presse et Information" (PDF). Court of Justice of the European Union. Retrieved 2012-06-07.