Часто задаваемые вопросы по AviSynth

Замечание: более свежая версия вопросов и ответов (FAQ) может быть найдена здесь и на сайте http://www.avisynth.org

Вопросы (В) и ответы (О) поделены на четыре раздела (Р1-Р4): общий раздел, раздел касающийся передачи кадров (frameserving), раздел касающийся фильтров и плагинов, и раздел относящийся к импорту фильтров от VirtualDub. Недавно старый материал, "касающийся AviSynth v2.06 и более старых версий", удален. Таким образом, если Вы имеете проблемы, убедитесь, что вы установили более свежую версию AviSynth.

Р1: Об AviSynth
Р2: AviSynth и передача кадров (фрейм-сервинг)
Р3: Фильтры, плагины и цветовые пространства
Р4: Импорт фильтров от VirtualDub

Р1: Об AviSynth:

В1.1: Что такое AviSynth ?
В1.2: Кто разрабатывает AviSynth ?
В1.3: Где я могу скачать последние версии AviSynth ?
В1.4: Каковы главные ошибки в этих версиях ?
В1.5: Где я могу найти документацию по AviSynth ?
В1.6: Как мне установить/де инсталлировать AviSynth ?
В1.7: Есть ли разница между версиями v1.0x, v2.0x или v2.5x ?
В1.8: Являются ли плагины, скомпилированные для v2.5x, совместимыми с v1.0x/v2.0x и наоборот ?
В1.9: Какие кодирующие программы поддерживают YV12 ?
В1.10: Как мне использовать v2.5x, если кодирующие программы не могут обрабатывать YV12 (подобно Virtualdub, TMPGEnc или CCE SP) ?
В1.11: Как мне использовать AviSynth v2.5 с Gordian Knot?
В1.12: Каковы главные преимущества обработки/кодирования в YV12 ?
В1.13: Существует ли утилита командной строки для кодирования в DivX/XviD используя AviSynth ?
В1.14: Где мне найти VCF2AVS ?
В1.15: Как мне использовать плагины, компилированные для версии v2.0x, в версии v2.5x ?
В1.16: Как мне переключаться между различными версиями AviSynth без их переустановки ?
В1.17: Как мне сделать файл AVS ?
В1.18: Где мне сохранять мои файлы AVS ?
В1.19: Как мне узнать, какой номер версии AviSynth я имею ?
В1.20: Имеет ли AviSynth GUI (графический интерфейс пользователя) ?
В1.21: Я получил сообщение "LoadPlugin: unable to load "xxx" is not an AviSynth 1.0/AviSynth 2.5 plugin" ?
В1.22: Как мне узнать, какое цветовое пространство я использую в данном месте моего скрипта ?
В1.23: Я установил AviSynth v2.5 и DivX5 (или одну из последних сборок Xvid), но все что я получил, это черный экран, когда я открываю мой avs скрипт в Virtualdub/VirtualdubMod/CCE/TMPGEnc ?
В1.24: Мой компьютер аварийно завершает работу кажется случайным образом на втором проходе любого кодировщика ?
В1.25: VirtualdubMod, WMP6.4, CCE и другие программы аварийно завершаются каждый раз при выходе (при просматривании avs файла) ?
В1.26: Существуют ли YV12 кодеки без потерь, которые я могу использовать например для захвата ?

Р2: AviSynth и передача кадров (фрейм-сервинг) :

В2.1: Что такое фрейм-сервинг и для чего он хорош ?
В2.2: Как мне использовать AviSynth как фрейм-сервер ?
В2.3: Как мне загрузить мой AVS файл в кодировщик/приложение X ?
В2.4: Проблемы при чтении AVS файлов кодировщиком X ?
В2.5: Как мне передавать кадры из Premiere/Ulead/Vegas в AviSynth ?
В2.6: При загрузке AVS файла я получил от AviSynth я получил следующее сообщение: "Script error, there is no function named "xxx (имя некоторого фильтра)"" ?
В2.7: Я получаю ошибку не распознанного исключения (unrecognized exception), пытаясь загрузить AVS файл в VirtualDub, используя dvd2avi v1.77.3 ?
В2.8: Как мне загрузить мой клип в AviSynth (видео часть)?
В2.9: Как мне загрузить мой клип в AviSynth (аудио часть)?
В2.10: Могу ли я импортировать аудио файл, отличный от файлов WAV?
В2.11: Как мне соединить видео и аудио ?
В2.12: Я получаю ошибку нераспознанного исключения в строке, где я использую DirectShowSource?

