A
 
AddBorders
AddBorders(clip,left,top,right,bottom)

AddBorders добавляет чёрные границы по краям изображения, которые имеют указанную ширину (в пикселях). Пространство цвета YUY2 хранит цветовую информацию для двух пикселей по горизонтали, таким образом, работая в режиме YUY2, left и right должны быть чётными.

 

Помните, что многие алгоритмы сжатия с потерями плохо работают с одноцветными границами, если их размер не кратен размеру блока (16 пикселов для MPEG)

 

Вы можете использовать этот фильтр в комбинации с Crop для смещения изображения без изменения размера кадра. К примеру:

# Сместить 352x240 изображение на 2 пикселя вправо
Crop(0,0,350,240).AddBorders(2,0,0,0)

AlignedSplice / UnalignedSplice
AlignedSplice(clip1,clip2[,...])
UnalignedSplice(clip1,clip2[,...])

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

 

Вы должны использовать UnalignedSplice когда объединяемые фонограммы были исходно непрерывны - к примеру, когда вы объединяете файлы захваченные в AVI_IO. Небольшие ошибки отсчётов времени могут вести к щелчкам в звуке если вы примните AlignedSplice в такой ситуации.

 

Скриптовый язык AVISynth предоставляет + и ++ как синонимы для UnalignedSplice и AlignedSplice соответственно

 
Пример 1:
# Объединить сегментированный файл захвата для формирования цельного клипа
UnalignedSplice(AVISource("capture1.avi"), AVISource("capture2.avi"), AVISource("capture3.avi"))
# или: AVISource("capture1.avi") + AVISource("capture2.avi") + AVISource("capture3.avi")
 
Пример 2:
# Извлечь три сцены из клипа и объединить их вместе в новом порядке
AVISource("video.avi")
edited_video = Trim(2000,2500) ++ Trim(3000,3500) ++ Trim(1000,1500)

Amplify / AmplifydB
Amplify(clip,amount)
Amplify(clip,left,right)
AmplifydB(clip,amount)
AmplifydB(clip,left,right)

Команда Amplify умножает отсчёты аудио-выборки на amount. Вы можете задавать различные коэффициенты для двух стереоканалов (left и right). AmplifydB тоже самое, исключая то, что значение задаётся в dB. Вы можете использовать отрицательные значения (или масштабный коэффициент от 0 до 1) для уменьшения громкости. Отрицательный масштабный коэффициент сдвинет фазу на 180°.

По ходу процесса отсчёты аудио-выборке конвертируются в 16 бит.


Animate
Animate(start-frame,end-frame,"filter",start-args,end-args)

Animate это мета-фильтр, который вычисляет свой параметр filter с непрерывно изменяемыми аргументами. В кадре start-frame и ранее, фильтр вычисляется с аргументами заданными в start-args. В кадре end-frame и позднее, фильтр вычисляется с аргументами заданными в end-args. В середине, аргументы линейно интерполируются для гладкого перехода.

 

Аргумент filter должен быть заключён в символы цитирования, и два вложенных списка аргументов не заключены в скобки. Строки и видео-клипы не могут интерполироваться, и значит должны совпадать в обоих списках аргументов. Вы не можете использовать запись в стиле ООП или предполагать last в этом filter, даже если обычно filter позволяет такое в своих аргументах.

 

Фильтр некорректно обрабатывает изменение звуковой дорожки, так что не рекомендуется применять его с фильтрами(filter) которые её изменяют. И во имя неба не давайте начальных и конечных параметров приводящих к различным размерам кадра.

 

Аргумент filter может также быть Animate если вы хотите квадратичную, а не линейную интерполяцию, но если об этом слишком много думать, то голова может разлететься.

 

Примеры

# Сделать скроллинг для "Version" видео

ver = Version()
return Animate(0,149,"Crop",ver,0,0,64,32,ver,448,0,64,32)


# Растворить(Fade) в белое

Animate(100,200,"Levels",last,0,1,255,0,255,last,0,1,255,255,255)


