Gnash
Encyclopedia
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 browser
s. It is part of the GNU Project
and is a Free and open-source alternative to Adobe Flash Player
. It was developed from the GameSWF
project.
Gnash was first announced in late 2005 by software developer John Gilmore. The current maintainer is Rob Savoye
.
for some time. 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.
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.
, 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, does exist, as well as an early port for BeOS
, where Flash support terminated at Version 4. Development of a port to AmigaOS 4.1 has also recently begun. A port to the Haiku Operating System
also exists.
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.
files up to version 7, and 80% of ActionScript
2.0.
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.
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.
Some other free-software programs, such as MPlayer
, VLC media player
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. Version 0.8.8 has GPU support, pushing it ahead of the proprietary Adobe Flash Player which lacks such support in Linux. 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. 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.
until July 2010.
Such generic clauses, however, may be against national anticompetition laws when used in normal software license agreements.
Newer Gnash binaries for Windows do not include a plugin and currently there is no newer working Gnash plugin on Windows.
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).
SWF
SWF is an Adobe Flash file format used for multimedia, vector graphics and ActionScript. Originating with FutureWave Software, then transferred to Macromedia, and then coming under the control of Adobe, SWF files can contain animations or applets of varying degrees of interactivity and function.,...
files. Gnash is available both as a standalone player for desktop computers and embedded device, as well as a plugin for several browser
Browser
To browse or a browser may, among other concepts, refer to:*Browse, , a kind of orienting strategy in animals and human beings*Browsing , a type of herbivory*A user interface on a computer that allows navigation of objects...
s. It is part of the GNU Project
GNU Project
The GNU Project is a free software, mass collaboration project, announced on September 27, 1983, by Richard Stallman at MIT. It initiated GNU operating system development in January, 1984...
and is a Free and open-source alternative to Adobe Flash Player
Adobe Flash Player
The Adobe Flash Player is software for viewing multimedia, Rich Internet Applications and streaming video and audio, on a computer web browser or on supported mobile devices. Flash Player runs SWF files that can be created by the Adobe Flash authoring tool, by Adobe Flex or by a number of other...
. It was developed from the GameSWF
GameSWF
GameSWF is an open source public domain library for parsing and rendering SWF movies, using 3D hardware APIs for rendering. It is designed to be used as a UI library for computer and console games....
project.
Gnash was first announced in late 2005 by software developer John Gilmore. The current maintainer is Rob Savoye
Rob Savoye
Rob Savoye is the primary developer of Gnash. He is a developer for the GNU Project, having worked on Debian, Red Hat and dozens of other free/open source software projects. He was among the first employees of Cygnus Support, which was sold to Red Hat in 2001....
.
History
Writing a free software Flash player has been a priority of the GNU ProjectGNU Project
The GNU Project is a free software, mass collaboration project, announced on September 27, 1983, by Richard Stallman at MIT. It initiated GNU operating system development in January, 1984...
for some time. 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.
The primary distribution terms for Gnash are those of the GNU GPL. However since Gnash was started using the codebase of the GameSWF
GameSWF
GameSWF is an open source public domain library for parsing and rendering SWF movies, using 3D hardware APIs for rendering. It is designed to be used as a UI library for computer and console games....
project, which is in the public domain
Public domain
Works are in the public domain if the intellectual property rights have expired, if the intellectual property rights are forfeited, or if they are not covered by intellectual property rights at all...
, code developed by the Gnash project which might be useful in GameSWF is placed in the public domain.
Architecture
Adobe provides an official player for GNU/Linux on x86 and an AMD64 developer preview release in a binary-only form. Gnash, however, can be compiled and executed on many architectures, including x86X86 architecture
The term x86 refers to a family of instruction set architectures based on the Intel 8086 CPU. The 8086 was launched in 1978 as a fully 16-bit extension of Intel's 8-bit based 8080 microprocessor and also introduced segmentation to overcome the 16-bit addressing barrier of such designs...
, AMD64, MIPS
MIPS architecture
MIPS is a reduced instruction set computer instruction set architecture developed by MIPS Technologies . The early MIPS architectures were 32-bit, and later versions were 64-bit...
/IRIX
IRIX
IRIX is a computer operating system developed by Silicon Graphics, Inc. to run natively on their 32- and 64-bit MIPS architecture workstations and servers. It was based on UNIX System V with BSD extensions. IRIX was the first operating system to include the XFS file system.The last major version...
, and PowerPC
PowerPC
PowerPC is a RISC architecture created by the 1991 Apple–IBM–Motorola alliance, known as AIM...
. It also supports BSD-based operating systems. An early port for RISC OS
RISC OS
RISC OS is a computer operating system originally developed by Acorn Computers Ltd in Cambridge, England for their range of desktop computers, based on their own ARM architecture. First released in 1987, under the name Arthur, the subsequent iteration was renamed as in 1988...
, which has never had Macromedia/Adobe Flash support beyond Flash 3, does exist, as well as an early port for BeOS
BeOS
BeOS is an operating system for personal computers which began development by Be Inc. in 1991. It was first written to run on BeBox hardware. BeOS was optimized for digital media work and was written to take advantage of modern hardware facilities such as symmetric multiprocessing by utilizing...
, where Flash support terminated at Version 4. Development of a port to AmigaOS 4.1 has also recently begun. A port to the Haiku Operating System
Haiku (operating system)
Haiku is a free and open source operating system compatible with BeOS. Its development began in 2001, and the operating system became self-hosting in 2008, with the first alpha release in September 2009, the second in May 2010 and the third in June 2011....
also exists.
Gnash requires one of AGG
Anti-Grain Geometry
Anti-Grain Geometry is a high-quality 2D rendering library written in C++. It features anti-aliasing and sub-pixel resolution.The library is operating system independent and renders to an abstract memory object. It comes with examples interfaced to the X Window System, Microsoft Windows, Mac OS X,...
, Cairo
Cairo (graphics)
cairo is a software library used to provide a vector graphics-based, device-independent API for software developers. It is designed to provide primitives for 2-dimensional drawing across a number of different backends...
, or OpenGL
OpenGL
OpenGL is a standard specification defining a cross-language, cross-platform API for writing applications that produce 2D and 3D computer graphics. The interface consists of over 250 different function calls which can be used to draw complex three-dimensional scenes from simple primitives. OpenGL...
for rendering. In contrast to most GNU projects, which are typically written in C
C (programming language)
C is a general-purpose computer programming language developed between 1969 and 1973 by Dennis Ritchie at the Bell Telephone Laboratories for use with the Unix operating system....
, Gnash is written in the C++
C++
C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...
programming language because of its GameSWF heritage.
Flash compatibility
Currently, Gnash can play SWFSWF
SWF is an Adobe Flash file format used for multimedia, vector graphics and ActionScript. Originating with FutureWave Software, then transferred to Macromedia, and then coming under the control of Adobe, SWF files can contain animations or applets of varying degrees of interactivity and function.,...
files up to version 7, and 80% of ActionScript
ActionScript
ActionScript is an object-oriented language originally developed by Macromedia Inc. . It is a dialect of ECMAScript , and is used primarily for the development of websites and software targeting the Adobe Flash Player platform, used on Web pages in the form of...
2.0.
The goal of the Gnash developers is to be as compatible as possible with the proprietary player (including behavior on bad ActionScript
ActionScript
ActionScript is an object-oriented language originally developed by Macromedia Inc. . It is a dialect of ECMAScript , and is used primarily for the development of websites and software targeting the Adobe Flash Player platform, used on Web pages in the form of...
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 FLVFLV
Flash Video is a container file format used to deliver video over the Internet using Adobe Flash Player versions 6–11. Flash Video content may also be embedded within SWF files. There are two different video file formats known as Flash Video: FLV and F4V. The audio and video data within FLV files...
videos and allows playing some FLV files from YouTube
YouTube
YouTube is a video-sharing website, created by three former PayPal employees in February 2005, on which users can upload, view and share videos....
, MySpace
MySpace
Myspace is a social networking service owned by Specific Media LLC and pop star Justin Timberlake. Myspace launched in August 2003 and is headquartered in Beverly Hills, California. In August 2011, Myspace had 33.1 million unique U.S. visitors....
, ShowMeDo
Showmedo
ShowMeDo is a video sharing website where users can upload, view and share Video tutorials.Most of the screencasts focus on themes related to computer programming languages and Open Source software, especially Python....
and other similar websites (older files with sound – newer files without playing sound). FLV support requires FFmpeg
FFmpeg
FFmpeg is a free software project that produces libraries and programs for handling multimedia data. The most notable parts of FFmpeg are libavcodec, an audio/video codec library used by several other projects, libavformat, an audio/video container mux and demux library, and the ffmpeg command line...
or GStreamer
GStreamer
GStreamer is a pipeline-based multimedia framework written in the C programming language with the type system based on GObject.GStreamer allows a programmer to create a variety of media-handling components, including simple audio playback, audio and video playback, recording, streaming and editing...
to be installed on the system.
Some other free-software programs, such as MPlayer
MPlayer
MPlayer is a free and open source media player. The program is available for all major operating systems, including Linux and other Unix-like systems, Microsoft Windows and Mac OS X. Versions for OS/2, Syllable, AmigaOS and MorphOS are also available. The Windows version works, with some minor...
, VLC media player
VLC media player
VLC media player is a free and open source media player and multimedia framework written by the VideoLAN project.VLC is a portable multimedia player, encoder, and streamer supporting many audio and video codecs and file formats as well as DVDs, VCDs, and various streaming protocols. It is able to...
or players for Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...
based on the ffdshow
Ffdshow
ffdshow is a media decoder and encoder mainly used for the fast and high-quality decoding of video in the MPEG-4 ASP and AVC formats, but it supports numerous other video and audio formats as well...
DirectShow
DirectShow
DirectShow , codename Quartz, is a multimedia framework and API produced by Microsoft for software developers to perform various operations with media files or streams. It is the replacement for Microsoft's earlier Video for Windows technology...
codecs can play back the FLV format if the file is specially downloaded or piped
Pipeline (software)
In software engineering, a pipeline consists of a chain of processing elements , arranged so that the output of each element is the input of the next. Usually some amount of buffering is provided between consecutive elements...
to it.
The version 0.8.8 was released on the 22 August 2010. Rob Savoye
Rob Savoye
Rob Savoye is the primary developer of Gnash. He is a developer for the GNU Project, having worked on Debian, Red Hat and dozens of other free/open source software projects. He was among the first employees of Cygnus Support, which was sold to Red Hat in 2001....
announced that Gnash should now work with 100% of all YouTube videos. Version 0.8.8 has GPU support, pushing it ahead of the proprietary Adobe Flash Player which lacks such support in Linux. 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. 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.comLulu.com
Lulu is a company offering publishing, printing, and distribution services with headquarters in Raleigh, North Carolina. Since their founding in 2002, Lulu has published over 1.1 million titles by creators in over 200 countries and territories and adds 20,000 new titles to their catalogue a month...
until July 2010.
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.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. 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.
Lightspark
LightsparkLightspark
Lightspark is a free and open source SWF player released under the terms of the GNU Lesser General Public License version 3. It supports OpenGL-based rendering and LLVM-based ActionScript execution. It supports most of ActionScript 3.0 and has a Mozilla-compatible plug-in. It uses OpenGL shaders ....
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).