Р3: Фильтры и цветовые пространства:

В3.1: Что такое цветовые пространства RGB/YUV ?
В3.2: В каких цветовых пространстве работает AviSynth и внутренние фильтры ?
В3.3: Как мне загрузить плагин в AviSynth ?
В3.4: Где я могу скачать внешние фильтры-плагины для AviSynth v1.0x/v2.0x ?
В3.5: Где я могу скачать внешние фильтры-плагины для AviSynth v2.5x ?
В3.6: Где я могу скачать утилиты для AviSynth ?
В3.7: Как мне преобразовать клип из одного цветового пространства в другое ?
В3.8: О чем и когда я должен заботиться, если фильтр X работает в RGB- или YUV-пространстве ?
В3.9: Как мне использовать и где найти плагины "Subtitler" и "BMP Loader" ?

Р4: Импорт фильтров от VirtualDub:

В4.1: Где я могу загрузить последние версии скриптов, которые импортируют фильтры от VirtualDub ?
В4.2: Какие фильтры импортируюся ?
В4.3: Работают ли эти скрипты в цветовом пространстве RGB или YUV ?
В4.4: Кака мне самому создать такой скрипт ?
 

Р1: Об Avisynth:
 

В1.1: Что такое AviSynth ?

О: AviSynth (от AVI SYNTHesizer, то есть СИНТезатор) это фрейм-сервер (кадр-сервер, податчик кадров).
Замечательное описание дано на домашней странице Lukes:

"AviSynth это очень полезная утилита, созданная Ben Rudiak-Gould. Она обеспечивает много возможностей для объединения и фильтрации видео. Что делает AviSynth уникальным, так это факт, что он не является самостоятельной программой, которая производит выходные файлы. Вместо того, AviSynth действует как "посредник" между Вашими видео и видео-приложениями.

В своей основе, AviSynth работает подобно следующему: Во-первых, Вы создаете простой текстовый документ со специальными командами, называемый скрипт. Эти команды ссылаются на одно или более видео и на фильтры, которые Вы хотите применить к ним. Затем, Вы запускаете видео приложение (программу), например VirtualDub, и открываете файл скрипта. Тогда AviSynth начинает действовать. Он открывает видео источники, на которые вы ссылались в скрипте, выполняет указанные фильтры, и посылает выход видео приложению. Приложение, однако, не знает, что это AviSynth работает в фоне. Вместо этого, приложение думает, что оно прямо открывает фильтрованный AVI файл, который располагается на Вашем жестком диске.

Существует пять главных причин, почему вы захотели бы использовать AviSynth:

  1. Объединять несколько видео: AviSynth позволяет Вам объединить вместе любое число видео, включая сегментированные AVI. Вы можете даже выборочно объединять определенные части видео или заменять звуковые дорожки.
     
  2. Фильтровать видео: Многие фильтры видео обработки встроены в AviSynth. Например, фильтры для изменения размера, обрезки, и повышения резкости ваших видео.
     
  3. Преодолевать барьер 2 GB: AviSynth подает видео программе порциями, а не позволяет программе прямо открывать само видео. Поэтому, Вы можете обычно использовать AviSynth, чтобы открывать файлы большие чем 2 GB в программах, которые сами не поддерживают файлы такого размера.
     
  4. Открывать неподдерживаемые форматы: AviSynth может открыть почти любой тип видео, включая разные MPEG и некие Quicktime MOV. Однако, когда AviSynth поставляет видео программе, это выглядит просто подобно стандартному AVI для этой программы. Это позволяет вам открыть некие форматы видео в программах, которые их не поддерживают.
     
  5. Сохранять дисковое пространство: AviSynth генерирует видео, которое он посылает программе, на лету. Следовательно, никаких временных или промежуточных видео не создается. Тем самым, вы экономите дисковое пространство."

 

