Перенос видео материала во Flash

Краткое содержание главы:

• форматы видео, какие из них можно импортировать во Flash;

• установка параметров импорта видео во Flash;

• скорость передачи данных и интервал ключевого кадра;

• экспорт видео в формате FLV;

• экспорт видео с использованием Sorenson Spark;

• сравнение Sorenson Spark и Sorenson Squeeze;

• оптимизация видео.

Итак, у вас есть некий видеоролик, смонтированный и отредактиро­ванный, и вы готовы импортировать его во Flash, верно? Ну… я бы ска­зал, почти готовы! Прежде чем мы обратимся к импорту видео, вам сле­дует узнать еще кое-что. В этой главе мы рассмотрим способы получения максимальной отдачи от вашего исходного материала путем оптимиза­ции — уменьшения размера файла при сохранении, по возможности, наилучшего качества.

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

Прежде всего

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

Необходимо установить QuickTime версии 4 (можно получить с Www. apple. com/quicktime) или выше для импортирования следующих форматов (для обеих платформ, Windows и Macintosh):

• AVI — Audio Video Interleaved (перемежающиеся аудио — и видеодан­ные);

• DV — Digital Video (цифровоевидео);

• MPG или MPEG — формат, разработанный Motion Picture Expert

Group;

• MOV — QuickTime Movie (фильмОшскТСте).

Пользователям Windows необходимо установить DirectX версии 7 или выше (последнюю версию можно получить с Www. microsoft. com/ windows∕directx):

• AVI;

MPG или MPEG;

• WMV или ASF — файл Windows Media.

Многообразие форматов сжатия видео и аудио может привести к тому, что первый результат импортирования видео во Flash окажется обескураживающим, однако не переживайте — мы поможем вам пре­одолеть все трудности.

Первое, о чем следует помнить: очень желательно, чтобы файл-ис­точник был в несжатом формате. Нет, это не опечатка! Если нужно сжа­тие, то удобнее использовать встроенный компрессор Flash — Sorenson Spark, который превосходно выполнит компрессию любого видео. Sorenson Spark — это так называемый кодек (англ, codec, сокращение от «компрессор-декомпрессор») для видеофильмов.

Тем, кто хотел бы получить еще больший контроль над размером и качеством импортируемого видео файла, стоит обратить внимание на продукт под названием Sorenson Squeeze. Возможно, выуже видели рек­ламу Squeeze на сайте Macromedia; это приложение разработано специ­ально для сжатия видео во Flash MX. Подробнее о Squeeze поговорим позже, а сейчас я познакомлю вас с многочисленными опциями, кото­рые вы сможете использовать при импорте видео во Flash.

Импортирование видео: подготовка

Источником, или оригиналом, видео для нашего упражнения служит файл в стандартном формате для видеофильмов, синхронизированных со звуком — Audio Video Interleaved, сокращенно AVI. Профессиональ­ные программы видеомонтажа обычно выдают результат именно в фор­мате AVI либо MOV (формат QuickTime). Данный AVI-файл продолжи­тельностью 10 секунд со звуком имеет размер 92 MB! Это, конечно, без компрессии, поэтому для использования в данном упражнении я взял этот 92-мегабайтный AVI и применил сжатие типа Motion JPEG полу­чив файл формата QuickTime MOV, названный driver_final. mov.

Это не согласуется с тем, что мы только что говорили о компрессии, однако получившийся файл имеет размер 4,6 MB, что позволяет вам ска­чать его с сайта Www. friendsofed. com. Если у вас нет модема и/или воз­можности им воспользоваться, либо вы предпочитаете использовать свое собственное видео, тогда просто замените в этом упражнении driver_final. mov любым другим видео файлом.

Нам нужно установить во Flash такую же частоту кадров, как и в на­шем видео файле.

1. Создайте новый фильм Flash и, воспользовавшись инспектором па­раметров (Property) (клавиши Ctrl + F3), установите частоту (frame rate) такую же, как в нашем исходном файле — 30 кадров в секунду (fps). Если вы используете другой исходный файл и не знаете, какова частота кадров в нем, загляните на пару страниц вперед, в раздел «Ча­стота кадров».

2. Если мы создадим новый символ видеоклипа в нашем Flash-фильме и импортируем видео в него, нам будет удобнее манипулировать видео материалом, чем если бы мы импортировали видеоклип прямо на глав­ный монтажный стол. Выполните команду Вставить > Новый символ (Insert > New Symbol) (или нажмите Ctrl + F8). В диалоговом окне Со­здать новый символ (Create New Symbol) выберите опцию Фильм (Movie Clip) и дайте своему клипу подходящее имя.

3. Для импорта видео выполните Файл.> Импорт (File > Import) (Ctrl + R). Выберите видео файл — driver_final. mov в нашем случае; в диалого­вом окне Импорт видео (Import Video) нужно выбрать опцию Вне­дрить видео в документ Macromedia Flash (Embed video in Macromedia Flash document):

Другая опция здесь — Связать с внешним видеофайлом (Link to external video file). Эта опция доступна только в том случае, если импор­тируется фильм QuickTime. Ей можно воспользоваться в тех случаях, когда вы хотите представить видеозапись в изначальном виде, напри­мер, рекламный видеоролик или речь какого-либо деятеля. В этом слу­чае файл Flash сам по себе не будет содержать видео файла, видео будет загружаться отдельно, в нужный момент. Такой метод очень ограничи­вает возможности, к примеру, если возникнет надобность экспортиро­вать содержимое Flash в формат Flash 4.

Параметры видео

Сейчас мы приостановим на минутку выполнение нашего упражнения, чтобы рассмотреть некоторые из этих опций. Не волнуйтесь, ничего не отменяется; мы продолжим, как только узнаем о том, как задать наилуч­шие параметры нашему видео.

Итак, перед нами диалоговое окно Параметры импорта видео (Import Video Settings) — окно параметров Sorenson Spark:

Как видите, здесь указаны Размер (Movie Size) и Длина (Length) филь­ма, есть также окно просмотра. Кроме того, здесь имеется несколько изменяемых настроек.

Частота кадров

Прежде чем импортировать видео, нужно подумать о частоте кадров, установленной во Flash. Если, к примеру, ваш видео файл снят с часто­той 30 кадров в секунду (fps)r тогда, чтобы воспроизвести его наилуч­шим образом, нужно установить во Flash такую же частоту — 30 fps. Частота кадров импортируемого фильма указана рядом с его длиной, справа от окна просмотра.

Причина, по которой необходима настройка частоты во Flash, зак­лючается в том, что звуковая часть видеофильма всегда воспроизводит­ся с частотой кадров изначального видео файла. Импортированное ви­део будет воспроизводиться той частотой, которую вы укажете во Flash, однако звук — только с частотой оригинала. Возможная проблема оче­видна. Например, вы импортируете видеозапись, на которой крупным планом показан говорящий человек, тогда, если установить частоту кад­ров, отличную от оригинала, движение губ не будет соответствовать зву­чащим словам. В принципе, компенсировать различие в частоте кадров при импорте видео возможно, позднее мы поговорим об этом.

Качество

Первый настраиваемый параметр — Качество (Quality). Этот регулятор определяет степень компрессии видеоклипа. Нет, установить Качество на 100% — это совсем не удачная идея, поскольку клип, который полу­чится в результате, может оказаться даже большего размера, чем ори­гинальный файл! Лучше немного снизить значение Качества, ну, хотя бы до 95%.

Для интернета уровень сжатия чем больше, тем лучше, зато для пре­зентаций на CD-ROM идеальной будет наименьшая компрессия. При чтении с CD-ROM скорость передачи данных куда больше, чем при пе­редаче видео по сети. Важно сознавать, что на старых компьютерах мо­гут возникнуть проблемы даже при просмотре видео с CD-ROM, — из — за низкой скорости обработки данных процессором, поэтому перебарщивать не стоит.

Интервал ключевого кадра

Следующий параметр — Интервал ключевого кадра (Keyframe interval). Этим регулятором настраивается частота ключевых кадров (кадров, со­держащих полные данные) видеоклипа. Именно этот параметр практи­чески определяет размер и «воспроизводимость» вашего будущего фай­ла! Ключевые кадры очень важны, ведь именно в них содержатся пол­ные кадры видеоклипа. При установке значения 30 ключевым будет каж­дый тридцатый кадр, а если установить, например, 5, тогда ключевым будет каждый пятый. Самое крайнее значение интервала ключевого кадра — Я бы такое не рекомендовал.

