Gnash (software)
   HOME

TheInfoList



OR:

Gnash is a media player for playing SWF files. Gnash is available both as a standalone player for desktop computers and
embedded device An embedded system is a 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 electronic system. It is ''embedded'' as ...
s, as well as a plugin for the browsers still supporting
NPAPI Netscape Plugin Application Programming Interface (NPAPI) was an application programming interface (API) of the web browsers that allows plugins to be integrated. Initially developed for Netscape browsers, starting in 1995 with Netscape Navigato ...
. 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 computing devices by collaborat ...
and is a free and open-source alternative to
Adobe Flash Player Adobe Flash Player (known in Internet Explorer, Firefox, and Google Chrome as Shockwave Flash) is computer software for viewing multimedia contents, executing rich Internet applications, and streaming audio and video content created on the ...
. It was developed from the gameswf project. Gnash was first announced in late 2005 by software developer
John Gilmore John Gilmore may refer to: * John Gilmore (activist) (born 1955), co-founder of the Electronic Frontier Foundation and Cygnus Solutions * John Gilmore (musician) (1931–1995), American jazz saxophonist * John Gilmore (representative) (1780–1845 ...
. , the project's maintainer is
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 ...
. 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, to support the free software movement, with the organization's preference for software being distributed under copyleft (" ...
'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, ...
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 computing devices by collaborat ...
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 intellectual property rights apply. Those rights may have expired, been forfeited, expressly waived, or may be inapplicable. Because those rights have expired, ...
, 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 80386 microprocessor in 1985. IA-32 is the first incarnation o ...
and an
AMD64 x86-64 (also known as x64, x86_64, AMD64, and Intel 64) is a 64-bit version of the x86 instruction set, first released in 1999. It introduced two new modes of operation, 64-bit mode and compatibility mode, along with a new 4-level paging m ...
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 Intel 8086 microprocessor and its 8088 variant. The 8086 was intr ...
,
ARM In human anatomy, the arm refers to the upper limb in common usage, although academically the term specifically means the upper arm between the glenohumeral joint (shoulder joint) and the elbow joint. The distal part of the upper limb between th ...
, MIPS, and PowerPC. It also supports
BSD The Berkeley Software Distribution or Berkeley Standard Distribution (BSD) is a discontinued operating system based on Research Unix, developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berk ...
-based operating systems. An early port for
RISC OS RISC OS is a computer operating system originally designed by Acorn Computers Ltd in Cambridge, England. First released in 1987, it was designed to run on the ARM chipset, which Acorn had designed concurrently for use in its new line of Archi ...
, 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 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, and partially on version 3.9 developed by Haage & Partne ...
.1 has also recently 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 * Art Gallery of Guelph * AGG (programm ...
,
Cairo Cairo ( ; ar, القاهرة, al-Qāhirah, ) is the Capital city, capital of Egypt and its largest city, home to 10 million people. It is also part of the List of urban agglomerations in Africa, largest urban agglomeration in Africa, List of ...
, or OpenGL for rendering. In contrast to most GNU projects, which are typically written in C, Gnash is written in the
C++ C++ (pronounced "C plus plus") is a high-level general-purpose programming language created by Danish computer scientist Bjarne Stroustrup as an extension of the C programming language, or "C with Classes". The language has expanded significan ...
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 (meaning ...
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 (meaning ...
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 Flash Video is a container file format used to deliver digital video content (e.g., TV shows, movies, etc.) over the Internet using Adobe Flash Player version 6 and newer. Flash Video content may also be embedded within SWF files. There are t ...
videos and allows playing some FLV files from
YouTube YouTube is a global online video sharing and social media platform headquartered in San Bruno, California. It was launched on February 14, 2005, by Steve Chen, Chad Hurley, and Jawed Karim. It is owned by Google, and is the second mo ...
, Myspace, 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 of vid ...
or
GStreamer GStreamer is a 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 format, processes the ...
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, AmigaOS, MorphOS and AROS Research Operating System are also available. A port for DOS using ...
,
VLC media player VLC media player (previously the VideoLAN Client and commonly known as simply VLC) 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 desk ...
or players for
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for ser ...
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 ...
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 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 ...
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 Adobe Media Server (AMS) is a proprietary data and media server from Adobe Systems (originally a Macromedia product). This server works with the Flash Player and HTML5 runtime to create media driven, multiuser RIAs ( Rich Internet Applications ...
-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 On2 TrueMotion VP6 is a proprietary lossy video compression format and video codec. It is an incarnation of the TrueMotion video codec, a series of video codecs developed by On2 Technologies. This codec is commonly used by Adobe Flash, Flash Vi ...
&
VP7 On2 Technologies, formerly known as The Duck Corporation, was a small publicly traded company (on the American Stock Exchange), founded in New York City in 1992 and headquartered in Clifton Park, New York, that designed video codec technology. It ...
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 of vid ...
. Users can use the ffmpeg plugin for
GStreamer GStreamer is a 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 format, processes the ...
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, 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 current ...
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 Lulu Press, Inc., doing business under trade name Lulu, is an online print-on-demand, self-publishing, and distribution platform. By 2014, it had issued approximately two million titles. The company's founder is Red Hat co-founder Bob Young. Lu ...
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 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) (french: Cour de justice de l'Union européenne or "''CJUE''"; Latin: Curia) is the judicial branch of the European Union (EU). Seated in the Kirchberg quarter of Luxembourg City, Luxembour ...
ruled in case C-406/10 of
SAS Institute Inc v World Programming Ltd The SAS Institute, creators of the SAS System filed a lawsuit against World Programming Limited, creators of World Programming System (WPS) in November 2009. The dispute was whether World Programming had infringed copyrights on SAS Institute Pr ...
that the functionality of a computer program is not covered by copyright in the
European Union The European Union (EU) is a supranational political and economic union of member states that are located primarily in Europe. The union has a total area of and an estimated total population of about 447million. The EU has often been de ...
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 or libre software is computer software distributed under terms that allow users to run the software for any purpose as well as to study, change, and distribute it and any adapted versions. Free software is a matter of liberty, no ...
* Lightspark * Shumway (software) *
Swfdec Swfdec is an outdated free and open-source replacement for Adobe Flash Player. It runs on Linux and FreeBSD and is distributed under the terms of the GNU Lesser General Public License (LGPL). Its last release was 0.8.4, on and latest in stable 0 ...
*
Ruffle (software) Ruffle is an emulator for SWF files. Ruffle is freely licensed and developed openly on GitHub. Following the deprecation and disabling of Adobe Flash Player, some websites adopted Ruffle so users could continue to view and interact with legacy ...


Notes


References


External links


Primary Gnash website
(Internet Archive copy) *
Project's official wiki
(archived) *
Gnash at GNU Project
*
Gnash's Savannah Page

FSF/GNU Press Release: FSF announces GNU Gnash – Flash Movie Player

An interview with Gnash project leader about the future of the product

Gnash unofficial and unsupported Windows port
{{Widget toolkits Free software programmed in C++ Interpreters (computing) Free media players GNU Project software Adobe Flash High-priority free software projects 2005 software