В1.2: Кто разрабатывает AviSynth ?

О: AviSynth (до версии 1.0b) разрабатывался Ben Rudiak-Gould, смотри http://math.berkeley.edu/~benrg/avisynth.html.  Бен прекратил разработку и Edwin van Eggelen продолжил, смотри . Его последний релиз есть версия v1.0b6, которая может быть найдена на домашней странице Edwin указанной выше.

Некоторые версии появлялись на AviSynth форуме, например v1.0b7a by Divine и v1.0b7d by Dividee.

В начале июля 2002 была начата вторая редакция проекта с открытым кодом на sourceforge. (В первом проекте sourceforge не случилось многого.) Последняя версия v2.57,  свежие еженедельные сборки могли быть найдены здесь.
Сейчас свежие бета версии 2.5х можно взять на sourceforge. В текущий список разработчиков входят менеджеры проекта neuron2, richardberg (админ), wilbertd (админ и составитель документации), разработчики bidoche, dolemite1, doursse, ianb1957 (админ), sh0dan (админ), squid_80, tsp42, составители документации alex_e_basta, jernst, macpaille, warpenterprises и fizick.

По поводу документации смотрите вопрос В1.5.
 

В1.3: Где я могу скачать последние версии AviSynth ?

О: Смотри В1.2. Он также содержится в пакете DVD2SVCD и на странице загрузок Doom (эти могут быть не последними версиями AviSynth).
 

В1.4: Какие главные ошибки в этих версиях ?

О: Последние версии:

v1.0b5: Dissolve не работает, BicubicResize не работает правильно.
v1.0b6: ?
v1.0b7a/v1.0b7d: Dissolve не работает.
v2.01: ?
v2.02: Layer и MergeChroma не работают.
v2.05: Loop не работает когда загружаемый клип без звука.
v2.07/v2.50: SegmentedAviSource не загружает файлы avi, если последний пустой  сегмент не удален.

v2.50 beta; AviSynthTwoFiveZeroBugs.
v2.51 beta; AviSynthTwoFiveOneBugs.
v2.52; AviSynthTwoFiveTwoBugs.

другие ошибки могут быть найдены в документации на странице проекта, смотри В1.5.
 

В1.5: Где я могу найти документацию по AviSynth ?

О: Документация по фильтрам AviSynth может быть найдена на сайте http://www.avisynth.org/, и также на странице corefilters. Для учебника по написанию скриптов AviSynth, ознакомьтесь с этим. Вы должны прочитать эти документы перед отправкой сообщений в существующий форум (но можно спрашивать, если Вы имеете трудности с их пониманием). Сейчас базовая документация (и надеюсь русская тоже!) входит в дистрибутив AviSynth.
 

В1.6: Как мне установить/деинсталлировать AviSynth ?

О: Версии v2.05 или более старые: поместите avisynth.dll в вашу системную папку system/system32 и выполните install.reg. Начиная с v2.06 AviSynth приходит с авто-инсталлятором. Также будьте уверены, что вы не имеете других версий AviSynth где-либо на вашем жестком диске, так как есть шанс, что будет зарегистрирована одна из этих версий. Удалите если необходимо. Для удаления Avisynth идите к "Программы", "AviSynth 2" и выберете "Uninstall AviSynth".
 

В1.7: Есть ли разница между версиями v1.0x, v2.0x или v2.5x ?

О: Версии v1.0x и v2.0x совместимы (главное отличие - v2.0x не содержит IPCSource, но в то же время содержит другие фильтры, которые не присутствуют в v1.0x).  Главное отличие v2.5x - то, что внутренняя структура AviSynth была изменена (поддержка YV12 и многоканальности) со следствием, что внешние плагины, скомпилированные для v1.0x или v2.0x не будут работать для v2.5x и наоборот.
 

В1.8: Являются ли плагины, скомпилированные для v2.5x, совместимыми с v1.0x/v2.0x и наоборот ?

О: Как объяснено в В1.7, это не так.  Однако возможность использовать v1.0x/v2.0x плагины в v2.5x существует, смотри В1.15.
 