Почему так важны ключевые кадры? Начнем с того, что существует два типа компрессии. Та, что используется в Sorenson Spark, работает так: в каждом кадре видео отыскиваются области, которые от кадра к кадру не перемещаются. Такой вид сжатия называется временным, или темпоральным (temporal), еще его называют межкадровым (interframe). При таком сжатии стараются определить, какие области в каждом кад­ре остаются неизменными, чтобы не отрисовывать их заново.

Это — одна из причин того, что клипы, в которых много движения, а также снятые нестационарной камерой, занимают много места и требу­ют широкой полосы пропускания — все движется, мало что остается неизменным от кадра к кадру. Сравните клип, в котором человек что-то говорит, находясь на статичном синем фоне, и съемку какой-нибудь спортивной игры. При одинаковой продолжительности первый клип окажется гораздо меньшего размера!

А вот пример использования чересчур большой межкадровой комп­рессии. Это кадр из видеоклипа, с которым мы сейчас упражняемся, я применил к нему очень высокую степень сжатия:

В процессе сжатия программа пытается найти в кадре области, соот­ветствующие предыдущим кадрам, но при столь быстро меняющемся изображении не может этого сделать. Такая компрессия ни к чему, так что в этой настройке нужна особая тщательность.

Другой тип сжатия называется пространственным (spatial), или, ина­че, внутрикадровым (intraframe). Заданный уровень компрессии приме­няется ко всем кадрам без исключения, невзирая на соседние кадры. Кодек Sorenson Spark использует в основном межкадровое, или времен­ное сжатие, однако применяет также и пространственное (внутрикад­ровое) — в ключевых кадрах. Видите, какой умелый кодек этот Sorenson Spark! При помощи межкадровой компрессии он старается сжать ос­новную часть видео, и еще при этом использует внутрикадровую, чтобы сохранить качество изображения.

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

Чтобы дать вам представление том, как число ключевых кадров вли­яет на размер файла, я импортировал свое видео с использованием раз­личных значений этого параметра. Вот два наиболее важных сочетания:

• при импортировании с качеством 90% при интервале ключевого кад­ра, равном получился файл размером 1,2 МВ,

• импортирование того же самого клипа, но с интервалом ключевого кадра 48, дало в результате файл размером 712 КВ. Но качество этого второго видео ужасно отличается от первого!

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

Если вы поДнаторели в технике, вам, возможно, интересно буДет уз­нать, что Sorenson Spark Экономит место еще и за счет цветового про­странства: «Для кажДого блока Данных 2X2, YUV 4:2:0 СоДержит 4 Об­разца яркости (Y), Но только 2 Образца цветности (U, V).» Человеческий глаз много чувствительнее к различиям светимости, или яркости, чемк хроматической насыщенности (цвету), и такой метоД позволяет на­много уменьшить объем информации, необхоДимой Для реконструкции изображения, что Дает более высокую степень сжатия. На этом мы наше маленькое отступление закончим, а вы найДете больше информа­ции о WV 4:2:»компрессии на Www.Adamwilt.Com/DVFAQTech.Html.

Масштаб

Параметр Масштаб (Scale) определяет размеры изображения (ширину и высоту) видеоклипа после его импорта, и с этой настройкой все куда проще, чем с двумя предыдущими! Если уменьшить изображение по сравнению с оригинальным, то снизится размер файла, а следователь­но, и воспроизводиться он будет лучше.

Синхронизация

Следующий параметр — Синхронизация видео по частоте документа Flash (Synchronize video to Macromedia Flash document frame rate). Здесь можно компенсировать различие в частоте кадров, таким образом, что в итоге видео будет воспроизводиться с той же частотой кадров, что и фильм Flash.

I7 Сикироиооция видео по частоте лжамемто Flaih

Komreeieo кадров видео для кошфооки по ГТ—————— 1

Числа клиров Moaomeie FteA I” —U

Гй Импорт аудио

Cπw I

Например, я захотел для своей мультимедийной презентации уста­новить частоту кадров 60 fps (вообще, это многовато, так что если захо­тите последовать такому примеру, убедитесь сначала, что ваша целевая аудитория сможет воспроизвести презентацию на такой скорости). Ес­тественно, такая частота кадров не будет идеальной в том случае, если я захочу импортировать видео с частотой кадров, например, 30 fps. Деся­тисекундный клип с частотой 30 fps, импортированный в фильм Flash, имеющий частоту 60 fps, превратится в пятисекундный. Звук тоже бу­дет не синхронизирован.

Установив Синхронизацию, мы добьемся того, что в процессе импор­тирования видео разница в частоте кадров будет автоматически устра­нена. То есть если видеоклип 30 fps импортировать в фильм Flash fps, то при включенной Синхронизации часть кадров будет отброшена, ви­део станет, пожалуй, немного «дергаться», зато его продолжительность и синхронизация со звуком сохранятся. Sorenson Spark в этой ситуации будет просто отбрасывать каждый второй кадр.

Звук

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

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

Как и с видео, во Flash лучше всего импортировать звук с наимень­шим сжатием. Самый лучший выбор, если он вам доступен, это РСМ, являющийся, по сути дела, записью звука вообще без сжатия. Однако при желании вы можете импортировать и сжатый звук. Хороший при­мер — фильмы формата QuickTime, в которых звук сжат при помощи 16­битовой компрессии с прямым порядком байтов при частоте 44,1 кГц — или просто MPEG Layer 3

Учтите, что не всякий сжатый аудио-формат может быть импортиро­ван во Flash. В таком случае вместо опции Импорт аудио (Import audio) вы увидите сообщение об ошибке:

"IlllllllIIMimiIi I’IlHT

& Адаио в этом Файле нельзя импорпфрвагь.;’

⅛ >⅝>⅛ ⅛⅛^⅜*4⅜fe⅜⅛⅜-⅞ ⅛⅜⅛

Справка j ⅛t ⅛>, .M∣HHwa⅛a⅜⅜i

Как уже было сказано, ваша система должна поддерживать аудио кодек, использованный при изначальном кодировании звука. Кроме это­го следует принять во внимание, что аудио треки файлов MPG и MPEG могут импортироваться неправильно. Попытка импортировать MPG — видео вместе со звуком может привести к тому, что не удастся импорти­ровать весь фильм! Если у вас возникают проблемы при импортирова­нии видео вместе со звуком, тогда при помощи видео редактора попробуйте перекодировать видео и звук в другой формат, используя кодеки и компрессоры, поддерживаемые вашей системой.

Быстрое и неДорогое решение проблемы перекомпрессии ваших MPEG, MPG И Других несовместимых форматов QuickTime Pro От Apple. Он Дает возможность импортировать множество виДео-форматов и экс­портировать их в Другой формат, например, MOV. QuickTime Pro Мож­но скачать с Www.Apple.Com/Quicktime/Download.

Устанавливаем параметры импорта видео

Теперь, когда мы получили сведения о тех силах, посредством которых параметры импорта видео управляют видео-вселенной Flash, давайте вернемся к нашему упражнению и зададим параметры для нашего ви­део файла. Параметры, указанные здесь, даны, естественно, для нашего файла-образца — driver_final. mov. Каждый видео файл имеет свои осо­бенности, так что если вы используете свой собственный материал, вое — пользуйтесь новоприобретенными знаниями (а также методом проб и ошибок), чтобы найти наилучшее решение для своего конкретного ма­териала.

1. Для нашего примера установите Качество (Quality) на «90», чтобы по­стараться сохранить хорошее качество, подходящее для широкопо­лосного вещания.

2. Установите Интервал ключевого кадра (Keyframe interval) на «48» — наибольшее значение в Sorenson Spark, а параметр Масштаб (Scale) оставьте на 100% — 320×240 точек.

3. В этом упражнении мы установили частоту кадров нашего фильма Flash на 30 fps, что соответствует частоте кадров импортируемого видео, поэтому синхронизация не требуется.

4. Нам нужно выбрать Количество кадров видео для кодировки по чис­лу кадров Macromedia Flash (Number of video frames to encode per number of Macromedia Flash frames). Например, чтобы воспроизво­дить 1 кадр видео для каждого кадра Flash, мы выбираем из ниспада­ющего списка 1:1. Если изменить это значение, то часть кадров им­портируемого видео будет отброшена, что сделает это видео медленнее, однако может сделать его «дерганым» (менее плавным). Здесь мы выберем воспроизведение всех кадров с частотой кадров Flash, то есть, оставляем 1:1:

5. Нажмите кнопку OK и дождитесь окончания процесса компрессии — Flash сжимает видео уже на этом этапе, вместо того, чтобы делать это при экспортировании готового фильма. Таким образом, процесс экс­порта фильма Flash не будет замедлен из-за необходимости сжимать еще и видео.