# Выполнить постепенное увеличение из центра видео 320x240,
# начиная с увеличения 1:1 в кадре 100 и кончая увеличением
# 4:1 в кадре 200

Animate(100,200, "BicubicResize",last,0,0,320,240,320,240,last,120,90,80,60,320,240)


# Сделать текст "Hello, World!" увеличивающимся из центра видео 320x240

Animate(0,48,"Subtitle",last,"Hello, World!",160,120,0,99999,"Arial",last,0,"Hello, World!",25,130,0,99999,"Arial",48)

AssumeFPS
AssumeFPS(clip,new_fps[,sync_audio])

Команда AssumeFPS изменяет частоту кадров без изменения их числа (в результате видео воспроизводиться быстрее или медленнее); если sync_audio имеет значение "истина", то частота дискретизации звука также меняется необходимым образом.


AssumeFrameBased / AssumeFieldBased
AssumeFrameBased(clip)
AssumeFieldBased(clip)

AVISynth следит, является клип основанным на полях или кадрах. Если клип основан на полях, то также сохраняется соотношение каждого поля (какое оно, верхние или нижнее поле кадра). Если клип основан на кадрах, то сохраняется порядок полей в кадре (т.е. какое поле в кадре идёт первым, когда они разделяются)

 

Однако эта информация необязательно верна, так как информация о полях обычно не хранится в видео-файлах и AVISynth методы источники только предполагают её. AssumeFrameBased и AssumeFieldBased позволяют вам сказать AVISynth истинный тип клипа.

 

AssumeFrameBased выбрасывает существующую информацию и считает, что клип является основанным на кадрах, с нижним (чётным) полем первым в каждом кадре. (Метод-источник делает так). Если вы желаете верхнее поле быть первым, используйте после ComplementParity.

 

AssumeFieldBased выбрасывает существующую информацию и считает, что клип является основанным на полях, с четными полями внизу и нечётными полями вверху. Если вы хотите расположить их наоборот, используйте после ComplementParity.


AudioDub
AudioDub(video-clip,audio-clip)

AudioDub берёт видео-поток из первого аргумента, аудио-поток из второго и объединяет их в один клип. Если какай-то поток отсутствует, фильтр попробует в другом порядке, если и это не поможет он вернёт ошибку.

 

Пример:

# Загрузить сегменты захваченные AVICAP32 которая пишет
# видео в несколько AVI сегментов и аудио в один WAV файл

video = AVISource("capture1.avi") + AVISource("capture2.avi")
audio = WAVSource("capture.wav")
AudioDub(video, audio)

AVISource / OpenDMLSource / AVIFileSource / WAVSource
AVISource("filename")
OpenDMLSource("filename")
AVIFileSource("filename")
WAVSource("filename")

AVISource передаётся один аргумент, являющийся именем файла в кавычках. Метод пытается считать этот файл используя либо интерфейс "Video-for-Windows" либо встроенный OpenDML код (перенесённый из VirtualDub). Фильтр способен загрузить любой файл, для которого существует AVIFile обработчик. Сюда включаются не только AVI файлы, но и WAV, AVS (скрипт AVISynth) и VDR (фрейм-сервер VirtualDub).

 

Метод AVISource определяет тип файла и вызывает наиболее соответствующий AVIFile или OpenDML обработчик. В случае, если открыть файл таким образом не удаётся, можно использовать OpenDMLSource или AVIFileSource, явно указывая какой тип обработчика использовать. Оба фильтра способны читать обычные (>2GB) AVI файлы. Но только через OpenDML можно работать с файлами большего размера, и только AVIFile открывает не AVI файлы (WAV, VDR, AVS).

 

Примеры

AVISource("d:\capture.avi") # Замечание C-программистам: обратный слеш не дублируется.
AVISource("c:/capture/00.avi") # прямой слеш также работает
AVISource("f:\soundtrack.wav") # это работает
WAVSource("f:\soundtrack.wav") # и это тоже

команды компактно
[команды компактно]
команды развёрнуто
[команды развёрнуто]
B
[B]