Эти AviSynth скрипты находятся на странице ShareFunctions, или Вы можете скачать пакет, называемый vdub_filtersv15.zip, со ссылок на форуме или http://neuron2.net/hosted.html
Большинство фильтров. Прочитайте соответствующую документацию, имеющуюся в том же zip файле.
Только в 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 $