6. В случае импортирования видео непосредственно в сцену (stage), мо­жет появиться следующее сообщение, если клип содержит больше кадров, чем монтажный стол, на который вы его помещаете. Нажми­те кнопку Да (Yes), чтобы добавить кадры, иначе видеоклип не будет показан вообще — видео воспроизводится только в том случае, если в фильме Flash имеется достаточное количество кадров.

Итак, вы сделали это! Мы благополучно импортировали наш видео­клип во Flash и теперь готовы к его обработке в стиле Flash. Это был не самый захватывающий процесс, однако на нем покоится фундамент для построения удачных Flash-видео презентаций. Потратив некоторое вре­мя на подбор этих настроек, вы будете уверены в том, что в вашей пре­зентации не содержится неоправданно больших видео-массивов, кото­рые могли бы затормозить и скомкать все представление.

Sorenson Squeeze

Компрессор, встроенный во Flash MX — Sorenson Spark — хорош, одна­ко существует нечто еще лучшее. Называется оно Sorenson Squeeze. Чтобы получать в результате сжатия действительно наименьший раз­мер файла при сохранении наилучшего качества, вам стоило бы позна­комиться с этой программой. Итак, предлагаю взглянуть на этот неболь­шой, но могучий образчик программного обеспечения; посмотрим, что он сможет сделать с нашим видео. Скачать пробную версию можно с Www. sorenson. com (5,5 MB для PC и IOMBдля Мае).

Sorenson Squeeze — самостоятельная программа компании Sorenson Media, способная кодировать высококачественное видео для Flash MX. Идея состоит в том, чтобы обработать изначальный видеоматериал с помощью Sorenson Squeeze, а потом, уже в сжатом виде, импортировать во Flash.

вот что мы увидим, открыв sorenson squeeze:
вывод в формат вывод в формат quicktime flash fla
открытие вывод в параметры видео
файла i flash swf / фильтра
предустановки полосы пропускания
oixtxjt не* ——:—“—;
; ⅛ zujjjjjjj.i j: ∣jbi
i ½⅛ jli  uu
окно
просмотра
окно файлов кнопка
вывода squeeze it
кнопка
vcast

Семь кнопок предустановленных режимов скорости передачи (Data Rate Presets) в верхней части интерфейса предназначены для задания минимальной ширины полосы пропускания, при которой можно будет просматривать готовый фильм. Окно просмотра (слева) — само собой, для просмотра импортированного файла. Сжатое видео однако просмат­ривается не здесь. Справа имеется окно выходных файлов (Output Files), здесь можно просмотреть настройки компрессии, примененные к ви­део файлу. Внизу находятся кнопка Squeeze It, по нажатию на которую начинается процесс компрессии, иVcast — эта кнопкадает возможность сетевой трансляции вашего видео.

Sorenson Squeeze обладает и такой великолепной способностью, как захват видео прямо с цифровой камеры. Правда, тут есть один недоста­ток — если вы захотите добавить звук, то придется воспользоваться вне­шним видео редактором. Конечно, вы можете наложить звук или музы­ку на видео прямо во Flash. Я в таких ситуациях обычно пользуюсь
программами нелинейного монтажа (non-linear editing — NLE), такими, как Adobe Premiere 6.0 или Sonic Foundry’s Vegas Video 3.0.

Для начала давайте сравним два видео файла — первый закодирован встроенным во Flash кодеком Sorenson Spark, а второй — при помощи Sorenson Squeeze. Кодирование было организовано так, чтобы оба филь­ма имели примерно одинаковое качество изображения и звука.

Первое видео сжато с 4,7 MB до 716 KB, что весьма впечатляет:

закодировано sorenson spark

Второе видео, однако, сжато с 4,7 MB до 430 KB!

закодировано sorenson squeeze

Рассмотрим поближе два одинаковых кадра. То, что имеет место сжа­тие, заметно на обоих, хотя второе видео выглядит более «ровным». Интересная деталь: если эти кадры (из каждого фильма) сохранить как изображения JPEG, то для второй картинки размер файла получится больше, чем для первой. Но подождите! Ведь второе изображение полу­чено из видеоклипа меньшего размера? Как же так?

Все просто: компрессор Sorenson Squeeze сумел произвести видео­клип меньшего размера, чем Sorenson Spark, но при этом с лучшим каче­ством изображения! Squeeze исключительно полезен, если вы собирае­тесь часто работать с видео и Flash MX, и хотите иметь по возможности наименьший размер файлов.

Сжатие видео

Здесь важно отметить, что раз уж мы применяем Sorenson Squeeze с це­лью получения наилучшего качества при наименьших размерах файла, то лучше всего использовать «сырое» (несжатое) видео. Если же мы им­портируем видео, которое уже подверглось компрессии, и станем сжи­мать его еще, то качество изображения может пострадать. Вообразите такую аналогию: возьмем фотографию и скомкаем ее руками в шарик, затем развернем, расправим, опять скомкаем и так далее. С каждым ра­зом изображение будет все хуже. То же самое и с видео. Если взять сы­рое видео и применить к нему компрессию, а затем импортировать то, что получилось, в другую программу и применить другой тип сжатия, и так далее, — потеря качества неизбежна.

Параметры сжатия

Давайте импортируем наше видео в Sorenson Squeeze.

1. Нажмите кнопку File Open (открыть файл) и выберите сырой видео файл (в нашем примере это driving_final. mov). Теперь вы можете уви­деть этот клип в окне просмотра.

2. Нам нужно выбрать формат, в который мы будем кодировать. Здесь три варианта: QuickTime Video, Flash SWF и Flash FLV. Так как мы будем импортировать сжатое видео во Flash MX, выбираем формат Flash FLV, нажав соответствующую кнопку:

Flash FLV — новый формат файлов, присущий только Flash MX. Хотя существуют и другие форматы, которые можно использовать во Flash MX, этот формат наилучший для импортирования сжатого видео.

3. Теперь надо выбрать скорости передачи (ширину полосы пропуска­ния) , для которой мы будем кодировать видео. Вы, наверное, замети­ли, что кнопки выбора скорости передачи подсветились только пос­ле того, как мы выбрали формат видео. Теперь семь кнопок режимов кодирования активны. Давайте выберем четвертый режим — Broadband (широкополосная сеть):

; 5⅛⅛S>sS⅛3 Ij JMMHBI1 MMBH ; —— ] ;■— ∣i 1^м

∙^∙^.. ∙’~~J!ΞΞI.

Broadband∣ —

Такая настройка не совсем соответствует тому, что нам нужно, но не волнуйтесь — мы сможем быстро довести до совершенства. Обра-

Тите внимание, что выбранные нами параметры отобразились в окне выходных файлов (Output Files) :

zjatqutpafies
. 6 ɪ dtivinqjinal_broadband hv 961 kbps 0 spark, 320x240,12 fps, 256 kbps i∙∙ <$• rawaudio, stereo. ?05 kbps
,_ φ
media
,*⅛f diivmq_imat mov ∙ swenson squneze

Если, ради интереса, экспортировать с этими предустановленными параметрами, в результате получится файл видео со звуком разме­ром свыше 2 MB! He годится. Можно было бы выбрать другую пре­дустановку, но мы предпочтем эту, так как она ближе к тем парамет­рам, которые мы хотим получить в итоге. Поэтому давайте-ка копнем поглубже!

4.

