Часто задаваемые вопросы по AviSynth - обработка с плагинами от VirtualDub

Содержание

  1. Где я могу загрузить последние версии скриптов, которые импортируют фильтры от VirtualDub ?
  2. Какие фильтры могут быть импортированы ?
  3. Работают ли эти скрипты в цветовом пространстве RGB или YUV ?
  4. Как мне самому создать такой скрипт ?

Где я могу скачать последние версии скриптов, которые импортируют фильтры от VirtualDub ?

Эти AviSynth скрипты находятся на странице ShareFunctions, или Вы можете скачать пакет, называемый vdub_filtersv15.zip, со ссылок на форуме или http://neuron2.net/hosted.html
 

Какие фильтры могут быть импортированы ?

Большинство фильтров. Прочитайте соответствующую документацию, имеющуюся в том же zip файле.

Работают ли эти скрипты в цветовом пространстве RGB или YUV ?

Только в RGB (RGB32). Вам необходимо преобразовать формат в RGB32 перед их применением

Как мне самому создать такой скрипт ?

Пример скрипта (рассматриваемый VirtualDub фильтр может быть скачан с домашней страницы Donald Graft):

Фильтр Smart Bob от Donald Graft:

function VD_SmartBob(clip clip, bool show_motion, int threshold, bool motion_map_denoising)
{
  LoadVirtualdubPlugin("d:\bob.vdf", "_VD_SmartBob", 1)
  return clip.SeparateFields._VD_SmartBob(clip.GetParity?1:0,
    \  default(show_motion,false)?1:0, default(threshold,10),
    \  default(motion_map_denoising,true)?1:0)
}

VirtualDub плагин SmartBob импортируется командой "LoadVirtualdubPlugin". Первый ее аргумент дает путь к плагину, второй аргумент это имя плагина, которое будет использовано в скрипте, и третий аргумент называется подмотка (preroll).

Подмотка должна быть установлена равной по крайней мере числу кадров, которые необходимо  предварительной обработать фильтру, чтобы заполнить буферы и/или обновить его внутренние переменные. Этот последний аргумент используется с некоторыми фильтрами, такими как: SmartBob, SmartDeinterlace, TemporalCleaner и другими. Причина связана с архитектурой фильтрации в Virtual Dub, где будущие кадры недоступны фильтру. Dividee сообщает: "В диалоге "Add filter"  VirtualDub, некоторые фильтры имеют параметр "Lag:" (задержка) в их описании. Я думаю это есть величина, которая должна быть использована как подмотка. К несчастью, это указание не всегда присутствует. В этих случаях вы должны использовать предполагаемое значение." Конечно, Вы всегда можете спросить у автора фильтра.

На первом шаге надо найти последовательность аргументов в последней строке, где клип выводится.  Сконфигурируйте фильтр в VirtualDub и выберите "Save processing Settings" (сохранить настройки обработки) в меню "File", или нажмите Ctrl+S. Откройте созданный .vcf файл в текстовом редакторе, и вы увидите строки подобно следующим:

VirtualDub.video.filters.Add("smart bob (1.1 beta 2)");
VirtualDub.video.filters.instance[0].Config(1, 0, 10, 1);

Порядок аргументов тот же, который должен быть использован в AviSynth. Чтобы выяснить роль аргументов, поиграйте с ними в VirtualDub и контролируйте получаемые строки.

Второй шаг заключается в тестировании фильтра и сравнении его с фильтром в самом VirtualDub. Что касается собственно программирования скриптов, то Вы можете многому научиться, глядя на скрипты, уже содержащиеся в vdub_filters.avs.

Пример скрипта, который использует функцию VD_SmartBob:

Import("d:\vdub_filters.avs")
AviSource("d:\filename.avi")
ConvertToRGB32 # только если необходимо (но не повредит)
VD_SmartBob(1, 0, 10, 1)
ConvertBackToYUY2 # только если необходимо 

Пакет vdub_filtersv15.zip является немного устаревшим, так как много новых VirtualDub фильтров в нем нет. Если это как раз случай с нужным Вам фильтром VirtualDub, и вы не хотите создать функцию сами (такую как VD_SmartBob), можно также использовать следующий скрипт:

LoadVirtualdubplugin("d:\bob.vdf", "VD_SmartBob", 1)
VD_SmartBob(1, 0, 10, 1) # параметры взяты из файла .vcf

| Содержание FAQ | Общая информация | Загрузка клипов | Открытие скриптов | Общие сообщения об ошибках | Обработка различного контента | Работа с YV12 | Обработка с плагинами от Virtualdub |

$English Date: 2008/07/04 17:07:28 $
Русский перевод 19.05.2005-04.07.2008 Fizick http://bag.hotmail.ru