Gnash is a
media player for playing
Adobe Flash (SWF) files. Gnash is available both as a standalone player for desktop computers and
embedded device
An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or Electronics, electronic syst ...
s, as well as a
plugin for the
browsers still supporting
NPAPI. It is part of the
GNU Project
The GNU Project ( ) is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and Computer hardware, computing dev ...
and is a
free and open-source
Free and open-source software (FOSS) is software available under a Software license, license that grants users the right to use, modify, and distribute the software modified or not to everyone free of charge. FOSS is an inclusive umbrella term ...
alternative to
Adobe Flash Player
Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is a discontinuedExcept in China, where it continues to be used, as well as Harman for enterprise users. computer program for viewing multimedia ...
. It was developed from the
gameswf project.
Gnash was first announced in late 2005 by software developer
John Gilmore. , the project's maintainer is
Rob Savoye. The main developer's web site for Gnash is located on the
Free Software Foundation
The Free Software Foundation (FSF) is a 501(c)(3) non-profit organization founded by Richard Stallman on October 4, 1985. The organisation supports the free software movement, with the organization's preference for software being distributed ...
's
GNU Savannah
GNU Savannah is a project of the Free Software Foundation initiated by Loïc Dachary, which serves as a collaborative software development management system for free software projects. Savannah currently offers CVS, GNU arch, Subversion, Git, Me ...
project support server.
Gnash supports most SWF v7 features and some SWF v8 and v9, however SWF v10 is not supported.
History
Writing a free software Flash player has been a priority of the
GNU Project
The GNU Project ( ) is a free software, mass collaboration project announced by Richard Stallman on September 27, 1983. Its goal is to give computer users freedom and control in their use of their computers and Computer hardware, computing dev ...
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
The public domain (PD) consists of all the creative work to which no Exclusive exclusive intellectual property rights apply. Those rights may have expired, been forfeited, expressly Waiver, waived, or may be inapplicable. Because no one holds ...
, code developed by the Gnash project which might be useful in gameswf is placed in the public domain.
Technical details
Architecture
Adobe only provides an outdated version (11.2) of its official player for Linux on
IA-32
IA-32 (short for "Intel Architecture, 32-bit", commonly called ''i386'') is the 32-bit version of the x86 instruction set architecture, designed by Intel and first implemented in the i386, 80386 microprocessor in 1985. IA-32 is the first incarn ...
and an
AMD64
x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit extension of the x86 instruction set. It was announced in 1999 and first available in the AMD Opteron family in 2003. It introduces two new operating modes: 64-bit mode an ...
developer preview release in a binary-only form. Gnash, however, can be compiled and executed on many architectures, including
x86
x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel, based on the 8086 microprocessor and its 8-bit-external-bus variant, the 8088. Th ...
,
ARM,
MIPS, and
PowerPC
PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
. It also supports
BSD
The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
-based operating systems. An early port for
RISC OS
RISC OS () is an operating system designed to run on ARM architecture, ARM computers. Originally designed in 1987 by Acorn Computers of England, it was made for use in its new line of ARM-based Acorn Archimedes, Archimedes personal computers an ...
, which has never had Macromedia/Adobe Flash support beyond Flash 3, does exist, as well as an early port for
BeOS
BeOS is a discontinued operating system for personal computers that was developed by Be Inc. It was conceived for the company's BeBox personal computer which was released in 1995. BeOS was designed for multitasking, multithreading, and a graph ...
, where Flash support terminated at Version 4. Development of a port to
AmigaOS 4
AmigaOS 4 (abbreviated as OS4 or AOS4) is a line of Amiga operating systems which runs on PowerPC microprocessors. It is mainly based on AmigaOS 3.1 source code developed by Commodore International, Commodore, and partially on version 3.9 develop ...
.1 has also begun. A port to the
Haiku Operating System also exists.
Gnash requires one of
AGG
Agg or AGG may refer to:
As an acronym:
* Anti-Grain Geometry, computer graphics rendering library
* Aesthetic group gymnastics, gymnastics in a group
* Abnormal grain growth, materials science phenomenon
* Arctic Gateway Group, owner-operators of ...
,
Cairo
Cairo ( ; , ) is the Capital city, capital and largest city of Egypt and the Cairo Governorate, being home to more than 10 million people. It is also part of the List of urban agglomerations in Africa, largest urban agglomeration in Africa, L ...
, or
OpenGL
OpenGL (Open Graphics Library) is a Language-independent specification, cross-language, cross-platform application programming interface (API) for rendering 2D computer graphics, 2D and 3D computer graphics, 3D vector graphics. The API is typic ...
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.
Flash compatibility
Gnash can play
SWF files up to version 7, and 80% of
ActionScript
ActionScript is an object-oriented programming language originally developed by Macromedia Inc. (later acquired by Adobe). It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript (mean ...
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 is an object-oriented programming language originally developed by Macromedia Inc. (later acquired by Adobe). It is influenced by HyperTalk, the scripting language for HyperCard. It is now an implementation of ECMAScript (mean ...
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
YouTube is an American social media and online video sharing platform owned by Google. YouTube was founded on February 14, 2005, by Steve Chen, Chad Hurley, and Jawed Karim who were three former employees of PayPal. Headquartered in ...
,
Myspace
Myspace (formerly stylized as MySpace, currently myspace; and sometimes my␣, with an elongated Whitespace character#Substitute images, open box symbol) is a social networking service based in the United States. Launched on August 1, 2003, it w ...
,
ShowMeDo and other similar websites (older files with sound – newer files without playing sound). FLV support requires
FFmpeg
FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing vide ...
or
GStreamer
GStreamer is a Pipeline (computing), pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one f ...
to be installed on the system.
Some other free-software programs, such as
MPlayer
MPlayer is a free and open-source media player software application. It is available for Linux, OS X and Microsoft Windows. Versions for OS/2, Syllable Desktop, Syllable, AmigaOS, MorphOS and AROS Research Operating System are also available. A ...
,
VLC media player
VLC media player (previously the VideoLAN Client) is a free and open-source software, free and open-source, software portability, portable, cross-platform media player software and streaming media Server (computing), server developed by the Vide ...
or players for
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
based on the
ffdshow
ffdshow is an open-source unmaintained codec library that is mainly used for decoding of video in the MPEG-4 ASP (e.g. encoded with DivX or Xvid) and H.264/MPEG-4 AVC video formats, but it supports numerous other video and audio formats as well. ...
DirectShow
DirectShow (sometimes abbreviated as DS or DShow), 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 ea ...
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. 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. 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.
Cygnal
Cygnal is the Gnash Project's
Flash Media Server-compatible audio and
video server
{{refimprove, date=September 2014
A video server is a computer-based device that is dedicated to delivering video. Video servers are used in a number of applications, and often have additional functions and capabilities that address the needs of p ...
. 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.
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
FFmpeg is a free and open-source software project consisting of a suite of libraries and programs for handling video, audio, and other multimedia files and streams. At its core is the command-line ffmpeg tool itself, designed for processing vide ...
. Users can use the ffmpeg plugin for
GStreamer
GStreamer is a Pipeline (computing), pipeline-based multimedia framework that links together a wide variety of media processing systems to complete complex workflows. For instance, GStreamer can be used to build a system that reads files in one f ...
0.10 to use these proprietary codecs.
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
PowerPC (with the backronym Performance Optimization With Enhanced RISC – Performance Computing, sometimes abbreviated as PPC) is a reduced instruction set computer (RISC) instruction set architecture (ISA) created by the 1991 Apple Inc., App ...
, Itanium, UltraSparc and AMD64.
Microsoft Windows
Gnash has been ported to Windows and the plugin works best with
Firefox
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements curr ...
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.
Financial support
The project was financially supported by a commercial company,
Lulu.com until July 2010.
As of March 2012, the lead developer reported donations were barely enough to pay for hosting the project on the web.
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.
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
The Court of Justice of the European Union (CJEU) ( or "''CJUE''"; Latin: Curia) is the Judiciary, judicial branch of the European Union (EU). Seated in the Kirchberg, Luxembourg, Kirchberg quarter of Luxembourg City, Luxembourg, this EU ins ...
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
The European Union (EU) is a supranational union, supranational political union, political and economic union of Member state of the European Union, member states that are Geography of the European Union, located primarily in Europe. The u ...
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.
See also
*
Free Software
Free software, libre software, libreware sometimes known as freedom-respecting software is computer software distributed open-source license, under terms that allow users to run the software for any purpose as well as to study, change, distribut ...
*
IcedTea
*
Lightspark
*
Shumway (software)
*
Swfdec
*
Ruffle (software)
Ruffle is an emulator for Adobe Flash (SWF) animation files. Following the deprecation and discontinuation of Adobe Flash Player in January 2021, some websites adopted Ruffle to allow users for continual viewing and interaction with legacy Flas ...
Notes
References
External links
Primary Gnash website(Internet Archive copy)
*
Project's official wiki(archived)
*
Gnash at GNU Project*
Gnash's Savannah PageFSF/GNU Press Release: FSF announces GNU Gnash – Flash Movie PlayerAn interview with Gnash project leader about the future of the productGnash unofficial and unsupported Windows port
{{Widget toolkits
Free software programmed in C++
Interpreters (computing)
Free media players
GNU Project software
Adobe Flash
2005 software