AviSynth: сложно о простом

(Продолжение. Начало в №32)


Начало работы

Итак, приступим к реальной работе. Для начала обсудим общий подход.

Основа работы с Avisynth - составление скриптов. Писать скрипты с нуля - занятие не для начинающих, да и необходимость в этом возникает не часто. Мы для этого воспользуемся редактором скриптов. Вначале уясним себе общую структуру скрипта. Ее легко понять из примера:

#Открываем источник с помощью функции AviSource
AviSource("E:\File.avi")

#Загружаем фильтр обработки видео:
loadplugin("C:\Program Files\AviSynth 2.5\plugins\degrainmedian.dll")

#задаем параметры обработки для фильтра
DeGrainMedian(limitY= 2,limitUV=3,mode=1)

#вызываем встроенную в Avisynth функцию изменения размера кадра:
BilinearResize(512,384)

При помощи этого простенького скрипта мы обработали свое видео (File.avi) фильтром DeGrainMedian с целью подавления шумов и уменьшения размера кадра до 512x384 с помощью встроенного фильтра BilinearResize. Сохранив этот скрипт как текстовый файл с расширением *.AVS и открыв его в любой программе для работы с видео, мы получим несжатый поток видео, пропущенный через фильтр шумоподавления с разрешением 512х384.

Если пересказать любой скрипт "своими словами", то он независимо от сложности будет содержать несколько основных этапов обработки:

  1. Открытие источников (это может быть видео или аудио в различных форматах, но в данном случае контейнер AVI).
  2. Загрузка необходимых фильтров (это могут быть фильтры, написанные специально для "Ависинт" или VirtualDUB).
  3. Указание желаемых параметров для загруженных фильтров.

Как видите, все достаточно просто! Сложность обычно представляет синтаксис, т.к. у каждого фильтра есть свои команды и параметры, и ошибки недопустимы. Но для большинства фильтров есть подробное описание в справке Avisynth (главное, не забудьте выбрать ее русскоязычный вариант при установке). Если же там его не окажется - как правило, описание идет вместе с самим фильтром. Более того, почти всегда, помимо параметров, есть примеры использования, и вам не придется настраивать все с нуля - для начала вполне достаточно изменить приведенные примеры "под себя" и посмотреть, что получится. Что же касается основных команд и встроенных фильтров самого Avisynth, вы можете воспользоваться одним из редакторов AVS скриптов. Я предпочитаю AVSEdit, так как он имеет понятный интерфейс и довольно удобен для быстрого создания шаблона скрипта. Недостаток его (как и многих других подобных редакторов) в том, что он довольно "тормозной" из-за использования платформы NET. Но некоторая задумчивость раздражает только при запуске программы, а в остальном от этих программ и не требуется фантастическое быстродействие.

Как было сказано в предыдущей статье (№32, 2006 год), при всем богатстве возможностей Avisynth лишен какого бы то ни было графического интерфейса. К счастью, этот недостаток нельзя назвать непреодолимым. Мы помним, что у редактора VirtualDUB очень удобный интерфейс. Вот и воспользуемся им в наших целях. Скажу сразу, что лучше всего использовать VirtualDubMod, нежели просто VirtualDUB. Причина проста - в VirtualDubMod есть встроенный редактор скриптов, который позволит значительно упростить некоторые рутинные операции. Вызывается редактор скриптов (Script Editor) Tools-Script Editor. При первом запуске редактора скриптов нажмите сочетание клавиш "Ctrl+1". Таким образом, вы переключите редактор в режим работы со скриптами Avisynth и разблокируете необходимые нам пункты в меню Edit.

Очень распространенной задачей монтажа является выбирание нужных частей видеоклипа и вырезание ненужных. В AviSynth вырезание производится командой TRIM (начало, конец). Понятное дело, что для выбора нужных фрагментов не обойтись без визуального контроля. Удобна следующая методика: щелчком на маркировочные стрелки выделяем нужную часть клипа в окне просмотра VirtualDubMod (как описано в многочисленных руководствах по VitrualDub), а затем в окне редактора скриптов используем команду меню Edit->Import Trim With Range для вставки выделенного интервала в виде команд TRIM в то место строки, где стоит курсор (это удобно, если нужно отрезать края). Либо наоборот, в окне просмотра VirtualDubMod выделяем и удаляем все ненужные отрезки (клавишей DEL) и затем в окне редактора скриптов используем команду меню Import Frameset as Trims для вставки набора нужных кадров без удаленных отрезков (это удобно, если их много). Далее вы можете продолжить написание скрипта в редакторе VirtualDubMod, благо, в нем предусмотрена подсветка синтаксиса.

Крайне полезной возможностью встроенного редактора DubMod'а является автоматическое формирование обрезки кадра Crop, значения формируются в зависимости от примененной вами обрезки (Cropping) выходного видео в окне VirtualDubMod. Для визуального определения обрезки кадра можно воспользоваться встроенным фильтром VirtualDub null transform. После указания границ обрезки в редакторе скриптов достаточно нажать "Ctrl+Shift-C" либо через меню - Edit- Insert Crop. Из своего опыта могу сказать, что операции TRIM и Crop приходится делать почти всегда при простом (и не очень) монтаже, и их автоматизация здорово облегчает работу. Для начала штатный редактор DubMod'а можно использовать только для облегчения этих двух операций, все остальное (добавление источников, плагинов, настройка параметров и пр.) можно делать в другом редакторе, например, в AVSEdit - это позволит затрачивать на написание большинства скриптов 5-10 минут! Ведь через некоторое время вам уже не придется писать их с нуля, достаточно будет подправить уже имеющийся скрипт.

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

(Продолжение следует)

Андрей АЧИНОВИЧ,
minhex@gmail.com


Ссылки в тему:

  1. www.avisynth.org.ru - страница русских ресурсов AviSynth. Содержит постоянно обновляемую русскую справку, множество прекрасных фильтров.
  2. www.avisynth.org.ru/warpenterprises-rus.html - большая коллекция фильтров с русским описанием и прямыми ссылками для скачивания.
  3. virtualdubmod.sf.net - официальная страница VirtualDubMod.
Версия для печатиВерсия для печати

Номер: 

51 за 2006 год

Рубрика: 

Multimedia
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!