Gnash — это медиаплеер для воспроизведения SWF- файлов. [2] Gnash доступен как отдельный проигрыватель для настольных компьютеров и встроенных устройств , а также как плагин для браузеров, все еще поддерживающих NPAPI . [3] Он является частью проекта GNU и представляет собой бесплатную альтернативу Adobe Flash Player с открытым исходным кодом . [4] Он был разработан на основе проекта gameswf . [5]
Gnash был впервые анонсирован в конце 2005 года [6] разработчиком программного обеспечения Джоном Гилмором . По состоянию на 2011 год [обновлять], разработчиком проекта является Роб Савой . Основной веб-сайт разработчика Gnash находится на сервере поддержки проекта GNU Savannah Free Software Foundation . [ 7]
Gnash поддерживает большинство функций SWF v7 и некоторые функции SWF v8 и v9, однако SWF v10 не поддерживается. [7]
Написание свободного программного обеспечения Flash-плеера уже некоторое время является приоритетом проекта GNU . [8] До запуска Gnash проект GNU просил людей помочь проекту GPLFlash. Большинство предыдущих разработчиков GPLFlash теперь перешли в проект Gnash, а существующая кодовая база GPLFlash будет переориентирована на поддержку встраиваемых систем. [9]
Основные условия распространения Gnash соответствуют условиям GNU GPL. Однако, поскольку Gnash был запущен с использованием кодовой базы проекта gameswf , которая находится в общественном достоянии , код, разработанный проектом Gnash, который может быть полезен в gameswf, находится в общественном достоянии. [10]
Adobe предоставляет только устаревшую версию (11.2) своего официального проигрывателя для Linux на IA-32 и предварительную версию AMD64 для разработчиков в двоичной форме. [11] [12] Однако Gnash может быть скомпилирован и запущен на многих архитектурах, включая x86 , ARM , MIPS и PowerPC . Он также поддерживает операционные системы на базе BSD . Существует ранний порт для RISC OS , которая никогда не имела поддержки Macromedia/Adobe Flash за пределами Flash 3, [13] а также ранний порт для BeOS , где поддержка Flash прекратилась в версии 4. [14] Также началась разработка порта для AmigaOS 4.1 . [15] Также существует порт для операционной системы Haiku . [16]
Gnash требует один из AGG , Cairo или OpenGL для рендеринга. В отличие от большинства проектов GNU, которые обычно пишутся на C , Gnash написан на языке программирования C++ из-за его наследия gameswf. [5]
Gnash может воспроизводить файлы SWF до версии 7 и 80% ActionScript 2.0. [17]
Цель разработчиков Gnash — быть максимально совместимым с фирменным проигрывателем (включая поведение при плохом коде ActionScript ). Однако Gnash предлагает некоторые специальные функции, недоступные в проигрывателе Adobe, такие как возможность расширения классов ActionScript через общие библиотеки: примеры расширений включают поддержку MySQL, доступ к файловой системе и многое другое. По соображениям безопасности механизм расширения должен быть скомпилирован явно и включен через файлы конфигурации.
Gnash поддерживает воспроизведение FLV- видео и позволяет воспроизводить некоторые FLV-файлы с YouTube , Myspace , ShowMeDo и других подобных сайтов (старые файлы со звуком – новые файлы без воспроизведения звука). Поддержка FLV требует установки FFmpeg или GStreamer в системе. [18]
Некоторые другие бесплатные программы, такие как MPlayer [19] , VLC media player [20] или проигрыватели для Windows на основе кодеков ffdshow DirectShow, могут воспроизводить формат FLV, если файл специально загружен или передан в него.
Версия 0.8.8 была выпущена 22 августа 2010 года. Роб Савой объявил, что Gnash теперь должен работать со всеми видео YouTube. [21] Версия 0.8.8 имеет поддержку GPU, что вывело ее вперед по сравнению с фирменным Adobe Flash Player в Linux, пока не вышел Flash 10.2 со встроенным аппаратным ускорением. [22] [23] Gnash по-прежнему страдает от высокой загрузки процессора. Пользователь может установить плагин Flashblock, включив поддержку Flash в каждом конкретном случае по мере необходимости. [24] Элементы управления видео YouTube и полноэкранный режим функционируют, хотя в версии 0.8.8 есть ошибка, из-за которой YouTube может отображать «Недопустимые параметры». Многие популярные игры Flash не работают с Gnash 0.8.8.
Cygnal — это совместимый с Flash Media Server аудио- и видеосервер проекта Gnash . [25] Он обрабатывает согласование обмена метаданными об авторских правах, а также потоковую передачу контента. Ему потребуется обрабатывать тысячи одновременных сетевых подключений и поддерживать работу на больших кластерах Linux. Он должен поддерживать обработку нескольких потоков с различным контентом, а также многоадресный поток с одним источником данных. [26]
Из-за патентных проблем, связанных с MP3, и того факта, что FLV и ON2 являются закрытыми форматами, одной из главных целей этого проекта является поддержка свободных кодов и свободных протоколов как основного способа выполнения задач. Существует дополнительная поддержка MP3, FLV и ON2 (VP6 и VP7) при воспроизведении существующего Flash-контента. Как кодеки FLV, так и VP6 и VP7 включены в ffmpeg . Пользователи могут использовать плагин ffmpeg для GStreamer 0.10, чтобы использовать эти фирменные кодеки. [26]
Gnash успешно работает на Microsoft Windows, Darwin (OS X), Irix, Solaris, BeOs, OS/2 и Haiku. Gnash также работает на следующих 64-битных системах : PowerPC , Itanium, UltraSparc и AMD64. [27]
Gnash был портирован на Windows, и плагин лучше всего работает с Firefox 1.0.4 или более поздней версией, и должен работать в любом браузере на базе Mozilla. [28] Однако в более новых браузерах плагин может работать нестабильно или не работать.
Более новые двоичные файлы Gnash для Windows не включают плагин, и в настоящее время нет более нового работающего плагина Gnash для Windows. [29]
Проект финансировался коммерческой компанией Lulu.com [30] до июля 2010 года. [31]
По состоянию на март 2012 года ведущий разработчик сообщил, что пожертвований едва хватило на оплату размещения проекта в Интернете. [32]
Одной из проблем проекта является сложность поиска разработчиков. Текущие разработчики никогда не устанавливали Adobe Flash Player, поскольку опасаются, что любой, кто когда-либо устанавливал Adobe Flash Player, в то же время принял соглашение не изменять и не проводить обратную разработку Adobe Flash Player. Таким образом, по состоянию на ноябрь 2010 года у проекта Gnash было всего около 6 активных разработчиков. [33] [34] [35]
Однако такие общие положения могут противоречить национальным антиконкурентным законам при использовании в обычных лицензионных соглашениях на программное обеспечение. 2 мая 2012 года Суд Европейского союза постановил в деле C-406/10 SAS Institute Inc против World Programming Ltd , что функциональность компьютерной программы не защищена авторским правом в Европейском союзе и что договорные положения являются недействительными, если они запрещают наблюдение, изучение и тестирование компьютерной программы с целью воспроизведения ее поведения во второй программе. Это действует до тех пор, пока не был скопирован исходный код или объектный код. [36]
Gnash способен читать файлы и коды операций вплоть до SWF v9, но в первую очередь поддерживает SWF v7, с улучшенной поддержкой SWF v8 и v9 в стадии интенсивной разработки. Начиная с версии 0.8.2, Gnash включает начальную поддержку парсера для SWF v8 и v9. Реализованы еще не все классы ActionScript 2, но все наиболее используемые. Многие классы ActionScript 2 реализованы частично; есть поддержка всех часто используемых методов каждого класса. Gnash реализовал около 80% ActionScript v2.0 и начал реализовывать ActionScript v3.0. Gnash поддерживает большинство кодов операций Flash до SWF v9 и широкий выбор классов ActionScript для SWF v8