flmhflv |
■' 1 h√ ftudβ 0t4pul ∙~f? vidso θvɪpuɪ — ` — !
,sorenson spark,cared [

Обратимся к окну Output Files и выделим строку, начинающуюся со слова Spark. Теперь идем в меню Edit > Output Compression Settings..,, открывая диалоговое окно Compression Settings (параметры компрес­сии):

^T] <⅛⅛ra. [

` oajrate ∣Λ⅛ ktomvsec i,
i - t i
5ample rate] <4 100khz ɪj ' i:
,data kilobits/bee.
 `
frame ra»e:|12 ɪj frames/sec. ≈∣ m⅛h⅛⅞;: sorenson 2∙f^ass vbr jri |
,i Ξ
t⅛f>i⅛te ∙∣ slereo 3⅛y∙ j
f20,.Ξkf°^3 ∙ i

5. Для нас не обязателен превосходный звук, достаточно просто хоро­шего; мы ведь все-таки собираемся передавать это видео по сети. Качество звука стандарта CD требует, как правило, скорости переда­чи не менее 48 килобит в секунду при частоте дискретизации не ме­нее 44 кГц. А мы возьмем на одну-две ступени ниже, так что звук бу­дет хорошего качества, и в то же не займет много места. Итак, выбираем в секции Audio Output параметры Fraunhofer MP3 при 32 килобит/с.

6. Здесь же, в секции Audio Output, изменяем частоту дискретизации (Sample Rate) на 22,050 кГц и выбираем Mono в списке Channels (ка­налы) . Теперь ваши аудио параметры должны соответствовать тому, что вы видите на снимке:

FlSih FLV I

: — р Audio Output ^

‘(Fraunhofer MP3 ɪj . ¾Pl. ions. l.^

DstsRets 32 3KJobrtiΛec

i⅛r⅛j1

⅛ Г Prep-Ou

Теперь давайте переместимся в секцию Video Output. Установим Data Rate (скорость передачи) на 350 килобит/с, a Frame Rate (частоту кад­ров) — на 1:1 (вы можете также ввести в это поле «30»). Это означает, что при сжатии будет использоваться та же частота кадров, что и в оригинальном видеоклипе, то есть, в нашем случае, 30 fps.

8. Выберите из списка Method (метод) Sorenson 2-PassVBR. Это, пожа­луй, важнейшая функциональная возможность Sorenson Squeeze, отсутствующая в Sorenson Spark. 2-Pass VBR (Variable Bit Rate — пе­ременная частота данных) — это особый способ компрессии, когда сцены с активным движением кодируются гораздо большим количе­ством данных, чем статичные сцены. Таким образом, снижается раз­мер файла при повышении производительности. Кстати, сегодня едва ли не каждый видеофильм DVD кодируется таким способом.

9. Наконец, установите Frame Size (размер кадра) на 320×240. Оконча­тельный вид секции параметров видео должен быть таким, как здесь:

p vrieo output — ⅛-,j soienjon spark,fiameszseo,•зло».*
method:
,∣soιenson2∙pass,vbr

Обратите внимание на верхнюю часть диалогового окна Compression Settings — значение расчетной ширины полосы пропускания (Estimated Bandwidth) теперь составляет 382 килобит/с. Можно было бы удовольствоваться этими настройками, однако я хочу большего — полагаю, и вы тоже. Копаем дальше.

10. Нажмите кнопку Options… в секции Video Output — откроется диа­логовое окно Sorenson Spark Settings (параметры Sorenson Spark). Здесь три вкладки, первая из них — просто общая сводка (Summary) установленных параметров. Перейдите на вкладку ErtcocJe (кодиро­вание):

11.Первый параметр — Quick Compress (быстрое сжатие). При включе­нии этой опции сжатие видео происходит примерно на 20% быстрее, но при этом приносится в жертву качество. Впрочем, на самом деле эта потеря качества минимальна и на глаз практически не заметна. Наш видеоклип длится всего 10 секунд, так что его сжатие займет от 30 секунд до 2 — 3 минут, в зависимости от быстродействия вашего компьютера. Много времени мы тут не выиграем, лишние 30 секунд у нас как-нибудь найдутся, так что оставляем эту опцию отключен­ной.

12.Следующий флажок — Drop Frames (пропускать кадры). Эта опция действительно важна только в том случае, если вы выбираете после­днюю настройку на этой вкладке — Minimum Quality (минимальное качество). Регулятор Minimum Quality используется для настройки минимального качества изображения кодированного видео. При этом, естественно, многим придется пожертвовать: снизится частота кадров, а значит, и качество изображения в каждом кадре. В этом упражнении мы оставляем эту опцию отключенной.

13.Главный орган управления на этой вкладке — регулятор Automatic Key Frames (автоматические ключевые кадры). Он позволяет устано­вить вероятность того, что при переходе от кадра к кадру будет встав­лен ключевой кадр. Установите регулятор на 75. При этом автомати­ческое создание ключевых кадров будет происходить несколько чаще, чем при значении по умолчанию (50), в нашем клипе — непрестан­ное движение, поэтому требуется, чтобы ключевые кадры распола­гались чаще.

14.Теперь перейдите на вкладку Playback (Воспроизведение) и устано­вите флажок Image Smoothing (Сглаживание изображения). Это по­могает устранить или хотя бы снизить эффект «блоков», который может возникнуть в результате компрессии.

15.Установите также флажок Playback Scalability (масштабирование воспроизведения). Эта опция облегчает воспроизведение видео на различных компьютерных платформах. При воспроизведении филь­ма на медленном компьютере каждый второй кадр пропускается, компенсируя, таким образом, недостаточную производительность компьютера (например, фильм с частотой кадров 30 fps превратится в 15fps и так

16. Нажмите ОК, затем еще раз ОК, подтверждая наши новые парамет­ры компрессии.

Параметры видео фильтра

В Sorenson Squeeze мы можем также подредактировать наше видео — для этого на инструментальной панели основного интерфейса имеется кнопка Video Filter Settings (параметры видео фильтра).

Давайте нажмем эту кнопку и посмотрим, что здесь имеется.

Слева — окно просмотра. Справа вверху органы управления Contrast (контраст), Brightness (яркость), Gamma (гамма-фактор — коррекция градаций яркости), White Restore (баланс белого) Black Restore (баланс черного). Можете подвигать эти регуляторы, все изменения будут не­медленно отражаться в окне просмотра.

Дальше идет опция Deinterlace (Устранение чересстрочной разверт­ки) — еще одна полезная функция Sorenson Squeeze. Вкратце объясню, что это такое: при чересстрочной (interlaced) развертке кадр делится на два поля. Сначала на экран выводится первое поле, построчно сверху вниз, а затем второе поле — в промежутки между строками первого. Вывод каждого из полей занимает 1/60 секунды при частоте кадров 30 fps (если точно — 29,97), невооруженным глазом это не заметно.

Чересстрочная развертка используется в большинстве систем теле­вещания. Ниже на снимках вы можете увидеть отличия между двумя полями, внимательно рассмотрев запасное колесо «Лендровера» (обве­дено кружком):

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

Попутно заметим, что в мире на сегоДня наиболее распространены Два виДео стандарта: NTSC И PAL. NTSC (National Television Standards Committee) Используется главным образом в Северной Америке, Японии и на Тайване. Формат PAL (Phase Alternate Lines) Применяется в Европе, Австралии, Новой ЗеланДии и многих Других странах. Частота каДров в формате NTSC Составляет 29,97 Или 30 Fps, В PAL 25 Fps.

В компьютерных мониторах такой метод не применяется. Здесь ис­пользуется построчная (non-interlaced), или, иначе, прогрессивная (progressive) развертка. Изображение построчно выводится на экран сверху вниз сплошным полем. Многие современные цифровые видео­камеры позволяют вести съемку в режиме построчной (сплошной) раз­
вертки 30fps, — это стандарт для мультимедийного видео. Однако в боль­шинстве своем видеозаписи имеют чересстрочную развертку и частоту кадров 29,97 либо 25 fps.

Параметры сжатия

Теперь вы понимаете, что нам нужно устранить чересстрочную развер­тку, чтобы получить наилучшее качество изображения после примене­ния компрессии.

1. Из списка Deinterlace выберите Auto Remove Interlacing (Автомати­чески устранить чередование).

2. Следующий параметр — Video Noise Reduction (Видео шумоподав­ление). Позволяет устранить так называемый «песок», «зернистость» изображения, в общем, «посторонние шумы». В данном случае нам это не нужно.

3. То же касается функций Cropping (обрезка), а также эффектов фе­динга — постепенного «проявления» (Fade In) и «затухания» (Fade Out). Cropping позволяет именно обрезать изображение, то есть не просто изменить ширину и высоту — если вы, например, выберете соотношение сторон 16:9, то излишек изображения по ширине или высоте будет отброшен. Fade In и Fade Out позволяют добавить эф­фекты фединга, соответственно, в начале и в конце клипа, с настрой­кой продолжительности эффекта.

! . ,

— ,ШТ-

1 -50

50

Ss

50

Т, , Г

~ 50

HHRHSnHHHHHRSfiB

4. Наконец, есть здесь опция Normalize Audio. Эта функция анализирует клип в поисках самого громкого звука, а затем соответственно подстраивает весь звуковой трек так, чтобы наибо­лее громкая часть не имела искаже­ний. Это мы тоже не трогаем. Теперь проверьте, соответствуют ли ваши настройки моим (единственная оп­ция, которую вы должны были изме­нить — это Deinterlacing), и нажмите кнопку ОК.

5. о . (ltkb)Теперь мы готовы экспортировать наше видео в формат FLV. Нажмите на кнопку Squeeze It в правом ниж­нем углу главного окна. Появится информационное окно Squeezing

(чтобы наблюдать сложный процесс обработки вашего видео, нажми­те кнопку Preview On — включить просмотр):

Процесс с использованием Sorenson2-passVBR происходит в два про­хода (этапа). При первом проходе результат довольно невзрачный, второй проход занимает побольше времени, и результат гораздо луч­ше. После его завершения мы получаем видеоклип FLV, готовый для импорта во Flash MX. Формат FLV сам по себе не предназначен для просмотра, его можно просмотреть только внутри Flash MX. Этот формат был специально разработан для вызова из Flash в качестве отдельного видеоролика или для импорта в среду разработки Flash.

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

Да, конечно, если установить во Flash более высокую частоту кадров, например, 60 fps, то FLV на 30 fps будет воспроизводиться без проблем, тем не менее, делать так совершенно не обязательно. В противополож­ном случае, если вы считаете необходимым понизить частоту кадров видеоклипа с целью уменьшения размера файла, это следует делать в Sorenson Squeeze, до импорта клипа во Flash.

Еще одно важное замечание: если вы снизите частоту кадров в

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

Перенос видео во Flash

Итак, мы все обсудили, а теперь давайте подведем итог нашего упраж­нения — импортируем FLV файл во Flash.

1. Откройте фильм Flash, в который вы импортировали видеоклип, вы­полняя упражнение в начале этой главы. Откройте Библиотеку (Library) (F 11) и двойным щелчком на значке фильма (Movie Clip) от­кройте его для редактирования.

2. Выберите кадр 1 и удалите имеющееся видео. Не забыли — это ис­ходный driver_final. mov, видео файл QuickTime, который мы импор­тировали в начале главы.

3. Теперь можно импортировать файл FLV, только что нами созданный. Выполняем команду Файл > Импорт (File > Import), и видим рядом с исходным видеоклипом файл FLV (кстати, обратите внимание на ог­ромную разницу между размерами файла-источника MOV и сжато­го FLV):

4. Выберите driving_final_Broadbandgfl4 импорта его во Flash.

5. На панели, расположенной чуть ниже монтажного стола, щелкните на ссылке Сцена 1 (Scene i, чтобы вернуться к основному монтаж­ному столу. Выделите кадр 1 в текущем слое (layer) и перетащите ко­пию фильма из Библиотеки (Library) в сцену.

6. Вот и все! Командой Управление > Проверить фильм (Control > Test Movie) запустите просмотр вашего оптимизированного видео во всей его красе:

7. Сохраните свой файл Flash и закройте его.

Заключение

Итак, мы это сделали! Мы оптимизировали наше Flash MX видео, те­перь оно готово для широкополосного показа в интернете. Конечно, для этого нам пришлось несколько снизить качество изображения и звука, а также уменьшить размер изображения.

Следует напомнить о некоторых моментах, имеющих отношение к импорту видео во Flash MX. Возможно, будет немало проб и ошибок, прежде чем ваше видео получится таким, как нужно, поэтому заранее будьте готовы экспериментировать с различными конфигурациями па­раметров. Хорошо бы вести протокол ваших находок, чтобы потом срав­нивать различные настройки, влияющие на размер изображения, вос­произведение, возможность масштабирования и так далее.

При этом следует учитывать, где и как будет в конечном итоге про­сматриваться ваше видео, представлять себе, каким «железом» (аппа­ратными средствами) и полосой пропускания может располагать ваша целевая аудитория. Как правило, при сжатии и импортировании видео во Flash MX приходится искать компромиссы: качество изображения и звука против маленьких, компактных, удобных для загрузки видео фай­лов.

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

глава
обработка видео во flash

Краткое содержание главы:

• средства потоковой передачи Flash — видео;

• управление видеофильмами при помощи простейших программ

ActionScript;

• маскирование видео.

Две предыдущие главы были посвящены тому, что необходимо сделать, чтобы получить возможность использования видео во Flash. В этой гла­ве мы сделаем шаг вперед и узнаем, как обрабатывать видео материал и управлять им во Flash. Другими словами, настал час пожинать плоды наших трудов.

Начнем с рассмотрения некоторых способов, позволяющих удосто­вериться, насколько эффективно наш фильм будет передаваться пользо­вателям, а затем поговорим о том, каким образом Flash управляет видео­клипами и монтажными столами. Вооружившись этими знаниями, мы, при помощи нескольких простых кнопок и ActionScript создадим не­сколько видеоэффектов.

Потоковая обработка видео во Flash

Во Flash потоковая передача информации несколько отличается от тради­ционной — серверной. Потоковые серверы аккуратно выдают пакеты информации, когда они требуются проигрывателю. При нормальном ходе этого процесса пользователь должен подождать, пока происходит буферизация, а затем начинается воспроизведение всего фильма цели­ком. Потоковые серверы достаточно «умны», чтобы рассчитать полосу пропускания пользователя и предоставить тот или иной вариант мате­риала, подходящего размера.

Во Flash такое тоже возможно, но это не так-то просто — видео поток во Flash основан на принципах, схожих с реальной потоковой переда­чей, но без всякого «интеллекта». Flash попросту загружает все подряд, согласно последовательности, и воспроизводит все, что загружено. В результате мы нередко имеем воспроизведение рывками, из-за того, что Flash ожидает загрузки очередной порции материала. Мы обсудим, как можно этого избежать, но сначала давайте познакомимся поближе с проблемой «рваного» воспроизведения.

Потоковая передача без буферизации

Потоковая передача видео во Flash реализуется на монтажном столе _root (главном). Для реализации потоковой передачи в любой форме вы должны поместить ваше видео непосредственно на главном монтажном столе, а не в клипе.

В данном примере нашей целью будет потоковая передача со скоро­стью 56k.

1. Найдите короткий видеоролик (продолжительность моего — шесть секунд) и выясните частоту кадров. Если хотите использовать тот же самый файл, что и я, скачайте streaming. flaс сайта friends of ED.

2. Откройте новый фильм Flash и установите такую же частоту кадров, как в предназначенном для импорта видеоролике.

3. Выполните команду Файл > Импорт в библиотеку (File > Import to Library).

4. В появившемся диалоговом окне выберите опцию Вставить видео в документ Macromedia Flash (Embed video in Macromedia Flash document).

5. Установите параметры импорта в зависимости от детализации и под­вижности изображения в вашем ролике. Я установил параметры, ко­торые вы видите на снимке, исходя из следующих соображений:

• качество (Ouality): здесь нет особой детализации;

• интервал ключевого кадра (Keyframeinterval): подвижность уме­ренная;

• масштаб (Scale): оригинал слишком велик для модема 56k;

• соотношение кадров: мне совсем не обязательно оставлять все кадры;

• импорт аудио (Importaudio): в моем клипе нет звука.

4 — Flash MX Video

В конечном итогеу меня получился фильм размером 85 килобайт — из 22,2 мегабайтного несжатого DV — PAL фильма QuickTime. Такой резуль­тат достигнут, главным образом, благодаря пропуску каждого второго кадра, компрессии, а также уменьшению размера изображения.

Если вы использовали Другой клип, постарайтесь Добиться примерно такого же размера файла — около 100 КВ. Не импортируйте звук вмес­те с клипом — он нам сейчас не нужен, а размер файла увеличил бы очень заметно. К тому же, может проявиться разДражающий эффект «ти­канья». Разговор об ауДио нам еще преДстоит — в главах 6 и 7, так что, если интересуетесь этим вопросом, наберитесь терпения.

Напоминаю, что вы можете пере-импортировать клип или просто по­смотреть его параметры, дважды щелкнув на клипе в Библиотеке (Library):

L’υuucB<ι BcTiioiieitHoro Видео

■’ ‘ ■

Jbdlet rncv

____ И. —

CAMom Еиаеомписм\Ьа*вв Mov Отмена

IS «прела 2002 Г. 1430:18 180 м 135 Гввюапей 6 32 Сев JMit 85.2 КБ A⅝⅝⅝>T Видео

Обновить I

Икхзрт.. ⅝cntgt.. I

6. Получив клип подходящего размера, перетащите его копию из Биб­лиотеки (Library) в сцену (stage). Разрешите Flash растянуть монтаж­ный стол до длительности клипа.

Протестируйте фильм с помощью команда: Управление > Проверить фильм (Control > Test Movie) или Ctrl + Enter. Видео должно проиг­рываться быстро и гладко, без задержек — Flash загружает данные достаточно быстро, пока не идет речь о симулировании потоковой передачи.

8. Flash имеет несколько предустановленных значений ширины поло­сы пропускания, кроме того, вы можете создать новый набор пара­метров сами, с нуля. Находясь в режиме проверки фильма, выберите в меню Отладка (Debug) пункт 56К (4,7 КБ/с). Мы сейчас симулиру­ем загрузку вашего фильма через модем 56К со средней скоростью (4,7 КБ в секунду).

9. Теперь выберите команду Вид > Профили полосы (View Bandwidth Profiler). Откроется окно, а в нем — нечто, напоминающее очертания города на горизонте. На самом деле, здесь отображен размер отдель­ных кадров и другая полезная информация о вашем фильме:

4′

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

10. Выполните Вид > Показать поток (View > Show Streaming) — этой командой будет запущена симуляция загрузки нашего Flash-фильма модемом 56К. Как только вы это сделаете, вы увидите на диаграмме кадров растущую зеленую полосу:

Эта полоса показывает, сколько материала уже загружено. Малень­кая стрелочка над кадрами — индикатор воспроизведения (представь­те магнитофонную головку).

Посмотрите, как воспроизводится фильм — он стал прерывистым, «рваным». Содержание воспроизводится по мере загрузки, и Flash, воспроизведя очередную порцию, останавливается. В результате мы получаем такой вот фильм — старт-стоп-старт-стоп, совсем не этого мы хотели

Сохраните свой фильм под именем streaming. fla. Нам надо будет улуч­шить процесс загрузки и воспроизведения при помощи буфериза­ции.

Профиль полосы

Он может показаться китайской головоломкой, однако в действитель­ности профиль полосы невероятно полезен в деле рационализации заг­рузки и воспроизведения.

Так что же показывает диаграмма справа? Ничего сложного: здесь наш файл поделен на отдельные кадры, их размер и отражается на диаг­рамме; так мы можем понять, где сосредоточена основная «масса» на­шего фильма. В моем примере она распределена достаточно ровно — средний размер кадра чуть меньше 1 КБ.

Прямоугольники на диаграмме профиля полосы могут рассказать еще кое-что о моем фильме. Если помните, при импорте я установил соотно­шение кадров! :2. Это означает, что Flash после каждого кадра помеща­ет его дубликат, чтобы заполнить промежуток. Это и отражают пики и пробелы; теперь, глядя на них, мы обнаруживаем ужасную красную ли­нию (на снимке она отходит от надписи «192 В»).

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

Казалось бы, ну подумаешь, всего 1 КБ на каждый кадр. Но ведь в моем фильме 25 кадров в секунду. Простой подсчет показывает, что если на каждый кадр приходится 1 КБ, то загрузка должна происходить со скоростью 12,5 КБ в секунду. Сравните это с 4,7 КБ в секунду, которые способен обеспечить модем 56К, и сразу станет ясно, что модем не спра­вится, и мы встретимся с нашими старыми друзьями, которых зовут мистер Стоп, мистер Старт и мистер Дёрг.

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

Гаемое количество кадров (и время) для загрузки в буфер, чтобы можно было начать воспроизведение фильма, загружая тем временем осталь­ное. Значение это не всегда точное, но в первом приближении вполне подойдет.

Запишите указанное количество кадров, и мы продолжим.

Буферизация потока

Сейчас мы продемонстрируем, насколько просто во Flash MX сгладить видеопоток.

1. Откройте файл streaming. fla, созданный в предыдущем упражнении. Если вы не запомнили значение параметра предзагрузки из профиля полосы, узнайте его сейчас.

2. Вставьте новый слой — назовем его «buffer». Первый слой назовем «vid».

Первое, что нужно сделать — переместить видео материал на мон­тажном столе так, чтобы он начинался с кадра предзагрузки (указан­ного в профиле полосы).

3. Двойным щелчком выделите видеоролик на монтажном столе. Теперь перетащите его к кадру предзагрузки (в моем случае это кадр 304) и отпустите.

Теперь наш фильм будет начинаться чуть позже — мы дадим Flash Player время на загрузку.

4. Щелкните на кадре 1 слоя «buffer» и, воспользовавшись инструмен­том Текст (Text), изобразите какую-нибудь надпись, информирую­щую о предзагрузке, буферизации, ну, например…

Яри Использовании Flash-видео в Сети хорошо бы занять пользователя чем-нибудь на время буферизации вашего фильма. Это может быть не­кая анимация (но не настолько сложная, что для нее тоже понадобится предзагрузчик — предзагрузчикпредзагрузки!),какой-то текст, или иг­рушка, если вы хорошо знакомы с ActionScript.

i о vid • • и
wos ■,—
ɪl' ⅛i'∙'u∣, ⅞l'√√i1 »* 1стл1р» [ uu∙
,4_ i (⅛ scene 1
_

Buffering video! please wait…

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

5. Найдите на монтажном столе начало фильма (у меня это по-прежне­му кадр 304). В слое «buffer» выделите кадр, предшествующий началу фильма и вставьте пустой ключевой кадр при помоЩИ Вставка > Пу­стой ключевой кадр (Insert > Blank keyframe) или F7. Теперь, если вы протащите курсор воспроизведения («магнитофонная головка» — красный прямоугольник вверху) по этому месту, то увидите четкий переход.

6. Протестируйте фильм с помощью Управление > Проверить фильм (Control > Test movie) и откройте окно профиля полосы, если оно не открыто.

7. Как видите, весь наш материал уже загружен — проследите за симу­ляцией потока, Вид > Показать поток (View > Show Streaming).

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

Значение параметра Предзагрузка (Preload), указанное в Профиле полосы, порой не очень-то соответствует действительности. Лучшее, что тут можно сделать, это проследить за профилем полосы в процес­се симуляции потока и попытаться вычислить, сколько нужно допол­нительного времени. Если, скажем, нужна лишняя секунда буфери­зации, тогда добавляем секундное число кадров и сдвигаем видео.

Я хочу подчеркнуть, что нельзя заставлять пользователя ждать боль­ше, чем это действительно необходимо. Не забудьте, что данный при­мер мы оптимизировали для пользователей с модемом 56k, а для кли­ентов с более быстрым соединением такая буферизация будет излишней. Чтобы избежать такого несоответствия, вы можете создать несколько разных SWF-файлов для различных пользователей, пони­жая или повышая качество, размер и буферизацию для той или иной ширины полосы.

А теперь речь пойдет об управлении видеоклипами и некоторых трю­ках монтажного стола.

Автономные видеоклипы

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

Чтобы избежать этого, нам нужно преобразовать наш видеоматери­ал в клип (фильм). Сделать это несложно, но тут тоже есть подводный камень — после такого преобразования мы лишимся возможности по­токовой передачи видео. Любой клип во Flash должен быть загружен полностью, прежде чем начнется воспроизведение его содержимого. Впрочем, вы можете, конечно, определять общую стратегию загрузки клипов. Клипы загружаются во Flash в том порядке, в котором они рас­положены на основном монтажном столе (например, клип, размещен­ный в кадре будет полностью загружен, прежде чем начнется загруз­ка клипа, находящегося в кадре 2).

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

А сейчас давайте посмотрим, как сделать наше видео автономным и универсальным.

Видео-стена

Сейчас мы создадим эффект, напоминающий так называемые видео­стенки, которые вам наверняка приходилось видеть — в торговых пас­сажах, на выставках и зрелищных мероприятиях.

1. Скачайте и откройте файл halfpipe. fla. Этот файл содержит только внедренный видео файл в Библиотеке и ничего более. В предыдущих главах вы узнали предостаточно об импортировании, поэтому, если хотите использовать собственный видео материал, пожалуйста — им­портируйте его в Библиотеку (Library) нового фильма Flash.

Взгляните, что у нас должно получиться — одновременно воспроиз­водится несколько копий одного и того же клипа, причем не синх­ронно, а со сдвигом на один кадр.

2. Первым делом нам нужно преобразовать наш видеоклип в клип Flash. Создайте новый клип при помощи команды Вставить > Новый сим­вол (Insert > News’^bol). Назовем его «halfpipevideo»:

3. Вы теперь находитесь в режиме редактирования символа. Перета­щите копию halfpipe. mov из Библиотеки (Library) в клип-символ. В появившемся диалоговом окне нажмите кнопку ОК.

4. Отцентрируйте видео в сцене, пользуясь панелью Выровнять (Align) — она открывается нажатием клавиш Ctrl + К. Убедитесь, что в панели выравнивания установлен режим По сцене (То stage), как показано на снимке.

5. Нажав кнопку Сцена 1 (Scene l), расположенную чуть ниже монтаж­ного стола, вернитесь к основному монтажному столу. Здесь мы бу­дем творить наше маленькое волшебство.

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

7. Теперь вставьте ключевой кадр в кадр 2 слоя 2, кадр 3 слоя 3 и так далее, до кадра 12 сдоя 12. Эти кадры создадут аккуратный ступенча­тый эффект, в котором каждый клип сдвинут относительно другого на один кадр:

A>

‘t’ ‘ ‘ ⅛’ ‘ ‘ ‘ ⅛

T 1 ɪ ɪ — < t t I 1 Lr

■ElE&SiDBEEl

О__________________ C

•в

P Layetll ♦ » □

О t□ιl

__ P..⅛⅛≈10_ • • □

О □Uj

___ P Layw 9 « И

"••д

……….. P Layo 9 • • ■

О θl∙

P Leyet 7 • • □

О р|« I

P LeyetS ♦ • □

О

______ P Layet 5 ______________ ɛ ♦ □

О ιαk

ZZZ

________ P Layet <………………… • • ■

О,£„..ZZ. l

‘ Ptayet3_________________ ♦ « □

О □u . 1

___ P Layet 2 • • □

Ol.

P Leyetl • ♦ ®

. 1

__

8. Перетащите копию клипа-символа «halfpipevideo» в кадр 1 слоя 1. Поместите его в левый верхний угол сцены:

9. Перетащите копию клипа «halfpipe video» в кадр 2 слоя 2 и помести­те его рядом с предыдущим. Не старайтесь сейчас поместить его вплотную, поместите пока приблизительно. Повторяйте то же самое, пока не получится первый ряд из шести копий, как здесь:

10. Теперь давайте их подравняем, расположим на равном расстоянии и прижмем к верхнему краю. Выделите все клипы и выстройте их с по­мощью кнопок панели Выровнять (Align) — Расст. по горизонтали (Space evenly horizontally и По верх, краю (Align top edge), только убе­дитесь сначала, что панель находится в режиме выравнивания По сце­не (То Stage). Теперь клипы расположены равномерно и аккуратно.

■ выровнять,учит, размер: масштаб
smifei ⅛a
,i р асст. по горизонгали|

а.>роаиять:-«

Irei: ⅛ MiL ¾B! ⅜Q; Распределить:

SiSiSl

 
выровнять
-τtbreαmaarerereureιrereremb-o^"'^
^ΣΓl⅞ 'i ⅛j s t-mno верх, краю : учит, размер: мас
isl jαifi9∣ =s

1 l. Teπepb — остальные шесть слоев. Перетащите клипы в кадры 7 — 12 соответствующих слоев и расположите их под верхним рядом:

12. Выделите все клипы второго ряда и выровняйте их, нажав кнопку Расст. по горизонтали (Space evenly horizontally на панели Выровнять (Align). He снимая выделения, введите значение «68,5» в поле Y инс­пектора Параметры (Property), чтобы клипы расположились ровной линией непосредственно под вторым рядом:

13. Растяните каждый клип на монтажном столе до кадра 60.

14. Прекрасно, теперь самое время протестировать фильм — Управле­ние > Проверить фильм (Control > Test Movie). Полагаю, вы замети­ли, что клип зациклен, но как-то неправильно. Нужно кое-что изме­нить — остановить клип в первом окошке, чтобы в остальных он продолжался.

15. Создайте новый слой поверх остальных и назовите его «actions».

16. В кадр 20 слоя «actions» вставьте ключевой кадр. Вообще-то его мож­но поместить в любой кадр, начиная с 12, но мы возьмем небольшой отступ, чтобы не вносить путаницу на монтажный стол. Теперь выде­лите новый ключевой кадр и командой Окно > Действия (Window > Actions) откройте окно Действия (Actions):

17. В области скрипта введите:

Stop();

18. Снова проверьте фильм. Теперь намного лучше, правда?

Я в своей версии добавил под видео-окошками простенькую графи­ку, как вы можете видеть на снимках (или в окончательном файле — halfpipe_final. fla) , а вы можете заполнить нижнюю половину сцены чем хотите.

19. Сохраните фильм. Мы, пожалуй, найдем ему применение в следую­щей главе… эй, не подглядывать!

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

А теперь — несложные манипуляции с монтажным столом плюс не­множко ActionScript.

Манипуляции с монтажными столами

Думаю, обычное воспроизведение видео с нормальной скоростью уже несколько поднадоело, поэтому давайте изучим что-нибудь еще. По­скольку клипы-символы видео мало чем отличаются от обычных клипов Flash, мы можем забавляться с их монтажными столами при помощи скриптов. Например, можем велеть им показать определенный кадр, или перейти на кадр назад, или на пять кадров вперед.

Давайте создадим блок управления, или контроллер, видео, позволя­ющий выполнять следующие действия:

• воспроизводить / останавливать;

• перематывать вперед / назад;

• переходить на один кадр вперед / назад;

• переходить к случайному кадру.

Таким образом, у нас получится нечто похожее на проигрыватели QuickTime или Windows Media, или на видеоплейер:

Кнопка «пауза»

Начнем с создания кнопки «пауза».

1. Скачайте и откройте файл controller. f 1а. Как и в прошлом упражне­нии, этот файл содержит единственный видеоклип и ничего больше.

Видеоклип немаленький, с небольшим сжатием. Если бы мы собира­лись использовать его для не-широкополосного веб-сайта, понадоби­лось бы большее сжатие, но ведь нам он нужен лишь для проверки нашего контроллера.

2. С помощью команды Вставить > Новый символ (Insert > New Symbol) создайте новый клип, пусть он называется «vcr». На монтажный стол «vcr» перетащите копию клипа cross_ramps. mov. В ответ на запрос о расширении монтажного стола нажмите кнопку Да (Yes).

3. Отцентрируйте видео в клипе с помощью инструментальной панели Выровнять (Align). Вставьте новый слой, а в нем — ключевой кадр параллельно последнему кадру слоя видео (у меня это кадр 117).

4. Щелкните на этом новом ключевом кадре и откройте панель Действия (Actions) (Окно > Действия (Window > Actions)). Введите действие остановки:

Stop();

5. Клип-символ видео готов, поэтому вернитесь на главный монтажный стол и перетащите из Библиотеки (Library) копию клипа «vcr». От­центрируйте клип в сцене и дайте ему ссылочное имя «vid » в инспек­торе Параметры (Property):

Ссылочное имяЭто уникальный идентификатор клипа или иного объек­та во Flash. Дав Клипу уникальное имя, мы сможем впоследствии ссы­Латься на него в ActionScript.

6. Наше видео готово к манипуляциям над ним при помощи еще не со­зданных кнопок. Переименуйте оригинальный слой в «video» и со­здайте новый слой под названием «buttons» (кнопки).

7. В слое «buttons» изобразите красный квадратик с черной обводкой (с помощью инструмента Прямоугольник (Rectangle)), поместив его немного ниже нашего видео. Это будет кнопка паузы, и она положит начало нашему кнопочному царству.

8. Выделите квадратик вместе с обводкой и преобразуйте его (F8) в гра­фический (graphic) символ под названием «button» (кнопка).

9. Этот символ мы сможем использовать для всех наших кнопок. Сна­чала давайте создадим кнопку паузы. Выполните Вставить > Новый символ (Insert > New Symbol). Создайте символ типа Кнопка (Button) с именем «pause button».

10. На монтажный стол «pause button» перетащите копию графического символа кнопки и отцентрируйте его:

О других кнопках пока не беспокойтесь, их созданием мы еще успе­ем заняться.

11. Вставьте на монтажный стол кнопки новый слой под названием «detail» (отделка). Здесь изобразите универсальное обозначение па­узы:

12. Вернитесь к основному монтажному столу. У вас должно получиться следующее:

13. Нам понадобится для кнопки маленький кусочек AcUonScript. Выде­лите кнопку паузы и откройте панель Действия (Actions). Введите следующий программный код ActionScript:

On (release) { root. vid. stop ();

}

Этот скрипт означает: «когда эта кнопка будет нажата и отпущена… остановить видео на основном монтажном столе». _root — это ссыл­ка на главный монтажный стол, a vid — ссылочное имя, которое мы ранее дали видеоклипу.

14. Теперь проверьте фильм. Начнется воспроизведение видео, когда вы нажмете и отпустите кнопку паузы, воспроизведение остановится.

К сожалению, на данный момент это единственная функция. Нам этого явно недостаточно, надо что-то делать…

Кнопка воспроизведения

Теперь нам нужна кнопка воспроизведения.

1. Щелкните правой кнопкой мыши (для Макинтошей — Ctrl + щелчок) на «pause button» в Библиотеке, и выберите в контекстном меню Дуб­лировать (Duplicate):

2. В появившемся диалоговом окне введите «play button» в качестве име­ни и нажмите кнопку ОК. В Библиотеке двойным щелчком откройте только что созданную кнопку для редактирования.

3. В слое «detail» удалите символ паузы и изобразите знак воспроизве­дения:

4. Вернувшись на основной монтажный стол, перетащите сюда копию кнопки воспроизведения из Библиотеки. Поместите ее рядышком с кнопкой паузы:

5. Выделив кнопку «play button», откройте панель Действия (Actions). Вставьте следующий код:

On (release) {

_root. vid. play ();

I

Похоже на код для кнопки «пауза», но есть маленькое отличие. Вме­сто stop здесь play. Все просто, правда?

6. Протестируйте фильм и обе кнопки. Все в порядке? Идем дальше.

Нужно добавить остальные кнопки — на кадр вперед («frame forward») и назад («frame back»), быстрая перемотка вперед («fast forward») и назад («fast rewind»), а также случайный кадр («random»).

7. Самостоятельно создайте эти кнопки тем же способом, что и кнопку воспроизведения:

• сдублируйте кнопку паузы;

• дайте соответствующее имя;

• двойным щелчком откройте новую кнопку дляредактирования;

• измените вид кнопки в слое «detail»;

• перетащите копию кнопки на основную сцену в слой кнопок («buttons»).

■ ■ ■■ ■
■■кшвганявнмнннввя
 1Вот как выглядят мои кнопки:

Fast forward button fast rewind button f

Frame back button ⅛*

Frame forward button f

Pause button

Play button

Random button f

Если с этим покончено, нужно добавить скрипты, чтобы кнопки за­работали. Давайте начнем с кнопок перехода на кадр вперед и назад.

9. Выделите на основной сцене кнопку перехода на кадр вперед и от­кройте панель Действия (Actions). Введите следующий код:

On (release) {

Root. vid. nextFrame();

}

Та же самая схема, что и в предыдущих образчиках кода, только ис­пользован другой способ манипулирования видеоклипом. Метод nextFrame не нуждается в разъяснениях — он указывает нашему ви­део (vid) перейти к следующему кадру. Таким образом, при каждом нажатии на эту кнопку видео будет продвигаться вперед на один кадр.

10. Выделите кнопку перехода на кадр назад и в панели Действия введите:

On (release) {

Root. vid. prevFrame();

1

Снова знакомый код — за исключением метода prevFrame: это всего лишь сокращение от «previous frame» — предыдущий кадр. Совер­шается, естественно, переход на один кадр назад.

11. Теперь у нас имеются кнопки покадрового перехода. Просто, а? Про­тестируйте фильм, и продолжим. Только не забудьте, что на данный момент работают только четыре кнопки.

12. Последняя из наших кнопок — «randombutton» — иллюстрирует воз­можность перехода к любому кадру видеоклипа. Выделите в сцене кнопку перехода к случайному кадру и введите следующий код в па­нели Действия:

On (release) {

Root. vid. gotoAndStop (Math. round (Math. random ()*116));

}

Нуда, это выглядит немного посложнее, но это просто из-за ужасно­го количества скобок. Этот код попросту говорит: «Когда пользова­тель нажмет на кнопку, переместить курсор воспроизведения к слу­чайно выбранному кадру с номером от 1 до 116».

116 — это не магическое число, это количество кадров в использо­ванном мною видеоклипе! Функция Math. round возвращает округ­ленное до целого значение числа — в данном случае случайного чис­ла от 0 до 1, умноженного на 116.

13. Еще раз протестируйте фильм. Нажав на кнопку «random», вы волшеб­ным образом переместитесь к случайно взятому кадру видеоклипа.

А теперь возьмемся за две оставшиеся кнопки быстрой перемотки.

Кнопки перемотки вперед и назад

Многие владельцы старых и дешевых видеомагнитофонов знают, како­во это — подолгу, до боли в пальце, удерживать нажатой кнопку пере­мотки, чтобы найти нужное место на кассете.

Может, кому-то это покажется тривиальным, но я скажу: создавая любое приложение, очень важно продумать, каким образом должна ра­ботать та или иная функция. Так, я решил, что здесь уместен как раз метод «больного пальца», требующий, чтобы для быстрой перемотки пользователь удерживал нажатой кнопку мыши, — ведь клип-to корот­кий, и если использовать обычный щелчок мышью, то весь клип может быть перемотан прежде, чем пользователь успеет остановить его.

1 — Выделите кнопку перемотки вперед и откройте ее Действия (Actions).

Введите следующий скрипт:

On (press) {

_root. ffwd = true;

}

On (release) {

_Root. ffwd = false;

}

Данный код состоит из двух частей, соответствующих двум действи­ям: press (нажать) и release (отпустить). Действие press присваивает флагу ffwd значение «истина» (true), разрешая быструю перемотку, а действие release (когда пользователь отпускает кнопку мыши) отклю­чает перемотку. А где же проверяется флаг? Эта проверка будет про­исходить в самом видеоклипе.

2. Выделите видео и добавьте следующие действия:

OnClipEvent (enterFrame) { if ( root. ffwd == true) {

Frame = this, currentframe +5; this. gotoAndStop (frame);

}

}

На сей раз мы вставили код непосредственно в клип. Если вам пока­залось, что смысл его трудно постигнуть, не паникуйте. Давайте раз­берем его по шагам. Если перевести этот код на простой язык, то он будет выглядеть так:

• в каждом кадре фильма Flash

• проверять флаг, и если его значение — «истина», то:

• запомнить сумму номера текущего кадра видео + 5

• переместить указатель воспроизведения к кадру, номер которого равен запомненному числу.

Если же флаг — не истина, все действия, заключенные в фигурные скобки после оператора if, игнорируются. Здесь frame — переменная, контейнер для хранения информации, которая впоследствии может быть использована во Flash. Вероятно, вы заметили, что моя перемот­ка несколько быстрее, чем обычно, ведь проходится 5 кадров за раз.

3. Проверьте фильм. При нажатии кнопки перемотки фильм должен ус­коряться, но только пока вы не отпустите кнопку мыши. Если хотите снизить скорость перемотки, достаточно просто заменить в преды­дущем скрипте «5» на другое, меньшее, число.

4. Теперь так же обойдемся с кнопкой перемотки назад («rewind button»). Выделите ее и введите следующий код:

On (press) {

Root. frwd = true;

}

On (release) {

Joot, frwd = false;

}

Как видите, действия те же самые, только имя флага другое.

5. Выделите в сцене видеоклип и вставьте перед последней фигурной скобкой следующий код:

If (joot. frwd == true) {

Frame = ⅛is. currentframe -5; this. gotoAndStop (frame);

}

Таким образом, полностью код для видеоклипа должен выглядеть так:

OnClipEvent (enterFrame) { if (_ root. ffwd == true) (

Frame = this. Currentframe +5; this. gotoAndStop (frame);

}

If (joot. frwd == true) {

Frame = this. currentframe -5; this. gotoAndStop (frame);

}

}

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

6. Прежде, чем закрыть панель Действия (Actions), добавьте в начало предыдущего кода еще пару строк:

OnClipEvent (load) {
this. stop();

}

Это предотвратит проигрывание клипа сразу после его загрузки во Flash. To есть, как только Flash-фильм начнется, vid будет поставлен на паузу на кадре после чего пользователь сможет управлять им по своему усмотрению.

7. Теперь проверьте фильм. Как видим, кнопка перемотки вперед ра­ботает отлично, а вот с обратной перемоткой — проблемка. Перемотка происходит не так быстро, как вперед. Дело в том, что при воспроиз­ведении видео производится буферизация в память Flash Player, по­этому с переходом вперед проблем никаких, а вот назад…

Итак, наш видео-контроллер закончен, все, что осталось — это не­большая отделка. Например, окончательный вид моего контроллера (controller_final. fla) таков:

В этом упражнении мы узнали много полезных вещей о монтажных столах видеоклипов и способах манипулирования ими во Flash. Как вы видели, для этого нужно лишь немного ActionScript, ничего особенно сложного, тем более что все эти скрипты вы можете использовать по­вторно.

Главное, о чем не следует забывать, — необходимо дать вашему кли­пу-символу ссылочное имя в инспекторе Параметры (Property), а также указать ссылку на место размещения вашего клипа (в данном упражне­нии это _root — основной, или «корневой», монтажный стол).

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *