Введение
Gnash – это медиаплеер для воспроизведения SWF-файлов. Gnash доступен как автономный проигрыватель для настольных компьютеров и встраиваемых устройств, так и в виде плагина для браузеров, поддерживающих NPAPI. Он является частью проекта GNU и представляет собой свободную и открытую альтернативу Adobe Flash Player. Разработка Gnash началась на основе проекта gameswf. Gnash был впервые представлен в конце 2005 года разработчиком программного обеспечения Джоном Гилмором. С 2011 года проект поддерживает Роб Савой. Основной веб-сайт разработчиков Gnash размещен на сервере поддержки проекта GNU Savannah Фонда свободного программного обеспечения. Gnash поддерживает большинство функций SWF v7, а также некоторые функции SWF v8 и v9, однако SWF v10 не поддерживается. До запуска Gnash проект GNU обращался с просьбой о помощи к проекту GPLFlash. Большинство разработчиков, ранее работавших над GPLFlash, перешли в проект Gnash, а существующая кодовая база GPLFlash будет переориентирована на поддержку встраиваемых систем. Основными условиями распространения Gnash являются условия лицензии GNU GPL. Однако, поскольку Gnash был создан с использованием кодовой базы проекта gameswf, находящейся в общественном достоянии, код, разработанный проектом Gnash и потенциально полезный для gameswf, размещается в общественном достоянии.
Gnash is a media player for playing SWF files. 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. 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. 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. Gnash supports most SWF v7 features and some SWF v8 and v9, however SWF v10 is not supported. 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.
Архитектура
Adobe предоставляет только устаревшую версию (11.2) своего официального проигрывателя для Linux на IA 32 и предварительную версию для разработчиков AMD64 исключительно в виде бинарного файла. Gnash, напротив, может быть скомпилирован и запущен на множестве архитектур, включая x86, ARM, MIPS и PowerPC. Он также поддерживает операционные системы на базе BSD. Существует ранняя версия для RISC OS, которая никогда не поддерживала Macromedia/Adobe Flash выше версии 3, а также ранняя версия для BeOS, где поддержка Flash была прекращена на версии 4. Ведётся разработка версии для AmigaOS 4.1. Также существует версия для операционной системы Haiku. Для отрисовки Gnash требует AGG, Cairo или OpenGL. В отличие от большинства проектов GNU, написанных обычно на C, Gnash написан на языке программирования C++ из-за его наследия от gameswf. Цель разработчиков Gnash – обеспечить максимальную совместимость с проприетарным проигрывателем (включая поведение при некорректном коде ActionScript). Однако Gnash предлагает некоторые уникальные функции, недоступные в Adobe Player, такие как возможность расширения классов ActionScript с помощью разделяемых библиотек: примеры расширений включают поддержку MySQL, доступ к файловой системе и многое другое. В целях безопасности механизм расширения должен быть явно скомпилирован и активирован через файлы конфигурации.
Поддержка видео
Gnash поддерживает воспроизведение FLV-видео и позволяет воспроизводить некоторые FLV-файлы с YouTube, Myspace, ShowMeDo и других подобных сайтов (старые файлы со звуком, новые – без звука). Для поддержки FLV требуется установка FFmpeg или GStreamer в системе. Некоторые другие программы свободного ПО, такие как MPlayer, VLC media player или проигрыватели для Windows, основанные на кодеках ffdshow DirectShow, могут воспроизводить формат FLV, если файл специально загружен или перенаправлен в них. Версия 0.8.8 была выпущена 22 августа 2010 года. Роб Савой объявил, что Gnash теперь должен работать со всеми видео на YouTube. Версия 0.8.8 имеет поддержку GPU, что позволило ей обойти проприетарный Adobe Flash Player в Linux, пока Flash 10.2 не получил встроенное аппаратное ускорение. Gnash по-прежнему характеризуется высоким потреблением ресурсов процессора. Пользователь может установить плагин Flashblock, чтобы включать поддержку Flash только при необходимости, для каждого конкретного случая. Управление видео YouTube и полноэкранный режим работают, хотя в версии 0.8.8 есть ошибка, из-за которой YouTube может отображать сообщение "Неверные параметры". Многие популярные Flash-игры не работают с Gnash 0.8.8.
Сигналь
Cygnal — это аудио- и видеосервер, совместимый с Flash Media Server, разработанный в рамках проекта Gnash. Он отвечает за согласование обмена метаданными об авторских правах, а также за потоковую передачу контента. Он должен обрабатывать десятки тысяч одновременных сетевых подключений и поддерживать работу на крупных кластерах Linux. Cygnal должен поддерживать обработку нескольких потоков с различным содержимым, а также многоадресную передачу с одним источником данных. В связи с патентными ограничениями, касающимися MP3, и тем фактом, что FLV и ON2 являются закрытыми форматами, одной из главных целей проекта является поддержка свободных кодеков и свободных протоколов как основного принципа работы. Предусмотрена опциональная поддержка MP3, FLV и ON2 (VP6 и VP7) для воспроизведения существующего Flash-контента. FLV, а также кодеки VP6 и VP7 входят в состав ffmpeg. Пользователи могут использовать плагин ffmpeg для GStreamer 0.10 для работы с этими проприетарными кодеками.
Microsoft Windows
Gnash был портирован на Windows, и плагин оптимально работает с Firefox 1.0.4 или более новой версии, а также должен работать в любом браузере, основанном на Mozilla. Однако в более новых браузерах плагин может стать нестабильным или перестать работать. Новые сборки Gnash для Windows не содержат плагин, и на данный момент нет рабочего плагина Gnash для Windows более новой версии.
Финансовая поддержка
Проект финансировался коммерческой компанией Lulu.com до июля 2010 года. По состоянию на март 2012 года ведущий разработчик сообщил, что пожертвований едва хватает для оплаты хостинга проекта.
Лицензионное соглашение для конечного пользователя Adobe Flash Player
Одна из проблем проекта — сложность поиска разработчиков. Действующие разработчики никогда не устанавливали Adobe Flash Player, поскольку опасаются, что любой, кто когда-либо устанавливал Adobe Flash Player, одновременно принимал соглашение о запрете на изменение или декомпиляцию Adobe Flash Player. Поэтому, по состоянию на ноябрь 2010 года, в проекте Gnash было всего около 6 активных разработчиков. Однако подобные общие условия могут противоречить национальным антимонопольным законам при использовании в стандартных лицензионных соглашениях на программное обеспечение. 2 мая 2012 года Суд Европейского Союза вынес решение по делу C 406/10 SAS Institute Inc. против World Programming Ltd, согласно которому функциональность компьютерной программы не охраняется авторским правом в Европейском Союзе, а договорные положения, запрещающие наблюдение, изучение и тестирование компьютерной программы для воспроизведения её поведения в другой программе, являются недействительными. Это при условии, что исходный или объектный код не был скопирован.