ИД "Мой компьютер"   "Игроград"   "Реальность фантастики"   Ассамблея "Портал"
Сделать стартовой   

 
Домашняя страница
Расширенный поиск
E-mail

 

N 16 (447)




МОЙ КОМПЬЮТЕР




  Новости:

 
МК
Украина
Игры
Интернет
Железо
Софт
Пресс-релизы

  Статьи:

 
Уголок читателя
Прочее
Имеющий уши
Программирование
Интернет
Железо
Софт
Игры


 
КОНКУРСЫ



Правила конкурсов

Конкурс "АВЧ"

Рейтинг победителей


ОПРОС

Вы посещаете нас:
первый раз
1-2 раза в месяц
1-2 раза в неделю
1-2 раза в день
более 2-х раз в день Что привело Вас к нам?
поиск информации
интерес к статьям
интерес к новостям
любопытство
реклама
другое








боулинг

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua

ads.mycomputer.ua




ремонт компрессоров

Интернет-магазин мебели Украина
ноутбуки asus
летние шины



Argumentum ad ignorantiam!

 

статьи
Софт

ads.mycomputer.ua

 

На правах рекламы  
Прочее  
Свободная ВаRя  
Не windows  
Windows  
Графика  
Развлечения  
Интернет  
Утилиты  
Офис  




    Не windows


Мультимедия без Макромедии?

Сергей ЯРЕМЧУК
N 50 (429) 08.12.2006


Технологии интерактивной web-анимации, основанной на Flash, появившись, быстро завоевали популярность у дизайнеров. Разработка компании Macromedia объединила в себе множество различных решений в области мультимедийного представления информации. При сравнительно небольшом размере Flash позволяет использовать звуковые и графические эффекты, а также различные средства диннамизации сайтов. Наиболее популярным инструментом разработки является Macromedia Flash, но при всех его достоинствах у него есть один существенный недостаток — цена. Впрочем, на сегодняшний день в операционной системе Linux доступно множество инструментов, позволяющих работать с Flash и при этом не слишком отягощающих бюджет. Сегодня мы познакомимся с самым популярным из них.

В пакет SWFTools (www.swftools.org) входит несколько утилит, с помощью которых можно создавать и изменять готовые Flash-файлы. Доступны версии для нескольких операционных систем: Solaris, Linux, FreeBSD, OpenBSD, HP–UX, MacOS X и Windows 98/ME/2000/XP. Распространяется под лицензией GNU GPL.

Установка обычно происходит без проблем. Например, пользователи дистрибутива ALTLinux могут установить swftools из Сизифа, используя apt-get.

К сожалению, в репозитарии Ubuntu этого пакета нет. Поэтому возможны два варианта: взять пакеты с родственного Debian — www.mediasitomo.com/swft-dev/, либо же установить программу самому, используя исходные тексты.

Мы пойдем вторым, наиболее верным путем. Чтобы получить максимум возможностей, желательно первоначально установить следующие библиотеки:

freetype — www.freetype.org;

t1lib — ftp://sunsite.unc.edu/pub/linux/libs/graphics/;

jpeglib — www.ijg.org/files/jpegsrc.v6b.tar.gz;

avifile — avifile.sourceforge.net.

В дистрибутиве Kubuntu, которым я пользуюсь, эти библиотеки по умолчанию не устанавливаются. Самый простой способ узнать, есть ли у вас все это — распаковать архив с swftools, зайти внутрь каталога и дать команду на конфигурирование. В конце скрипт выдаст информацию о недостающих библиотеках:

Этот вывод показывает, что будут скомпилированы не все утилиты. Но это легко исправить, благо в репозитарии Kubuntu все эти библиотеки есть. Чтобы их установить, даем следующую команду.

И снова проведите конфигурацию swftools. После установки в системе появится 13 новых утилит. Познакомимся с ними.

Конвертеры форматов

Это наиболее многочисленная категория утилит, входящая в комплект swftools. При помощи любой из этих семи утилит можно преобразовать файлы определенных форматов в SWF (small web format). Рассмотрим их по порядку. Начнем, пожалуй, с преобразования графических файлов.

Например, получим SWF из PNG-файлов, находящихся в текущем каталоге; в результирующем файле каждый фрейм будет соответствовать одному исходному файлу.

В качестве дополнительных параметров можно использовать сжатие (--zlib), уменьшив размер результирующего файла до 10%, также можно определить размеры окна (-X и -Y), а при помощи –rate — количество кадров в секунду (цифра в диапазоне от 1 до 256). При этом цифры должны подбираться с учетом формулы 1/значение, т.е. чем меньше указанное число, тем больше будет выставлен интервал времени, либо размер кадра.

Аналогичные опции имеет утилита gif2swf, позволяющая проделать то же самое и с GIF-файлами.

Утилита для работы с JPEG-файлами jpeg2swf имеет еще две дополнительные опции: --mx — для использования Flash-MX-H.263 компрессию, и --quality, определяющую качество в диапазоне от 1 (хуже) до 100 (лучше). В остальном все так же.

Идем далее. Например, у нас есть PDF-документ, необходимо получить Flash-файл для представления в Интернет. Без проблем.

