Логотип    
Логотип
 

Скачайте наши обои!


Rambler's Top100
Статьи, уроки  

Flash и видео: импорт, экспорт и работа с SWF, FLV, MOV (QuickTime), AVI, MPEG

Андрей Жебраков

Оглавление

  1. Сравнительные характеристики SWF, FLV, MOV видео
  2. Импортирование видео в SWF. Sorensor Spark codec
    1. SWF - MX, особенности
    2. SWF - 2004 pro, особенности
  3. FLV
    1. Экспорт в FLV из QuickTime & Adobe After Effects
    2. Использование FLV файлов в Macromedia Flash MX 2004 pro, Action script.
  4. Проигрывание внешних MOV файлов (QuickTime)
  5. Проигрывание внешних AVI в браузере
  6. Экспорт видео из Flash. Рекомендации
    1. Беглый взгляд на Swf2Video, Magic Swf2Avi, Swf2Avi, Camtasia


Сравнительные характеристики SWF, FLV, MOV видео

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

Итак, вам понадобилось вставить во флэш видео ролик.

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

1. импортировать Avi, Mpg, Mpeg, Mov и получить внутренний видео - ролик (сжатие Sorensor Spark codec'ом)
Этот метод позволит импортировать видео, от которого не требуется высокое кач
ество изображения, как пример - обычная реклама, видео с VHS, mini-DV, и прочее.
Видео - SWF проигрываются при полной загрузке файла.
Частота смены кадров будет такой же, как и у флэш ролика, в который его импортируют (или из которого загружают SWF)
Такой метод использует сравнительно неэкономную компрессию, и из-за этого файлы становятся очень большими. Кроме того, при параметре quality = 100% качество получаемого видео сравнимо с Jpeg'ом самого сильного сжатия.
Очень плохо передаются градиентные изображения, особенно когда градиент идет между близкими цветами.
Получаемое видео отображается в timeline как обычный графический символ, и с ним очень легко работать (любая "перемотка" видео осуществляется командами вроде GotoAnd...). Такое видео можно записывать в отдельные SWF файлы и подгружать их (loadMovie("имя файла.swf","имя Movie clipa в который грузим")) по мере необходимости.


2. импортировать или программно загружать Flv файл (только во Flash Mx 2004)
Можно получать видео с идеальным качеством - пригодным для Hi-tech видео, и любого другого, где важна чистота цветов и используются градиенты.
В добавок, данное видео можно делать практически неограниченной длинны.
Видео записывается в файл FLV, который можно подгружать из флэш - роликов и проигрывать его.
При этом частоту смены кадров можно задавать отличную от частоты кадров в вызывающем флэш - ролике.

3. проигрывать внешние Mov файлы QuickTime
При этом ваш проект придется экспортировать не в SWF или EXE, а в файл MOV (!) формата, который будет подгружать внешние MOVы.
Разумеется, у вас, и на тех машинах, где будет проигрываться этот проект, должен стоять QuickTime.
Существующие на момент написания этой статьи версии QuickTime поддерживают не все версии и возможности Flash, поэтому от многих преимуществ флэша при экспорте придется отказаться.
QuickTime дает большой выбор внутренних кодеков и других возможностей.
Видео будет проигрывается со своим fps

4. совсем большие ролики можно открывать как "Avi в браузере"
Позволяет сжимать "своим" кодеком. Такие кодеки, как DivX или MS Mpeg - 4 зачастую дают лучшее сочетание качество\размер файла.
Это позволяет проигрывать очень длинное видео без "рывков".
Но для этого метода нужно, чтобы на компьютере, где будет проигрываться проект, стояли:
• Браузер (к примеру, Internet Explorer)
• Медиа Плеер (к примеру Windows Media Player)
• Кодек, которым сжат Avi файл
При отсутствии любого из этих компонентов просмотр видео через наш проект будет невозможен.
 
5. старый добрый метод последовательности Jpeg'ов рассматривать не будем =), + наверняка есть еще методы, с которыми я не встречался ...

 

Импортирование видео в SWF. Sorensor Spark codec.

Забегая вперед ... После импорта видео во флэш, его можно записывать в отдельные SWF - файлы и подгружать в конечном проекте по мере необходимости. Проигрываться они будут лишь когда загрузятся целиком. Чтобы загрузить такой файл, нужно создать в сцене Movie clip с размерами SWF файла, который будем в него грузить, и дать ему <Instance name> = любое, к примеру, "my_video". Затем с помощью команды loadMovie("имя файла.swf","my_video") мы загрузим этот файл.


Процесс импорта во Flash MX.

При выборе видео файла на импорт, Flash MX выведет окно с настройками Sorensor Spark codec:


Quality - качество (сжатия изображения) видео.
Прежде всего этот параметр влияет на качество видео с одной стороны и на получаемый размер с другой стороны. Также можно отметить, что чем выше качество, тем медленнее будет проигрываться видео.


Сравнение уровней сжатия (0-100):

исходник (avi без сжатия)

quality = 100

quality = 90

quality = 30


В случае видео ролика, который мне подвернулся (а он как раз имеет градиенты, критичные для этого вида сжатия) , размеры файлов менялись следующим образом:
quality = 30 : 0,8 МБ (в 4,6 раз меньше, чем 90%)
quality = 90 : 3,7 МБ (в 4,2 раза меньше, чем 100%)
quality = 100 : 15.6 МБ


При том, что видимая разница между 90% сжатия и 100% не так сильна, размеры файлов меняются радикально, поэтому, на мой взгляд, для большинства видео предпочтительно 90% сжатие (хотя опять же, это сильно зависит от того, что это собственно за видео: с быстрыми движениями или медленно - перетекающими, хорошее изначальное качество или плохое, и т.д …). Местами можно меньше, но больше просто нелогично - если нужно идеальное качество (которое 100% качество сжатия все равно не даст) лучше использовать FLV файл.

Keyframe interval - интервал между ключевыми кадрами. За ключевые кадры Sorenson Spark codec принимает кадры, содержащие цельную картинку. Они сжимаются "пространственным" сжатием, т.е. примерно как jpeg. Между ключевыми кадрами находятся промежуточные кадры, они содержат только информацию о том, чем этот кадр отличается от предыдущего - это называется "времненнЫм" методом сжатия. Из этого можно сделать вывод, что для статичного \ медленного видео с повторяющимися кадрами (к примеру, в момент показа какой-нибудь диаграммы) увеличение значения Keyframe interval приведет к уменьшению объема файла без потери качества.
Если вы все же не знаете, какое значение выбрать, просто не меняйте этот параметр или поставьте его равным частоте кадров вашего видео, а еще лучше - поэкспериментировать с тем видео, которое собираетесь сжимать.

При включенной галочке "Synchronize video to Macromedia Flash document frame rate" (синхронизировать видео с флэшем) флэш адаптирует frame rate видео так, чтобы он проигрывался столько же времени, как и исходный видео. Т.е. если frame rate флэша меньше frame rate видеоролика, флэш пропускает часть кадров так, чтобы при проигрывании на текущем frame rate ролик играл столько же секунд, как и при проигрывании на frame rate видеоролика
Если frame rate флэша больше frame rate видео ролика, флэш повторяет кадры и при проигрывании на текущем frame rate ролик играет столько же секунд, как и при проигрывании на frame rate видеоролика

При отключенной галочке "Synchronize video to Macromedia Flash document frame rate" мы можем задавать свое значение кол-ва кадров видео на кадр флэш сцены.
В поле "Number of video frames to encode per number of Macromedia Flash frames" можно выбрать желаемое соотношение. К примеру, значение 1:8 значит, что каждый 8 кадр ролика будет повторяться 7 раз (вместо 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24 будет 1.1.1.1.1.1.1.8.8.8.8.8.8.8.8.16.16.16.16.16.16.16.16.24), при этом кол-во кадров будет такое же, как при синхронизированном видео. За счет уменьшения числа кадров весит такое видео намного меньше

Разрешение видео ролика по горизонтали должно быть кратно 4, иначе ваше видео исказится примерно так:

 

Процесс импорта во Flash MX 2004 Pro. Импорт Sorensor Spark codec'ом.

Первое диалоговое окно будет выглядеть примерно так:

(картинка 1)

Программа предлагает импортировать видео или редактировать его. Стоит заметить, что файлы mpg и Avi (к примеру, сжатые DV кодеком) флэш позволяет редактировать, а несжатые Avi файлы - можно только импортировать без редактирования. Если выберем редактировать ->

(картинка 2 )

Здесь можно вырезать и склеить отдельные видео клипы из исходного видео. Поскольку элементы этого окна интуитивно понятны, пойдем дальше ...

(картинка 3 )

Сейчас можно пойти в настройки сжатия видео (Compression profile -> edit...), а можно зайти в дополнительные настройки (Advanced settings -> edit...) идем в Advanced settings ...

(картинка 4 )

В разделе Color - стандартные настройки цвета / гаммы (сдвиг цвета, насыщенность, гамма, яркость, контраст). В разделе Dimensions можно уменьшить видео (не продолжительность, а размер картинки), или вырезать определенный участок (опять же, участок картинки).

А вот Track options рассмотрим более подробнее:

Import

  • Current Timeline - видео будет расположено на текущем слое как embedded video объект,
  • Movie clip / Graphic Symbol - видео сразу вставлено в мувиклип / графический символ соответственно.

Audio track

  • Separate - будет отдельно видео объект и отдельно звуковой
  • Integrated - звук и видео в одном видео объекте
  • None - звука нет

после нажатия клавиши "Next" попадем снова на картинку 3 и там выберем Compression profile -> Edit...

(картинка 5 )

Настройки сжатия. Теперь можно выбрать - определять степень сжатия параметром "качество", либо предполагаемой скоростью интернета у пользователей (это чтобы оно у них шло без задержек). Выбирать уровень сжатия стало удобнее - измения этих параметров сразу же отображаются в окошке просмотра видео.

Bandwidth - сжатие, определяемое количеством Кбит за секунду (0-750 Кбит\сек). Изменение этого параметра большой разницы в качестве видео не даст - при наименьшем (0) и наивысшем (750) значения качество сжатия было в среднем как при quality=0 

Quality - качество (сжатия изображения) видео. Чтобы не повторяться, Более подробно про эти параметры смотри в описании импорта под flash mx (чуть выше)

Quick compress делает видео быстрее, зато размем файлов становится примерно чуть больше (в моем случае > на 6%)

После того, как определитесь с этими настройками, жмем "Next" несколько раз и получаем видео (если ресурсов вашей машины хватит на то, чтобы его сделать, а вероятность того, что клип будет ипортирован, у MX 6 больше). Если делать импорт через Flash MX 6 и Flash MX 2004 pro, то при равных значения quality качество у MX 2004 pro выглядит лучше, особенно это заметно на quality=100, кроме того у MX 6 размер тестируемого файла был на 16 % больше, ОДНАКО при проигрывании файлы MX 2004 pro ЗАМЕТНО притормаживали.

 

FLV (начиная с Flash MX 2004)

Создается такое видео несколькими способами:

  • создание из Flash MX 2004 pro
  • создание из QuickTime, внешних видео - редакторов

Чтобы создать FLV файл посредством Macromedia Flash MX 2004 pro нужно вначале импортировать видео файл в сцену (Sorensor Spark codec'ом), затем выбрать в библиотеке Embedded Video объект, нажать правую кнопку мышки, выбрать Properties, в появившемся окне нажать кнопку "Export" и все ... вы получите FLV файл. Но(!) фактически это будет очень нерациональный перевод, как обычное видео в SWF файле - Поэтому больше ни слова об этом методе ...

А вот при экспорте в истинный FLV видео файл появляется возможность настраивать степень сжатия, качество сжатия, количество проходов и многое другое. Так можно получить видео идеального качества. Примером такого экспорта служат программы QuickTime, Adobe After Effects и т.д. (в хелпе Flash'a приведен список программ: Anystream Agility (Windows), Apple FinalCut Pro (Macintosh), Apple QuickTime Pro (Macintosh), Avid Xpress DV (Windows and Macintosh), Discreet Cleaner (Windows and Macintosh), Discreet Cleaner XL (Windows and Macintosh))

Однако экспортировать из внешних программ вы сможете, только если у вас : Flash "2004 Professional", стоит плагин "flv export" и QuickTime не ниже 6.

 

Экспорт в FLV из QuickTime & Adobe After Effects

Видимо, этот способ также подходит для любого другого видео редактора, позволяющего экспортировать FLV файлы. Разница лишь в том, где расположена кнопка "Export" =). Сами настройки FLV экспорта везде одинаковы (правда некоторые параметры в отдельных программах менять нельзя).

QuickTime: File -> Export ... в поле Export выбираем "Movie to Macromedia Flash Video (FLV)" и жмем "Options..."

Adobe After Effects: File - > Export -> Macromedia Flash Video (FLV) ... ("забавно", что в Composition -> Make Movie ..., т.е. в нормальном режиме экспорта, FLV файла среди доступных для рендера нет ... ) появляется окно:

Раздел Video.

Encoding Method (метод сжатия):
  • Baseline (1 Pass) - Сжатие одним проходом. Происходит сжатие кадра с учетом максимально отведенных битрэйт в секунду (устанавливается в поле Limit data rate to) , т.е. каждый кадр будет подогнан под текущий битрэйт, даже если для него нужен больший или меньший битрейт.
  • Better (1 Pass VBR) - Сжатие одним проходом, но с переменным битрэйтом. Происходит сжатие кадра с учетом максимально отведенных битрэйт в секунду (устанавливается в поле Limit data rate to) , однако, если кадр уложится в меньший битрэйт, то будет так. Таким образом, при одинаковом качестве видео, файл с сжатием Better будет меньшего размера, чем при сжатии Baseline.
  • Best (2 Pass) - Сжатие - в два прохода. Можно предположить, что при первом проходе происходит оценка битрэйтов в каждом кадре, потом идет равномерное распределение избыточных битрейт с простых кадров на нуждающиеся, более сложные, и уже во втором проходе сжимаются кадры.
  • Screen Recording Codec - Сжатие без потери качества. Берется кадр, следующий после ключевого, отслеживается изменившаяся часть видео и накладывается на ключевой кадр. Метод ориентирован на видео 100% идеального качества и видео - инструкций, где мало движения, и лишь курсор мышки бегает по экрану (цитата из хелпа).

Frames per second (Кадров в секунду):

  • Same as source - как в исходном видео
  • 6, 7, 7.5, 12, 12.5, 15, 23.98, 24, 25, 29.97, 30 - число кадров на выбор + можно вписать любое другое

Quality (Качество):

  • High - высокое
  • Medium - среднее
  • Low - низкое
  • Custom - другое, определяемое кол-вом Кбит или Кбайт в секунду - прописывается в поле Limit data rate to.

Limit data rate to: Максимальное кол-во килобайт или килобит (на выбор) отдаваемое на поток видео в секунду (качество звука определяется отдельным параметром). На всякий случай напомню: 1 байт (byte) = 8 бит (bit), 1kbytes=1000bytes

Keyframes (Ключевые кадры):

  • Auto - Установка порядка ключевых кадров автоматически
  • Custom - Устанавливать порядок ключевые кадров "вручную". Порядок определяется полем Keyframe every (каждый N кадр - ключевой)

Keyframe every: каждый N кадр - ключевой

Motion Estimation (оценка воспроизведения):

  • Faster - Худшее качество и быстрое кодирование
  • Better - Лучшее качество, но более длительное кодирование

При методе сжатия Baseline, Motion Estimation = faster, Limit data rate to = 1000 kbytes качество видео близко к идеальному. Незабывайте, что, чем больше "Limit data rate to", тем лучше качество видео и больше размер FLV файла. Чем лучше алгоритм сжатия, тем лучше качество, но медленее кодируется и воспроизводится. Причем на тестируемых мною компьютерах с процессором AMD (1200 XP) файлы FLV хорошего качества (1000 kbytes/s и размером 720х576 пикселей) воспроизводились очень медленно.

Раздел Audio.

Bitrate (битрэйт - кол-во битов в секунду, определяет степень сжатия - влияет на размер файла):

  • 8, 32, 64, 96, 128, 160, 192 - Качество сжатия. Первые три - моно, остальные - стерео

Раздел Other (Другое).

Resize to (изменить размер, масштаб):

  • None - без изменений
  • 128x96, 160x120, 176x144, 320x240, 352x288 - предлагаемые размеры в пикселях (X на Y)
  • Custom - другой размер, при этом его нужно ввести в полях Width (ширина) и Height (высота)

Width - Ширина. Первое поле - в точках, второе - в процентах.

Height - Высота. Первое поле - в точках, второе - в процентах.

Lock Aspect Ratio - соблюдать пропорции. При активации этого параметра пропорции X относительно Y будут всегда постоянны (при изменении одного из них второй подгонится автоматически)

Deinterlacing (убирает эффект "черезстрочности"): имеет смысл активировать только если ваше видео оцифровано с кассет VHS, miniDV, или на нем ясно видна "черезстрочность", иначе эффект лишь испортит качество.

  • None - без deinterlace
  • Upper - для видео формата PAL
  • Lower - для видео формата NTSC

[ Bitrate (раздел Audio)/8 + Limit data rate to (заданное в байтах,раздел Video) ] *секунды = примерный размер FLV файла в байтах

 

Использование FLV файлов в Macromedia Flash MX 2004 pro, Action script.

Файлы FLV можно импортировать и вставлять в сцену сразу (работая с ним как с обычным Embedded Video), а можно подгружать динамически, используя Action Script. Первый способ дает больше гарантий, что видео не будет тормозить при проигрывании (это особенно полезно, когда приходится воспроизводить подряд кадры из разных видео потоков, а торможений даже в теории быть не должно), однако очень долгие (большие) видео файлы флэш просто не сможет импортнуть внутрь себя. Также второй способ удобен, когда видео периодически обновляется независимо от swf файла, или будет долго загружаться с какого - нибудь сервера в интернете, и при прочих обстоятельствах.

Импортировать FLV видео в сцену можно двумя способами:

  • Просто заходим File -> import (ctrl+r), выбираем FLV файл
  • Через Видео - объект: Откройте библиотеку (ctrl+ L), нажмите на кнопку опций (квадратик справа от заголовка библиотеки, см. картинку 6) и в появившемся меню выберите "New Video". В библиотеке появится новый видео - объект (Embedded Video 1). Нажмите на нем правую кнопку мышки и выберите "Properties...", нажмите кнопку "Import", выберите ваш FLV файл. Когда будет нужно, перетащите его в сцену и установите размеры соответственно размерами видео, которое назначили на этот объект.

Программное управление FLV видео:

Для программного проигрывания FLV видео нужно создать видео - объект. Для этого откройте библиотеку (ctrl+ L), нажмите на кнопку опций (квадратик справа от заголовка библиотеки, см. картинку 6) и в появившемся меню выберите "New Video". В библиотеке появится новый видео - объект. Перетащите его в сцену, фактически, появившийся прямоуголник прядставляет собой окно, через которое будет играть видео. Установите его размеры соответственно размерами видео, которое собираетесь проигрывать через этот объект. Введите ему <Instance name>. В нашем примере <Instance name> будет "my_video" (без кавычек)

(Оговорюсь, что никакой дополнительной информации по программному управлению FLV файлов мне нигде найти не удалось, поэтому оперировать будем тем, что было в хелпе. Соответственно, примеры тоже взяты оттуда же (+ немного изменены))

Итак, у нас есть видео объект с названием "my_video" (без кавычек) и теперь в кадре или при нажатии мышки пишем следующий скрипт:

// Создаем объект NetConnection:
var netConn:NetConnection = new NetConnection();
// Активируем соединение, которое позволит проигрывать FLV файлы с HTTP и локальных адресов:
netConn.connect(null);
// Создаем объект NetStream (ради него мы создали объект NetConnection и открыли соединение):
var netStreamX:NetStream = new NetStream(netConn);
// Привязываем объект NetStream к нашему видео объекту:
my_video.attachVideo(netStreamX);
// Устанавливаем вместимость буфера - сколько секунд видео загрузится до того, как оно запустится на экране:
netStreamX.setBufferTime(5);
// Загружаем и проигрываем внешний FLV файл:
netStreamX.play("имя_файла.flv");

все...

также (по желанию) можно добавить статус - репорт (к примеру, для отладки) о состоянии объекта NetStream, для этого нужно либо создать текстовое поле, либо в окне Components выбрать UI Components, и там компонент "TextArea". Затем перетаскиваем его в сцену и присваиваем <Instance name> = "status" (без кавычек). А к описанному выше листингу добавляем:

// Привязываем обработчик на событие "onStatus" объекта netStreamX:
netStreamX.onStatus = function(infoObject)
{
status.text += "Status (NetStream)" + newline;
status.text += "Level: "+infoObject.level + newline;
status.text += "Code: "+infoObject.code + newline;
};

он будет выводит информацию о состоянии объекта netStreamX.

Функции управления видео (класс NetStream):

  • NetStream.play("имя_файла") - проигрывает внешние видео файлы (форматы http:// и file:// )
  • NetStream.close() - останавливает всю информацию с потока, ставит NetStream.time =0, делает файл доступным для другого использования. Если файл качался с http, то стирает локальную копию.
  • NetStream.pause() - ставит/снимает паузу. При использовании NetStream.pause(false) - снимает с паузы, NetStream.pause(true) - ставит на паузу.
  • NetStream.seek(сколько секунд) - "перемотка" видео на нужную позицию в секундах от начала. Если нужно указать от текущей позиции, используй NetStream.seek(NetStream.time+ кол-во секунд)
  • NetStream.setBufferTime(сколько секунд) - устанавливает вместимость буфера - сколько секунд видео загрузится до того, как оно запустится на экране
  • NetStream.bufferLength - [только чтение] - кол-во загруженных секунд видео в буфер
  • NetStream.bufferTime - [только чтение] - показывает вместимость буфера (которую можно менять командой NetStream.setBufferTime(кол-во секунд)). По умолчанию = 0.1 секунды
  • NetStream.bytesLoaded - [только чтение] - сколько байт видео уже загружено
  • NetStream.bytesTotal - [только чтение] - сколько всего байт в загружаемом видео
  • NetStream.currentFps - [только чтение] - с какой частотой (сколько кадров в секунду) воспроизводится видео
  • NetStream.time - [только чтение] - текущая позиция видео, в секундах
  • NetStream.onStatus - событие, несущее информацию о состоянии объекта NetStream и возникающее при изменении статуса объекта NetStream. Информация передает параметр "code" - строка, описывающая причину события и "level" - может быть строкой: "Status" или "Error". Пример использования:
    • NetStream.onStatus = function(infoObject)
      {
      status.text += "Status (NetStream)" + newline;
      status.text += "Level: "+infoObject.level + newline;
      status.text += "Code: "+infoObject.code + newline;
      };
  • Варианты событий:
    • code = NetStream.Buffer.Empty, level = Status - дата загружается недостаточно быстро, чтобы заполнить буфер. Когда произойдет заполениние буфера и придет статус NetStream.Buffer.Full, проигрывание будет продолжено.
    • code = NetStream.Buffer.Full, level = Status - буфер полон, поток запущен
    • code = NetStream.Play.Start = Status - проигрывание началось
    • code = NetStream.Play.Stop = Status - проигрывание остановлено
    • code = NetStream.Play.StreamNotFound = Error - неудача. Пропускаем play() (Возможно, поток уже занят)


Проигрывание внешних MOV файлов (QuickTime)

Суть метода заключается в том, что внешние Mov файлы прилинковываются (а не импортитуются внутрь) к вашему проекту. Таким образом, при использовании большого количества видео размер самого проекта, запускающего внешние файлы не становится огромным. Сразу предупреждаю, что:

  • При этом ваш проект придется экспортировать не в SWF или EXE, а в файл MOV (!) формата, который будет подгружать внешние MOVы.
  • Разумеется, у вас, и на тех машинах, где будет проигрываться этот проект, должен стоять QuickTime.
  • Существующие на момент написания этой статьи версии QuickTime поддерживают не все версии и возможности Flash, по этому от многих преимуществ флэша при экспорте придется отказаться.
  • QuickTime дает большой выбор внутренних кодеков и других возможностей
  • Видео будет проигрывается со своим fps

Для прилинковывания Mov файла нужно сделать File - > Import (to stage ... или to library ...), выбрать вожделенный Mov файл и нажать "Open". Далее программа спросит вас, Embed video in Macromedia Flash Document (импортировать его внутрь с переводом в Sorensor Spark codec) или Link to external video file (поставить ссылку к внешнему видео файлу). Выбираем второй вариант ("Link to external video file"). Просмотреть ваш проект в действии теперь можно только после Publish, а проиграть видео на таймайн с момощью Control -> Play (Control - Test Movie не подходит)

Теперь перейдем к завершающей части, т.е. экспорту проекта в MOV: зайдите в File -> Publish Settings ..., активируйте MOV формат. Заходите в вкладку QuickTime - сейчас нас интерисует флажок "File: Flatten (Make self-contained)" - при включенном флажке видео файл будет встроенным. Выключаем флажок. Жмем "Publish".

Если при экспорте появилось сообщение: "The Installed version of QuickTime does not have a handler for this type of Macromedia Flash movie. Please consult the documentation for further information" - это значит, что вы выбрали параметры экспорта, не поддерживаемые версией QuickTime, установленной на вашей системе. Чтобы этого избежать, нужно в окне "Publish Settings" активировать SWF формат и методом подбора выбрать те параметры Flash - экспорта, которые подойдут под конкретный QuickTime. (Сам swf файл нас не интерисует, но эти настройки отразятся на встраиваемом в файл Mov флэш - слое). Обычно это слишком новая версия Flash'а, или метод компресии 6-ого и выше версий флэша. Если это вынудит вас жертвовать слишком многим, можно посоветовать лишь поискать более новую версию QuickTime'а, которая поддержит необходимые настройки.

 

Проигрывание внешних AVI в браузере

Один из способов проигрывать внешние AVI файлы - это ссылаться на HTML файл, который содержит медиа - компонент. Для этого метода нужно, чтобы на компьютере, где будет проигрываться проект, стояли:

  • Браузер (к примеру, Internet Explorer)
  • Медиа Плеер (к примеру Windows Media Player)
  • Кодек, которым сжат Avi файл
  • При отсутствии любого из этих компонентов просмотр видео через наш проект будет невозможен.

Создаем HTML файл. Как пример, с приведенным ниже контентом (он не претендует на универсальность и оригинальность, но свою задачу выполняет). Далее, в нужном месте нашего флэш - проекта пишем getURL("имя файла.html","свойство окна").

<html>
<head>
<title> Video </title>

<SCRIPT LANGUAGE="javascript">
<!--
window.moveTo(0,0);
window.resizeTo(window.screen.availWidth, window.screen.availHeight);
</SCRIPT>

</head>

<body bgcolor="#FFFFFF" topmargin=0 marginheight=0>
<table align=center cellspacing=0 cellpadding=0 border=0 height=100%>
<tr>
<td align=center><object id=MediaPlayer classid="CLSID:22d6f312-b0f6-11d0-94ab-0080c74c7e95"
codebase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,7,1112"
type="application/x-oleobject" width=720 height=576 align=center vspace=0><param name=AutoStart value=1>
<param name=FileName value="имя_файла.avi"><param name=AutoSize value=0><param name=ShowDisplay value=0>
<param name=ShowControls value=1><param name=ShowStatusBar value=0><param name=TransparentAtStart value=0>
</object><br><a href=javascript:window.close()><font color="#000000">close</font></a>
</td>
</tr>
</table>
</body>
</html>


И, разумеется, в тот же каталог помещаем файл "имя_файла.avi"

 

Экспорт видео из флэша

Рекомендации. Если вы собираетесь делать флэш - ролик, который впоследствии должен быть переведен в видео формат, советую ознакомиться с несколькими полезными моментами.

Во первых, существуют определенные форматы видео. Если есть возможность узнать, для какого носителя делается видео и где в конечном счете будет проигрываться - НАСТОЯТЕЛЬНО рекомендую узнать сразу. Это могут быть, к примеру, носители : DVD, miniDV, VHS, CD, экраны: плазменные с форматом 16:9 или же обычные мониторы с 4:3 (или любым другим соотношением), проекторы, и тп. Все это надо узнать у специалистов, отвечающих за проект. Иначе есть вероятность, что ваше видео окажется обрезанным по краям или, наоборот, будет иметь широкие рамки по бокам. Однако, если невозможно узнать о том, какой формат нужен в данном случае, можно взять один из этих (стандартных):

  • Pal - 720х576, 25 кадров в секунду (предпочтительно)
  • NTSC - 720х480, 30 кадров в секунду (29,97)

Второй момент - помните, что это при экспорте видео непосредственно из Macromedia Flash не переводится Action Script, а в Movie clips только 1 кадр. Т.е. ролик не должен содержать ни одного Movie clip'а: только графические символы (Graphic Symbol). Дело в том, что флэш переводит мультик, как если бы вы просто двигали ползунком по корневой шкале (как команда - control ->play) и переведется только то, что отображается этим способом.
Вместо мувиклипов используйте графические символы - вначале такая идея может показаться абсурдной, однако так тоже можно творить (конечно, если в ролике нет нужды использовать Action Script).

Если у вас сложный ролик и позарез нужен Action Script (или просто нету исходника и приходится работать с Swf файлом), то придется воспользоваться программами трансляции вроде "swf2avi" или "swf2video". Также можно попробовать программу "Camtasia", которая захватывает экран или участок экрана, но для того, чтобы перегнать с ее помощью флэш, нужны о-о-очень мощные машины.

Когда вам важно идеальное качество изображения и нужен минимальный размер файлов получаемого видео, удобно переводить в последовательность картинок PNG - это может быть чуть дольше, чем переводить в несжатый Avi, зато размер радикально меньше.

Еще один плюс в пользу PNG: любопытно, но Adobe After Effects (v.6), искажает на экране (и при последующем экспорте) изображение AVI - файлов. Это заметно только на видео идеального качества, а возможно это какой то "местный" глюк, но будьте осторожны.

Если полученное видео нужно отдать в студию видео-монтажа для дальнейшей обработки и вставки "куда-то-там", то им лучше сделать последовательность картинок TGA формата.

При экспорте в последовательность картинок, звук запишите в отдельный WAV или MP3 файл.

 

Swf2VideoPro (v.1.0)

  • Позволяет переводить SWF файлы в AVI, последовательности PNG или TGA.
  • Для всех форматов поддерживается альфа канал.
  • Для Avi файлов можно сразу выбрать кодек сжатия (если надо).
  • Для Avi возможность сжать существующий звук SWF, а можно пустить свою звуковую дорожку из WAV файла
  • Возможность "перемотки" флэш ролика - для нахождения нужного участка.
  • Пакетная обработка файлов (по нескольку подряд)
  • Записывание AVI как последовательность файлов заданного размера (разбивка)
  • Запись в интерактивном режиме (возможность нажимать кнопочки и тд)
  • Простота в использовании
  • Поддержка видео (FLV)
  • (-) Не работает дозагрузка внешних файлов (SWF, FLV, JPG ...) =(
  • Для запуска требуется Macromedia ActiveX

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

    Диалоговое окно экспорта в AVI (здесь вы можете присмотреть для себя что -то полезное):

Дополнительную информацию о продукте можете узнать на сайте производителя: http://www.flashants.com/

Magic Swf2Avi (v.2.11)

  • Позволяет переводить SWF файлы в AVI, последовательности TGA и TIFF, а также в GIF - анимацию
  • Возможность переводить звук в MP3 файлы
  • Можно сразу задать размер получаемому изображению. Для AVI настроить кодек, прозрачность.
  • (-) Иногда добавляет сверху линию с шумами
  • (-) При переводе нет интерактивности, т.е. флэш идет просто как кино и нельзя повлиять на развитие сюжета
  • (-) Проигрывается столько кадров, сколько существует на _level_0 временной шкале
  • (+) Работает загрузка внешних SWF, JPG файлов.
  • (-) Не работает загрузка внешних FLV видео

Дополнительную информацию о продукте можете узнать на сайте производителя: http://www.effectmatrix.com/

Swf2Avi (v.0.3)

  • Позволяет переводить SWF файлы в последовательности BMP и JPG (есть возможность переводить секвенции картинок в AVI)
  • (-) Неподдерживается звук
  • (+) Работает загрузка внешних SWF, JPG файлов.
  • Неудобна в работе (вначале нужно сделать Контейнер файл, а затем открывать его и через него уже делать свое видео). Сделать видео из нужного ролика может получится не сразу. Если ролик не переводится как надо, попробуйте сделать то же самое еще раз =)
  • (-) Работает очень медленно (на Pentium 4 (3000 ГГц) простенький флэш переводился 1 кадр в секунду)
  • Запись в интерактивном режиме (возможность нажимать кнопочки и тд)
  • Проблемы со сжатыми SWF файлами (Compress Movie)
  • (+) Работает загрузка FLV, однако они проигрываются независимо со своим frame rate, а ролик переводится с frame rate равным примерно 1, в результате большая часть кадров FLV проскакивает.
  • Возможна пакетная обработка файлов (при запуске из коммандной строки)

Если сложить все "за и против", то это программа, поддерживающая максимальное кол-во возможностей (загрузка внешних файлов, интерактивный режим и другое), однако она ооочень медленна

Дополнительную информацию о продукте можете узнать на сайте производителя: http://www.pizzinini.net/

В серии трансляции флэша в видео появляется все больше новых программ, в том числе - "Flashontv" - эта программа заточена конвертить флэш сразу в видео форматы на VCD, SVCD, DVD с выбором PAL/SECAM. Кроме того есть дизайнер менюшек. Однако к теме данной статьи она не относится, т.к. получить "чистый" AVI (без артифактов) с помощью нее будет затруднительно, если вообще возможно.

Утилиты"capture screen" вроде Camtasia

Теоретические отличия от программ трансляции (как Swf2Avi):

  • Возможность переводить любые виды флэша (с загрузкой отдельных модулей, в полностью интерактивном режиме - хоть с открытием окон)
  • (-) необходимость оооооочень мощного компьютера (конечно, для маленьких флэшей баннерного типа с маленьким fps может хватить и простенького компа)
  • Наличие своего кодека (местами довольно экономичного)

 

 

 

Надеюсь, что эта статья вам пригодилась.

rastyle.com | Жебраков Андрей (Andy-S)

Список статей

 Обзор Flash 8 (new!)
 Flash и видео
 Adobe LiveMotion 2: Русский help
 Adobe LiveMotion 2: Первое знакомство
 Swift 3D v.3
 Swift 3D v.2
 Swift 3D XSI v.1
 Новое во Flash MX
 Flash 5 (обзор)
 Flash 5 (анимация)
 Flash 5 (ActionScript)
 Оптимизация Flash
 Глюки Flash

Уроки Flash

 Программное управление звуком
 Рисование с помощью ActionScript во Flash MX
 Создание и использование кнопок
 Передача данных из Flash в сценарии
 Загрузка текста и переменных во Flash
 Определение скорости компьютера
 Определение Flash
 Создаём часы
 Всё о "прелоадерах"
 Снег во Flash
 Ещё о "прелоадере"

наверх // в начало (C). rastyle.com // 2002-2017 // all rights reserved