В1.9: Какие кодирующие программы поддерживают YV12 ?

О: Существует несколько возможностей кодирования в DivX/XviD:

  1. Есть модифицированная версия (называемая VirtualdubMod) которая имеет поддержку YV12:  Эта модификация (авторы pulco-citron, Suiryc и Belgador) имеет поддержку OGM и AVS-просмотра.  Она может быть загружена здесь.  Для того чтобы использовать поддержку YV12 (без всяких цветовых преобразований), вы должны загрузить ваш AVI в VirtualdubMod и выбрать режим "fast recompress" (быстрое пережатие).
  2. Поддержка YV12 началась с версии v1.5.6 VirtualDub.  Для того чтобы использовать поддержку YV12 (без всяких цветовых преобразований),  Вы должны загрузить ваш AVI в VirtualdubMod и выбрать режим "fast recompress" (быстрое пережатие).
  3. Для легкой (и быстрой) поддержки YV12, Вы также можете попробовать новый компрессор, работающий в режиме командной строки: AVS2AVI, смотри также В1.21.


В1.10: Как мне использовать v2.5x, если кодирующие программы не могут обрабатывать YV12 (подобно Virtualdub, TMPGEnc или CCE SP) ?

О: Используя Virtualdub, Вы должны добавить "ConvertToYUY2" к вашему скрипту и установить YV12 декомпрессор подобный DivX5 или одну из последних сборок XviD от Koepi (XviD-04112002-1 или новее). (Уже вышел XviD 1.0.) Разрешение "fast recompress" подразумевает, что будет преобразование YV12 --> YUY2 --> YV12.  (DivX3/4 также поддерживают YV12, исключая что пользователи PIV могут испытывать аварии при кодировании в DivX4 в YV12.)

Используя TMPGEnc, Вы должны добавить строку ConvertToRGB24 к Вашему скрипту, а для CCE SP Вам необходимо добавить строку ConvertToYUY2 к Вашему скрипту, так как Windows не имеет встроенного (де)компрессора YV12.  Вы также можете установить DivX5 или одну из последних сборок XviD, которые будут декомпрессором YV12-AVI  при загрузке avi в TMPGEnc или CCE SP.
 

В1.11: Как мне использовать AviSynth v2.5 с Gordian Knot?

О:

— Если Вы используете GKnot 0.26, вы должны переименовать mpeg2dec3.dll (ту что для AviSynth v2.5) в mpeg2dec.dll, и virtualdubmod.exe в virtualdub.exe (сохранив копии оригинальных exe и dll где нибудь).

— Если Вы используете GKnot 0.27, Вы можете следовать той же процедуре что описана выше, или Вы можете ввести mpeg2dec3.dll как альтернативу mpeg2dec.dll в меню настроек и переименовать virtualdubmod.exe в virtualdub.exe.

— Но Вы также можете попробовать новый GKnot 0.28.

Если Вы используете  VirtualdubMod старее 1.4.13.1  и испытываете проблемы, загрузите последний пререлиз.
 

В1.12: Каковы главные преимущества обработки/кодирования в YV12?

О: Существуют два преимущества:


В1.13: Существует ли утилита командной строки для кодирования в DivX/XviD используя AviSynth ?

О: Как объяснено в В1.9, существует утилита командной строки, называемая AVS2AVI (и AVS2AVI графический интерфейс GUI) для кодирования в DivX/XviD используя AviSynth.
 

В1.14: Где мне найти VCF2AVS ?

О: VCF2AVS есть приятное маленькое средство для преобразования файлов типа vcf в avs. Вы можете редактировать Ваше захваченное видео в Vdub (в основном резка, обрезание и масштабирование), затем редактировать результирующий avs. Будьте внимательны, так как есть две распространяемые версии:

Попробуйте обе и посмотрите которая удовлетворяет ваши нужды :)
 

В1.15: Как мне использовать плагины, скомпилированные для версии v2.0x, в версии v2.5x ?