В итоге получится SWF-файл, при просмотре которого в web-браузере будут показаны периодически сменяющие друг друга страницы документа. Если не указать имя выходного файла, результат будет выведен в stdout, в случае использования swftools для генерирования графики на web-сервере может быть полезна опция -C или –cgi, генерирующая дополнительный http-заголовок.

В большинстве случаев весь документ не нужен, поэтому, использовав опцию --pages, можно указать необходимые страницы документа. Например, конвертируем только 1, 2 и страницы с 5 по 10:

А вот так можно получить SWF-файл из файла шрифтов:

Поддерживаются все распространенные форматы шрифтов: TTF, AFM, PFA, PFB и другие. К сожалению, невозможно указать кодировку, поэтому в результирующем файле локализованные шрифты выводятся неправильно ( рис. 1).

Рисунок 1.

Переходим к следующей утилите wav2swf; как понятно из названия, ее назначение — получение SWF из звукового файла в формате WAV. Для кодирования используется кодек LAME. В общем случае вызов утилиты прост:

В результате в текущем каталоге появится файл output.swf, при запуске которого будет воспроизводиться звук. При помощи дополнительных опций можно изменить битрейт (--bitrate), который по умолчанию составляет 32, частоту дискретизации (--samplerate), определить временные рамки повторяющегося фрагмента (--loop) и т.п.

И наконец, последний конвертер — avi2swf, позволяющий преобразовать AVI-файл в SWF, для кодирования будет использован кодек h.263.

Вызывается утилита аналогично предыдущим:

Теперь, чтобы уменьшить размер конечного файла, изменим коэффициент качества с 80 (это значение используется по умолчанию) до 40, а также размер — 40% от оригинального, при этом кодируем только первые 50 фреймов вместо всего файла.

Все просто. Но мы идем дальше.

Извлекаем информацию из Flash-файла.

Самой простой из утилит является swfstrings, назначение которой — извлечение текста из SWF-файла. Вызов предельно лаконичен:

В результате на экран будет выведен текст, содержащийся в файле; вероятно, вывод лучше всего перенаправить в другой файл:

Другая утилита — swfexstract — умеет куда больше: извлекать все объекты, содержащиеся в SWF-файле, клипы, отдельные фреймы, шрифты и звук. Если вызвать ее без параметров, пользователь получит список объектов, содержащихся в файле:

Обратите внимание на буквы в квадратных скобках, выводящиеся в начале каждой строки. Это опции, с помощью которых можно извлечь указанный объект. Например, нам нужен звук:

Как видите, все просто. Возможен вывод и в WAV-файл, но это условие необходимо обязательно оговаривать — опция -о. Теперь изображения, исключая пустые фреймы:

В результате в текущем каталоге появятся файлы вида pic17.png, pic23.png и т.п. А вот так можно извлечь отдельный видеофрейм:

Либо так:

Теперь следующая утилита — swfdump, назначение которой — вывод информации о SWF-файле. Для вывода всей служебной информации воспользуемся следующей командой:

Утилита swfdump имеет еще одну ценную опцию, позволяющую генерировать готовый HTML-код:

Кроме того, используя параметр --text утилиты swfdump, можно извлечь текстовые поля Flash-файла (в этом она подобна swfstrings):

Манипулирование данными

ВУ этой рубрике всего одна утилита — swfbbox, при помощи которой можно пересчитать параметры SWF-файла и в результате сделать его меньшим по размеру. Параметры файла можно получить, запустив утилиту без параметра:

Теперь попробуем оптимизировать его при помощи опции –О:

Хотя, признаться, мне редко удавалось оптимизировать файл больше, чем на 1%.

Результат оптимизации можно получить, использовав параметр –S:

Объединение Flash-файлов

Итак, с помощью утилит, о которых было рассказано выше, можно перекодировать файлы в SFW из разных форматов, оптимизировать, извлечь служебную информацию. Теперь осталось только объединить результат. Как раз для этого и предназначена утилита swfcombine, которая позволяет соединить два или более SWF-файла в один. Один из файлов обязательно должен быть определен как «master», остальные подключаются по мере необходимости как «slaves». Кроме того, с помощью swfcombine можно сжимать либо разжимать SWF-файлы, если же используется один файл, необходима опция –d (--dummy), подразумевающая, что slave-файл не требуется. Сжимаем:

Разжимаем:

Теперь соединяем два файла вместе. Например, у нас есть файл с изображениями, теперь наложим еще звук, и файл готов:

Если количество slave-файлов велико, то их можно объединить:

С помощью дополнительных опций можно определить масштабирование (--scale) результирующего файла, количество кадров в секунду (--rate).

И наконец, последняя утилита — swfc, при помощи которой можно скомпилировать SC-скрипт в готовый Flash-файл. Здесь все просто: берем подготовленный файл и вводим следующую команду (в подкаталоге doc лежит готовый пример скрипта):

* * *

Итак, инструменты, входящие в состав пакета SWFTools, позволяют выполнить большую часть операций по работе с файлами формата Flash. Большая часть опций унифицирована, а значит, пара-тройка экспериментов — и вы уже полностью освоите работу с любой из этих утилит.

Viva OpenSource!

ads.mycomputer.ua






Расширенный поиск 
 

О проекте  Рекламодателям  Карта сайта  Контакт  Обратная связь 

© ИД "Мой компьютер"®, 1998-2004