Наши партнеры

UnixForum






Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

На главную -> MyLDP -> Тематический каталог -> Создание удобной рабочей среды в Linux

Gnash: заслужено ли такое название?

Англ. "gnash" - "скрежетать зубами"

Оригинал: Making Gnash: a well-deserved name?
Автор: Mitch Meyran
Дата: 2 июля 2007
Перевод А.Тарасова, дата перевода: 28 июля 2007

Gnash - это альтернатива Adobe Flash Player от Free Software Foundation. Версия 0.8 является третьим альфа-релизом, но уже сейчас выглядит впечатляюще. Также это один из первых проектов, выпущенных под лицензией GPLv3.

О программе Gnash

Немного истории

Gnash основана на GameSWF, реализации Macromedia/Adobe Flash версии 7, с некоторыми функциями из 8 и 9 версий. На данный момент это самая продвинутая из свободных реализаций Flash. Другой важной деталью является то, что программа действительно работает.

Недавно вышел GNASH 0.8. Официально - это третий альфа-релиз проигрывателя GNU Flash. Чем он примечателен:

  • поддержка x86-систем (как 32- так и 64-битных), PowerPC и других.
  • имеются расширения для Mozilla и Konqueror (они согласуются со спецификацией расширений Netscape, поэтому эти расширения должны работать и с другими совместимыми браузерами)
  • в этой версии появился встроенный отладчик, вы можете видеть его вывод, используя ключ -v при автономном запуске
  • OpenGL предпочитаем для отрисовки, имеется поддержка аппаратного ускорения
  • полная поддержка функций Flash от 1 до 7, и многое из Flash 8.5 (фактически Flash 9)

Обзор версии Gnash 0.8 (альфа 3)

Что нового было добавлено после версии Gnash 0.7.2 (альфа 2):
  • может быть скомпилирован с поддержкой ffmpeg+SDL
  • лучшая совместимость с методами Flash 8.5 (или Flash 9)
  • Cygnal: медиа-сервер, работающий с Flash-потоками
Что это значит? Говоря простым языком, пользователи PPC Debian могут смотреть YouTube, не используя виртуальную машину :-)

Кроме шуток, на сегодня Gnash - лучший проигрыватель Flash не от Adobe. Этот факт в паре с предварительным открытием Adobe Flash (Adobe уже сделали свободной виртуальную машину ActiveScript Virtual Machine 2.0, теперь она находится под покровительством Mozilla, и будет реализацией стандарта ECMAScript; финальная версия системы планируется в Firefox 4.0) явно пойдет на пользу технологии Flash, так как Microsoft серьезно нацелена на захват рынка векторной Web-графики с помощью своего Silverlight.


Рисунок 1. Просмотр Mozinor 007 в YouTube на 64-битном Firefox, мультфильм Sambakza Cake Dance на автономном проигрывателе, информация о версии в окне терминала. Gnash скомпилирован с поддержкой OpenGL и Gtk

Что требуется для установки

Достать исходники

Вы можете загрузить свежие исходники Gnash здесь, либо, если вам нужны самые последние изменения, извлечь их из CVS:
	# export CVS_RSH="ssh"
	# cvs -z3 -d:pserver:anonymous@cvs.sv.gnu.org:/sources/gnash
	# co gnash
В этом случае вам придется самому создавать ./configure. В этой статье это рассмотрено не будет.

Удовлетворить зависимости

Для сборки требуются следующие библиотеки и заголовочные файлы (может потребоваться больше, это лишь те, которых я недосчитался на своей машине при установке); для полной уверенности, запустите ./configure и посмотрите на вывод, отсутствующие или неправильные зависимости будут явно отображены.

Самые важные зависимости:

  • boost 1.32+ - существенно, так как Gnash основан на Boost
  • файлы разработки медиа-декодеров: ffmpeg + SDL 1.2 либо libMAD
  • файлы разработки отрисовщика: OpenGL, AGG (2.4+) или Cairo
Какой декодер использовать?
  • связка ffmpeg+SDL может декодировать как звук (mp3), так и видео (flv, On2) в Flash-ролике
  • libMAD декодирует лишь звук (в формате MP3 и других форматах), и поэтому легче
Какой отрисовщик использовать?
  • OpenGL - отрисовщик по умолчанию, включена поддержка аппаратного ускорения (при этом процессор мало нагружается) - требует SDL
  • AGG сугубо программный, но более правильный (идеален для авторинга и тестов, но больше грузит процессор) - может использовать SDL или FLTK
  • Cairo может быть как программным, так и аппаратным. Однако его поддержка еще слаба. Полезно при интеграции Gnash в Cairo-приложения
Что насчет графической оболочки?
  • Gtk - если вы используете Cairo, это лучший выбор.
  • GtkGlExt - если вы хотите использовать OpenGL с Gtk. Если вы собираете Gnash с поддержкой AGG или Cairo, это не нужно.
  • SDL - рекомендуется для лучшей поддержки звука (хотя не является лучшим выбором)
  • FLTK - Fast Light ToolKit для отрисовщиков Cairo и AGG
  • KDE - может быть использован вместо Gtk, требуется для расширения Konqueror
Другие зависимости (полный список):
  • libxml wxGtkwidgets
  • atk
  • JPEG
  • Glib
  • curl
  • pango
  • libcurl
  • dejagnu (для отладки)
  • Ming (для набора тестов)
  • MTASC (для набора тестов)
  • swfmill (для набора тестов)
В моей работе мне нужен как автономный проигрыватель, так и расширение для Firefox с поддержкой видео, но без отладчика, поэтому я делал сборку со следующими параметрами:
	# ./configure --disable-debugger --enable-media=ffmpeg
Из-за того, что моя система Mandriva 64-битная, при компиляции появилась ошибка, касающаяся двойной установки 32/64-битной OpenGL. Поэтому сначала я попробовал указать скрипту на /usr/lib64:
	--with-opengl-lib=/usr/lib64
но безуспешно. Затем я попробовал
	LDFLAGS="-L/usr/lib64"
что явно указывает линковщику ld искать библиотеки в /usr/lib. Это тоже не сработало.

Поэтому я переместил эти мешающиеся файлы и перезапустил скрипт, он продолжился с того места, где произошла ошибка.

После завершения конфигурирования следующий шаг - сборка Gnash. Просто командуем make. Сборка занимает некоторое время и зависит от мощности компьютера. Если вы хотите также собрать тестовый набор, командуйте make test. Рекомендуется включить отладчик. После завершения компиляции введите make install от имени root.

Скорее всего установка поместит расширение для Firefox в неверное место (например, каталог Firefox пользователя root); возможно, вам потребуется переместить его в другое место, чтобы все пользователи системы могли использовать это расширение. Лично я поместил его в /usr/lib64/mozilla/plugins.

Заключение

Радуйтесь, владельцы AMD64 и PPC! Если от перехода на GNU/Linux вас удерживала необходимость ежедневного просмотра YouTube, теперь препятствия нет.

Ссылки

  • Сайт разработчиков GNASH
  • GNASH на GNU Savannah
  • GNASH в проекте GNU