О: В пакете WarpSharp-package for AviSynth v2.5x Вы найдете плагин называемый "LoadPluginEx.dll". Используя более старую версию LoadPluginEx.dll, не помещайте этот плагин в Ваш каталог плагинов.  Но поместите его в отдельную папку, иначе VirtualdubMod и WMP6.4 будут аварийно завершаться на выходе.   Это позволит Вам использование плагинов v2.0x в версии v2.5x.  Пример скрипта (использующий v2.0x плагин Dust от Steady):

LoadPlugin("C:\Program Files\avisynth2_temp\plugins\LoadPluginEx.dll")
LoadPlugin("C:\Program Files\avisynth2_temp\plugins\dustv5.dll")

AviSource("D:\clip.avi").ConvertToYUY2
PixieDust(5)
 

В1.16: Как мне переключаться между различными версиями AviSynth без их переустановки ?

О:


В1.17: Как мне сделать файл AVS ?

О: Смотри В1.19 (используя текстовый редактор, который Вы предпочитаете).
 

В1.18: Где мне сохранять мои файлы AVS ?

О: Где угодно на Вашем жестком диске.
 

В1.19: Как мне узнать, какую номер версии AviSynth я имею ?

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

Version

и сохраните как файл с расширением "avs".  Сохраните например как version.avs (будьте уверены что расширение есть "avs" а не "txt").  (Такой файл сейчас поставляется с Avisynth). Откройте файл в приложении, которое может читать AVI-файлы, например WMP 6.4. Номер версии будет отображен.
 

В1.20: Имеет ли AviSynth GUI (графический интерфейс пользователя)?

О: Доступно несколько приятных средств:


В1.21: Я получил сообщение "LoadPlugin: unable to load "xxx" is not an AviSynth 1.0/AviSynth 2.5 plugin" ?

О: Вы используете плагин, который несовместим с данной версией AviSynth.  Бросьте взгляд на В1.8.
 

В1.22: Как мне узнать, какое цветовое пространство я использую в данном месте моего скрипта ?

О: Чтобы увидеть, какое цветовое пространство вы используете в данном месте Вашего скрипта, добавьте команду:

Info()

... и AviSynth даст Вам много информации о цветовом пространстве, наряду с другими вещами!
 

В1.23: Я установил AviSynth v2.5 и DivX5 (или одну из последних сборок Xvid), но все что я получил, это черный экран, когда я открываю мой avs скрипт в Virtualdub/VirtualdubMod/CCE/TMPGEnc ?

О: Ясно, видимо Ваше видео не декодируется DivX5 (или XviD).  Зайдите в Ваш windows-каталог и переименуйте файл, называемый MSYUV.DLL, или добавьте следующее в ваш файл реестра:

REGEDIT4

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32]
"VIDC.YV12"="divx.dll"

Замените "divx.dll" на "xvid.dll" для XviD.
 

В1.24: Мой компьютер аварийно завершает работу кажется случайным образом на втором проходе любого кодировщика ?

О : AviSynth (особенно v2.5x) высоко оптимизирован. Как следствие, возможно что Ваш компьютер кажется завершает работу случайным образом на втором проходе. Попытайтесь выполнив напряженный тест [Prime95] в течение часа, проверить, является ли Ваша система стабильной. Если тест не пройдет (или Ваш компьютер зависнет), убедитесь, что Ваш компьютер не разогнан и понижайте скорость Вашей системной шины шагами (скажем) пять МГц до тех пор пока аварии не прекратятся.
 

В1.25:VirtualdubMod, WMP6.4, CCE и другие программы аварийно завершаются каждый раз при выходе (при просматривании avs файла) ?

О: Эта проблема проистекает, если Вы получили старую версию LoadPluginEx.dll (или WarpSharp.dll) из пакета WarpSharp в вашей папке плагинов (автозагружаемых). Решением является переместить его вне папки плагинов и загружать его вручную. Я надеюсь, что создатель этого плагина тоже заметил это ...

В1.26: Существуют ли YV12 кодеки без потерь, которые я могу использовать например для захвата ?

О: Есть несколько таких:

  1. VBLE codec (by MarcFD): кодировщик, основанный на huffyuv 
  2. LocoCodec (by TheRealMoh):
  3. MJPEG code