Avisynth Frequently Asked Questions
Remark: a more recent version can be found here and
at http://www.avisynth.org
The faq is divided into four sections: a general section, one related
to frameserving, one related to filters and plugins, and one related to
importing VirtualDub filters. Recently, the old stuff "related to AviSynth
v2.06 and older versions" is removed. Thus, if you have problems, make
sure that you install a more recent version of AviSynth.
S1: About AviSynth
S2: AviSynth and frameserving
S3: Filters, plugins and colorspaces
S4: Importing filters from VirtualDub
S1: About AviSynth:
Q1.1: What is AviSynth ?
Q1.2: Who is developing AviSynth ?
Q1.3: Where can I download the latest versions of
AviSynth ?
Q1.4: What are the main bugs in these versions ?
Q1.5: Where can I find documentation about AviSynth
?
Q1.6: How do I install/uninstall AviSynth ?
Q1.7: Is there any difference between v1.0x, v2.0x
or v2.5x ?
Q1.8: Are plugins compiled for v2.5x compatible
with v1.0x/v2.0x and vice versa ?
Q1.9: Which encoding programs support YV12 ?
Q1.10: How do I use v2.5x if the encoding programs
can't handle YV12 (like Virtualdub, TMPGEnc or CCE SP) ?
Q1.11: How do I use with AviSynth v2.5 with Gordian
Knot?
Q1.12: What are the main advantages of processing/encoding
in YV12 ?
Q1.13: Is there a command line utility for encoding
to DivX/XviD using AviSynth ?
Q1.14: Where can I find VCF2AVS ?
Q1.15: How do I use a plugin compiled for v2.0x
in v2.5x ?
Q1.16: How do I switch between differents Avisynth
versions without re-install ?
Q1.17: How do I make an AVS-file ?
Q1.18: Where do I save my AVS-file ?
Q1.19: How do I know which version number of AviSynth
I have ?
Q1.20: Does AviSynth have a GUI (graphical user
interface) ?
Q1.21: I got the message "LoadPlugin: unable to
load "xxx" is not an AviSynth 1.0/AviSynth 2.5 plugin ?
Q1.22: How do I know which colorspace I'm using
at a given place in my script ?
Q1.23: I installed AviSynth v2.5 and DivX5 (or
one of the latest Xvid builds of Koepi), all I got is a black screen when
opening my avs in Virtualdub/VirtualdubMod/CCE/TMPGEnc ?
Q1.24: My computer seems to crash at random during
a second pass in any encoder ?
Q1.25: VirtualdubMod, WMP6.4, CCE and other programs
crash every time on exit (when previewing an avs file) ?
Q1.26: Are there any lossless YV12 codecs, which
I can use for capturing for example?
S2: AviSynth and frameserving:
Q2.1: What is frameserving and what is it good for
?
Q2.2: How do I use AviSynth as a frameserver ?
Q2.3: How do I frameserve my AVS-file to encoder/application
X ?
Q2.4: Problems when Encoder X reads AVS-files ?
Q2.5: How do I frameserve from Premiere/Ulead/Vegas
to AviSynth ?
Q2.6: When frameserving I got the following message:
"Script error, there is no function named "xxx (the name of some filter)""
?
Q2.7: I get an unrecognized exception error trying
to load an avs file with VirtualDub, using dvd2avi v1.77.3 ?
Q2.8: How do I load my clip into AviSynth (video)
?
Q2.9: How do I load my clip into AviSynth (audio)
?
Q2.10: Can I import an audio file other than a
WAV-file?
Q2.11: How do I join video and audio ?
Q2.12: I get an unrecognized exception in
the line where I use DirectShowSource?
S3: Filters, plugins and colorspaces:
Q3.1: What is RGB/YUV-colorspace ?
Q3.2: In which colorspaces do AviSynth and the internal
filters work ?
Q3.3: How do I load a plugin in to AviSynth ?
Q3.4: Where can I download external filters for
AviSynth v1.0x/v2.0x ?
Q3.5: Where can I download external filters for
AviSynth v2.5x ?
Q3.6: Where can I download utilities for AviSynth
?
Q3.7: How do I convert between the colorspaces ?
Q3.8: What/when do I care when filter X works in
RGB- or YUV-space ?
Q3.9: How do I use and where can I get the "Subtitler"
and "BMP Loader" plugins ?
S4: Importing filters from VirtualDub:
Q4.1: Where can I download the latest version of
scripts which import filters from VirtualDub ?
Q4.2: Which filters are imported ?
Q4.3: Do these scripts work in RGB-space or in YUV-space
?
Q4.4: How do I make such a script ?
S1: About Avisynth:
Q1.1: What is AviSynth ?
A: AviSynth (AVI SYNTHesizer) is a frameserver. An excellent discription
is given on Lukes homepage:
"AviSynth is a very useful utility created by Ben Rudiak-Gould. It provides
many options for joining and filtering videos. What makes AviSynth unique
is the fact that it is not a stand-alone program that produces output files.
Instead, AviSynth acts as the "middle man" between your videos and video
applications.
Basically, AviSynth works like this: First, you create a simple text
document with special commands, called a script. These commands make references
to one or more videos and the filters you wish to run on them. Then, you
run a video application, such as VirtualDub, and open the script file.
This is when AviSynth takes action. It opens the videos you referenced
in the script, runs the specified filters, and feeds the output to video
application. The application, however, is not aware that AviSynth is working
in the background. Instead, the application thinks that it is directly
opening a filtered AVI file that resides on your hard drive.
There are five main reasons why you would want to use AviSynth:
-
Join Videos: AviSynth lets you join together any number of videos, including
segmented AVIs. You can even selectively join certain portions of a video
or dub soundtracks.
-
Filter Videos: Many video processing filters are built in to AviSynth.
For example, filters for resizing, cropping, and sharpening your videos.
-
Break the 2 GB Barrier: AviSynth feeds a video to a program rather than
letting the program directly open the video itself. Because of this, you
can usually use AviSynth to open files larger than 2 GB in programs that
don't natively support files of that size.
-
Open Unsupported Formats: AviSynth can open almost any type of video, including
MPEGs and certain Quicktime MOVs. However, when AviSynth feeds video to
a program, it looks just like a standard AVI to that program. This allows
you to open certain video formats in programs that normally wouldn't support
them.
-
Save Disk Space: AviSynth generates the video that it feeds to a program
on the fly. Therefore, no temporary or intermediate videos are created.
Because of this, you save disk space."
Q1.2: Who is developing AviSynth ?
A: AviSynth (up to v1.0b) is developed by Ben Rudiak-Gould, see http://math.berkeley.edu/~benrg/avisynth.html.
Ben stopped developing and Edwin van Eggelen continued, see http://www.videotools.net/uk/download.php.
His latest release is version v1.0b6 which can be found on Edwins homepage
given above.
Some versions appeared on the AviSynth forum, for example v1.0b7a
by Divine and v1.0b7d
by Dividee.
In the beginning of July 2002 there was a second revision (v2.0x) of the sourceforge
project. (In the first
sourceforge project didn't happen much.)
The most recent version is v2.5x series,
weekly builds v2.5.0-2.5.5 by leading developer Klaus Post were here.
The main developer of AviSynth v2.5.6-2.5.7 is Ian Brabham (IanB). Many other people contributed to AviSynth.
For partial list see (play) Authors.avs file.
Official memberlist at sourceforge project:
Alex_e_Basta aka alex_e_basta (doc writer), David Pierre aka bidoche (developer),
Frank Skare aka dolemite1 (developer), Vincent TORRI aka doursse (developer),
Alexander Balakhnin aka fizick (doc writer), Ian Brabham aka ianb1957 (developer, admin),
Jonathan Ernst aka jernst (doc writer), kostarum (translator), Cedric PAILLOT aka macpaille (doc writer),
Donald Graft aka neuron2 (project manager), Richard Berg aka richardberg (project manager),
Klaus Post aka sh0dan (developer, admin), Andrew Dunstan aka squid_80 (developer),
Tonny S Petersen aka tsp42 (developer), Ernst Peche aka warpenterprises (doc writer),
Wilbert Dijkhof aka wilbertd (project manager, doc writer).
AviSynth is free open source program distributed under GNU General Public License as published by
the Free Software Foundation.
Q1.3: Where can I download the latest versions
of AviSynth ?
A: See Q1.2. It is also contained in the DVD2SVCD
package and on the download page of Doom (these might be not be the newest
versions of AviSynth).
Latest versions of AviSynth can now be downloaded at sourceforge page.
Q1.4: What are the main bugs in these versions
?
A: The latest versions:
v1.0b5: Dissolve doesn't work, BicubicResize
doesn't work properly.
v1.0b6: ?
v1.0b7a/v1.0b7d: Dissolve doesn't
work.
v2.01: ?
v2.02: Layer and MergeChroma
don't work.
v2.05: Loop doesn't work when loading
a clip without sound.
v2.07/v2.50: SegmentedAviSource
doesn't load the avi's if the last empty segment isn't deleted.
v2.50 beta; AviSynthTwoFiveZeroBugs.
v2.51 beta; AviSynthTwoFiveOneBugs.
v2.52; AviSynthTwoFiveTwoBugs.
other bugs can be found in the documentation on the project page, see
Q1.5.
Q1.5: Where can I find documentation about AviSynth
?
A: Documentation about the filters of AviSynth can be found on this
site http://www.avisynth.org/, and
also on the filters page. For a tutorial on
avisynth scripting, have a look at this page.
You
should read these documents before posting to the forum (but it's OK
to post if you have trouble understanding them).
Q1.6: How do I install/uninstall AviSynth ?
A: In v2.05 or older versions: move avisynth.dll to your system/system32
directory and run install.reg. Starting from v2.06 AviSynth comes with
an auto installer. Also make sure you have no other versions of AviSynth
floating around on your harddisc, because there is a change that one of
those versions will be registered. Remove them if necessary. For uninstalling
AviSynth go to "program", "AviSynth 2" and select "Uninstall AviSynth".
Q1.7: Is there any difference between v1.0x, v2.0x
or v2.5x ?
A: The versions v1.0x and v2.0x are compatible (the main difference
is that v2.0x doesn't contain IPCSource, while it contains other filters
which are not present in v1.0x). The main difference with v2.5x is
that the internal structure of AviSynth has changed (YV12 and multichannel
support) with the consequence that external plugins compiled for v1.0x
or v2.0x will not work for v2.5x and vice versa.
Q1.8: Are plugins compiled for v2.5x compatible
with v1.0x/v2.0x and vice versa ?
A: As explained in Q1.7 that is not the case.
However it is possible to use a v1.0x/v2.0x plugin in v2.5x, see Q1.15.
Q1.9: Which encoding programs support YV12 ?
A: There are several options for encoding to DivX/XviD:
-
There is a modified version (called VirtualdubMod) which has YV12 support:
This modification (by pulco-citron, Suiryc and Belgador) has OGM and AVS-preview
support. It can be downloaded from here.
In order to use the YV12 support (without doing any color conversions)
you have to load your AVI in VirtualdubMod and select "fast recompress".
-
VirtualDub support YV12 starting from v1.5.6. In order to use the
YV12 support (without doing any color conversions) you have to load your
AVI in VirtualDub and select "fast recompress".
-
For easy (and fast) YV12 support, you can also try out the new commandline
compressor: AVS2AVI, see also Q1.21.
Q1.10: How do I use v2.5x if the encoding
programs can't handle YV12 (like Virtualdub, TMPGEnc or CCE SP) ?
A: Using Virtualdub you have to add "ConvertToYUY2"
to your script or you have to install a YV12 decompressor like DivX5 or
one of the recent XviD builds of Koepi (XviD-04112002-1
or newer). Enabling "fast recompress" implies that there will
be a YV12 --> YUY2 --> YV12 conversion. (DivX3/4 also supports YV12,
except that PIV users could experience crashes
when encoding to DivX4 in YV12.)
Using TMPGEnc you have to add the line ConvertToRGB24
to your script, and for CCE SP you need to add the line ConvertToYUY2
to your script, since Windows has no internal YV12 compressor. You
can also install DivX5 one of the recent XviD builds of Koepi (XviD-04112002-1
or newer) which will decompress the YV12-AVI for you when loading the
avi in TMPGEnc or CCE SP.
Q1.11: How do I use with AviSynth v2.5 with Gordian
Knot?
- If you are using GKnot 0.26 you have to rename mpeg2dec3.dll (the
one for AviSynth v2.5) to mpeg2dec.dll, and virtualdubmod.exe to virtualdub.exe
(keeping copies of the original exe and dll somewhere).
- If you are using GKnot 0.27 you can follow the same procedure as above,
or you can enter mpeg2dec3.dll as an alternative mpeg2dec.dll in the options
menu and rename virtualdubmod.exe to virtualdub.exe.
- But you can also try the new GKnot 0.28.
If you are using VirtualdubMod 1.4.13.1 older and experience problems,
download the latest prerelease.
Q1.12: What are the main advantages and processing/encoding
in YV12?
A: There are two advantages:
-
speed increase:
It depends entirely on the external plugins whether they will have
YV12 support or not. If they have then speed increases like 25-35
percent are expected. Of course there will only be a large speed
increase if both your source and target are in YV12, for example in DVD
to DivX/Xvid conversions.
-
no color conversions:
The color information doesn't get interpolated (so often) and thus
stays more realistic. Even if you have to do color conversions (because
your are encoding with CCE SP or TMPGEnc) you have the advantage that putting
off the YV12->YUY2 (or RGB24 for TMPGEnc) conversion until the end of the
script allows you to first IVTC or Deinterlace to create progressive frames.
But the YV12 to YUY2 conversion for progressive frames maintains more chroma
detail than it does for interlaced or field based frames.
Q1.13: Is there a command line utility for
encoding to DivX/XviD using AviSynth ?
A: As explained in Q1.9 there is a command line
utility called AVS2AVI
(and AVS2AVI GUI) for encoding to DivX/XviD using AviSynth.
Q1.14: Where can I find VCF2AVS ?
A: VCF2AVS is a nice litte tool to convert vcf to avs files. You can
edit your captures in vdub (basically cutting, cropping and resizing),
then edit the resulting avs. Be carefull since there are two versions floating
around:
-
VCF2AVS by Darksoul71 which can be found here.
-
VCF2AVS by BB (more basic) which can be found here.
Try them both and look which one fullfills your needs :)
Q1.15: How do I use a plugin compiled for v2.0x
in v2.5x ?
A: In WarpSharp-package for AviSynth v2.5x
you will find a plugin called "LoadPluginEx.dll". When using an older
version of LoadPluginEx.dll, don't move this plugin to your plugin dir.
But move it to a separate dir, otherwise VirtualdubMod and WMP6.4 will
crash on exist. This will enable you using v2.0x plugins in v2.5x.
An example script (using the v2.0x plugin Dust by 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)
Q1.16: How do I switch between differents AviSynth
versions without re-install ?
A:
-
You can use AvisynthSwitcher available here.
Versions 2.08 and 2.50 are provided, but you can easily add a new one under
AvisynthSwitcher\versions\Avisynth 2.x.x.
-
Some other ways are described here.
Q1.17: How do I make an AVS-file ?
A: See Q1.19 (using the text editor you prefer).
Q1.18: Where do I save my AVS-file ?
A: Anywhere on your harddrive.
Q1.19: How do I know which version number of
AviSynth I have ?
A: Open a text-editor, for example notepad. At the following line
Version
and save the file with the extension "avs". Save for example as
version.avs (make sure that the extension is "avs" and not "txt").
Open the file in an application which can read AVI-files, for example WMP
6.4. The version number will be displayed.
Q1.20: Does AviSynth have a GUI (graphical user
interface) ?
A: Several nice tools are available:
-
VirtualdubMod, see also Q1.9. Regarding to AviSynth
the following utilities are added:
-
'Open via AVISynth' command. This allows you to open any AviSynth compatible
video file by automatically generating a suitable script by a selectable
template.
-
AVS Editor (Hotkey Ctrl+E): Just open your AVS and under tools select "script
editor". Change something and press F5 to preview the video.
-
AvisynthEditor,
an advanced AviSynth script editor featuring syntax highlighting, auto-complete
code and per versions plugin definitions files. Here is a screenshot.
It can be found here.
Discussion can be found on Doom9.org
forum.
-
AVSGenie:
AVSGenie allows the user to select a filter from a drop down list or from
a popup menu. An editable page of parameters will then be brought into
view, with a guide to the filter and it's parameters. A video preview window
opens, showing "source" and "target" views. The source window, in
simple cases, shows output of the first line of the script, generally an
opened video file. The target window shows the output of the whole script.
In this way, effects of filters can easily be seen. The line which represents
the source window can be changed. Discussion can be found here.
-
SwiftAVS (by Snollygoster): Another
nice gui, formerly known as AviSynthesizer. [discussion]
Q1.21: I got the message "LoadPlugin: unable
to load "xxx" is not an AviSynth 1.0/AviSynth 2.5 plugin" ?
A: You are using a plugin which is not compatiable with that version
of AviSynth. Have a look at Q1.8.
Q1.22: How do I know which colorspace I'm using
at a given place in my script ?
A: To see which colorspace you are using at a given place in your script,
add:
Info
... and AviSynth will give you much information about colorspace amongst
other things!
Q1.23: I installed AviSynth v2.5 and DivX5 (or
one of the latest Xvid builds of Koepi), all I got is a black screen when
opening my avs in Virtualdub/!VirtualdubMod/CCE/TMPGEnc ?
A: Ok, apperently your video is not decompressed by DivX5 (or XviD).
Go to your windows-dir and rename a file called MSYUV.DLL, or add the following
to your registry file:
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32]
"VIDC.YV12"="divx.dll"
Replace "divx.dll" by "xvid.dll" for XviD.
Q1.24: My computer seems to crash at random during
a second pass in any encoder ?
A : AviSynth (especially v2.5x) is highly optimized. As a consequence
it is possible that your computer seems to crash at random during a second
pass. Try running the [Prime95]
stress test for an hour, to check if your system is stable. If this test
fails (or your computer locks up) make sure that your computer is not overclocked
and lower your bus speed of your processor in steps of (say) five MHz till
the crashes are gone.
Q1.25:VirtualdubMod, WMP6.4, CCE and other programs
crash every time on exit (when previewing an avs file) ?
A: This problem arises if you got an older version of LoadPluginEx.dll
(or WarpSharp.dll) of the WarpSharp package in your plugin dir. The solution
is to move it outside the plugin directory and load it manually. I hope
that the maker of this plugin also noticed this ...
Q1.26: Are there any lossless YV12 codecs, which
I can use for capturing for example?
A: There are several of them:
-
VBLE
codec (by MarcFD): an huffyuv based encoder
-
LocoCodec
(by TheRealMoh):
-
MJPEG
codec: Leaves a small logo in the right upper side of the clip.
S2: AviSynth and frameserving:
Q2.1: What is frameserving and what is it good
for ?
A: An excellent discription is found on Lukes homepage:
"Frameserving is a process by which you directly transfer video data
from one program on your computer to another. No intermediate or temporary
files are created. The program that opens the source file(s) and outputs
the video data is called the frameserver. The program that receives the
data could be any type of video application.
There are two main reasons that you would want to frameserve a video:
-
Save Disk Space:
Depending the on the frameserving application, you can usually edit/process
your video as it is being frameserved. Because frameserving produces no
intermediate files, you can use a frameserver to alter your videos without
requiring any additional disk space. For example, if you wanted to join
two video files, resize them, and feed them to another video application,
frameserving would allow you to do this without creating a large intermediate
file.
-
Increased Compatibility:
To the video application that's receiving the frameserved video, the
input looks like a relatively small, uncompressed video file. However,
the source file that the frameserver is transferring could actually be,
for example, a highly compressed MPEG-1 video. If your video application
doesn't support MPEG-1 files, it's not a problem because the application
is just receiving standard uncompressed video from the frameserver. This
feature of frameserving enables you to open certain types of files in an
application that wouldn't normally support them.
Furthermore, because the video application is being fed the source
video one frame at a time, it doesn't know anything about the file size
of the source video. Therefore, if your application has 2 GB or 4 GB limit
on input file size, it won't have any effect on your frameserved video.
You could feed 100 GB of video via a frameserver to an application limited
to 2 GB and it wouldn't cause a problem."
Q2.2: How do I use AviSynth as a frameserver ?
A: Write a script using a text editor. Load your clip (see Q2.8)
in AviSynth, do the necessary filtering and load the AVS-file in encoder/application
X (must be an encoder or application which can read AVI-files, see Q2.3
and Q2.4).
Q2.3: How do I frameserve my AVS-file to encoder/application
X ?
A:
-
Frameserving to TMPGEnc, CCE SP, VirtualDub or WMP6.4:
Just open your AVS-file in TMPGEnc, CCE SP, VirtualDub or WMP6.4 (or
whatever encoder/application you use) and have a look at Q2.4.
-
Frameserving to VFAPI:
For VFAPI you need to install the ReadAVS
plugin. Just copy ReadAVS.dll to the VFAPI reader directory and open the
reg-file ReadAVS.reg in notepad and change the corresponding path. Save
it, and doubleclick on it to merge it with your registry-file.
-
Frameserving to Premiere or Ulead:
-
For frameserving to Premiere there exists an import plugin "IM-Avisynth.prm".
The original version can be downloaded from Bens
site. A much improved version can be downloaded from the [Video Editors Kit sourceforge
page]. This works for Premiere 5.x,6.x and Pro at present. To install the import plugin move the IM-Avisynth.prm file
into your Premiere "Plug-ins" directory.
-
You can also download a program called [makeAVIS
(included in the ffvfw codec package] (this is an AVI Wrapper), [discussion].
Note that this program is included in the installation of AviSynth v2.52.
For Ulead you must use this program.
-
Frameserving to Windows Media 9 Encoder:
Download Nic's Windows Media 9 Encoder and make sure you also installed
the Windows Media 9 codec. Both can be found here.
Q2.4: Problems when Encoder X reads AVS-files ?
A:
-
Why can't I open my AVS-file in TMPGEnc (this happens in old versions
of TMPGEnc) ?
-
Install VFAPI plugin for TMPGEnc
-
Disable the direct show filters within TMPGEnc and turn off the VirtualDub
proxy before frameserving.
-
Add "ConvertToRGB24()" at the end of
your AVS-file
-
Install Huffyuv/DivX5
codec so that it can do the decompression for you when loading an AVI in
TMPGEnc.
-
Install the ReadAVS
plugin for TMPGEnc
-
CCE SP crashes when reading an AVS-file, what to do ?
-
If you're using Win2k then run CCE in WinNT4-SP5 compatibility mode.
-
If you're frameserving with AviSynth v1.0x/v2.0x put "ResampleAudio(44100)"
in your script, even if you don't have any audio in your AVS-file.
-
If you're frameserving with AviSynth v2.5x the ResampleAudio trick doesn't
work anymore because it doesn't add a silent audio stream to your video
clip. Instead make a script (called "addaudio.avsi") as described
here,
and put it in your plugin dir.
-
Encoders/players (like CCE SP v2.62/v2.64) will not read AVS-files ?
Many "new" programs do NOT use the Windows functions to read the AVI-files.
If they do NOT use those standard Windows functions the AviSynth-script
files will not work. Known programs that do NOT use those routines are
CCE SP v2.62, Windows Media Encoder vx.x. Furthermore people report problems
with Windows Media Player 7.
-
Use CCE SP v2.50 and WMP6.4 (under "Program Files" and "Windows Media Player"
you will find a file called "mplayer2.exe", this is WMP6.4). In case that
you want to use Windows Media Encoder you can use the AVI Wrapper "makeAVIS"
instead, see Q2.3. For Windows Media Encoder 9 have
a look at Q2.3.
-
If you still want to use CCE SP v2.62 you can try the following: Frameserve
to CCE SP v2.62 with VFAPI. Create an AVS script and then make a fake AVI
with VFAPI (VFAPI accepts AVS-files, see Q2.3, and
can be downloaded from Dooms site).
-
Cinemacraft says that their CCE SP v2.66 can accept AviSynth scripts.
So if you have this version you sould be safe.
-
Wrong YUY2 Codec causes colorspace errors on AviSynth scripts feeding
TMPGEnc?
Some time ago I suddenly found that feeding TMPGEnc with an AviSynth
script resulted in what looked like a colorspace conversion error; as if
the video had been badly dithered down from 24 bit to 8 bit! (..)
If you have such problems add "ConvertToRGB24"
as the last line of your script or have a look at the thread (and the suggested
solutions) colorspace
conversion errors.
Q2.5: How do I frameserve from Premiere/Ulead/Vegas
to AviSynth ?
A: You can try the AviSynth compatible frameserver (import) for [PluginPace
frameserver (by Satish Kumar)]: For frameserving from SonicFoundry
Vegas (and earlier Vegas Video/VideoFactory? versions), Adobe Premiere
or Ulead MediaStudio Pro to AviSynth. [discussion].
Q2.6: When frameserving I got the following message:
"Script error, there is no function named "xxx (the name of some filter)""
?
A: You probably installed/registered a version of AviSynth which doesn't
contain the filter. Make sure that there are no other versions floating
around on your hard disc (there's a possibility that a version will be
registered while it is not in your system directory). Check whether
the correct version is registered, see also Q1.19.
Q2.7: I get an unrecognized exception error trying
to load an avs file with VirtualDub, using dvd2avi v1.77.3 ?
A: .d2v created with dvd2avi v1.77.3 is NOT compatible with mpeg2dec.dll!
Use v1.76 instead. If you still want to use v1.77.3, make sure that you
have AviSynth v2.5 installed and mpeg2dec3.dll v1.07 (or a more recent
version).
Q2.8: How do I load my clip into AviSynth (video)
?
A: Make a script containing the lines (replace the filename and the
path of the filename):
-
AVI-files (with uncompressed WAV, or CBR/VBR MP3-audio (starting from v2.04)):
AviSource("d:\filename.avi")
or disabling the audio:
AviSource("d:\filename.avi", false)
-
AVI-files that AVISource doesn't support (for example "DV type I AVI-files"):
DirectShowSource("d:\filename.avi")
DirectShowSource("d:\filename.mpg")
-
Have a look at the Mpeg decoder plugins for AviSynth
v1.0x/v2.0x and the Mpeg decoder plugins for
AviSynth v2.5x:
Using AviSynth v2.0x/AviSynth v2.5x and MPEGdecoder.dll:
LoadPlugin("d:\MPEGdecoder.dll")
mpegsource("d:\filename.mpg")
-
MPEG2-files (extension m2p or m2v):
Have a look at the Mpeg decoder plugins for
AviSynth v1.0x/v2.0x and the Mpeg decoder
plugins for AviSynth v2.5x. Some examples:
-
Using AviSynth v2.0x and mpeg2dec.dll:
Make a DVD2AVI project file and save it (filename.d2v) and load this
clip into AviSynth:
LoadPlugin("d:\mpeg2dec.dll")
mpeg2source("d:\filename.d2v")
-
Using AviSynth v2.5x and MPEGdecoder.dll:
LoadPlugin("d:\MPEGdecoder.dll")
mpegsource("d:\filename.m2p")
or (only the video stream)
LoadPlugin("d:\MPEGdecoder.dll")
mpegsource("d:\filename.m2v", -2, "raw")
-
VOB-files:
Have a look at the Mpeg decoder plugins for
AviSynth v1.0x/v2.0x and the Mpeg decoder
plugins for AviSynth v2.5x. Some examples:
-
Using AviSynth v2.0x and mpeg2dec.dll:
Make a DVD2AVI project file and save it (filename.d2v) and load this
clip into AviSynth:
LoadPlugin("d:\mpeg2dec.dll")
mpeg2source("d:\filename.d2v")
-
Using AviSynth v2.5x and MPEGdecoder.dll:
LoadPlugin("d:\MPEGdecoder.dll")
mpegsource("d:\filename1.vob+d:\filename2.vob")
-
ATSC transport streams (extension *.trp or *.ts):
-
Using AviSynth v2.0x:
Download mpeg2dec2 and a special version of dvd2avi.
Don't forget to specify the video and audio pid's in the DVD2AVI.ini file:
LoadPlugin("d:\mpeg2dec2.dll")
mpeg2source("d:\filename.d2v")
-
Using AviSynth v2.0x/v2.5x:
Download mpeg2dec3 or mpegdecoder and a special version of dvd2avi:
LoadPlugin("d:\mpeg2dec3.dll")
mpeg2source("d:\filename.d2v")
or if you want to used mpegdecoder:
LoadPlugin("d:\mpegdecoder.dll")
mpegsource("d:\filename.d2v")
If both methods fail you can try HDTV2MPEG2
(produces non dvd compliant mpeg2 files) to create a temporary mpeg2 file
and import that in AviSynth with dvd2avi. For demuxing AAC audio: use [TSDemux].
The Moonlight Xmuxer
package has also a bunch of DirectShow filters that deal with muxing and
demuxing MPEG-1/2 TS and PVA files.
-
PVA transport streams:
You are out of luck here. AFAIK the only options are PVAStrumento
and Xmuxer.
-
d2v-files (DVD2AVI frameserver files):
LoadPlugin("d:\mpeg2dec.dll")
mpeg2source("d:\filename.d2v")
-
vdr-files (VirtualDubs frameserver files):
AVISource("d:\filename.vdr")
-
ASF-files (the framerate has to be specified, right click on the file in
windows explorer):
DirectShowSource("d:\filename.asf", fps=15)
-
tpr-files (TMPGEnc project files)
First note that the plugin GreedyHMA is proving to be a better IVTC
solution (not to mention *MUCH* easier) than TMPGEnc. So if you want to
use TMPGEnc for this get the GreedyHMA plugin (this plugin works in YUV-space).
If you still want to import a tpr-file into an AVS-file, there are two
possibilities:
-
The TMPGEnc plugin is contained in the VFAPI Plugin zip file (ends with
-vfp.zip) which can be download from Dooms site. (This method doesn't always
work, some encoders like CCE SP can't read them.)
LoadVFAPIplugin("d:\TMPGenc.vfp","TMPGsource")
TMPGsource("d:\filename.tpr")
FlipVertical
-
Import the tpr-file in VFAPI, create a fake avi and then load it into AviSynth
(note that VFAPI works in RGB-space). See also http://forum.doom9.org/showthread.php?s=&threadid=10007.
-
aup-files (AviUtl projects)
I don't know if it is possible to load it directly into AviSynth. Import
the aup-file in VFAPI, create a fake avi and then load it into AviSynth
(note that VFAPI works in RGB). See also http://forum.doom9.org/showthread.php?s=&threadid=10007.
-
QuickTime-files (see http://forum.doom9.org/showthread.php?s=&threadid=23139):
Use DirectShowSource:
DirectShowSource("d:\filename.mov")
or if that doesn't work download a plugin (can be found in Dooms download
section):
LoadVFAPIPlugin("C:\QTReader\QTReader.vfp", "QTReader")
QTReader("C:\quicktime.mov")
-
AVS-files:
Just import it at the beginning of your script:
Import("d:\filename.avs")
In v2.05 or more recent version you can use the autoplugin loading.
Just move your AVS-file in the plugindir containing the other (external)
plugins, and rename (since v.2.08, v2.5) the extension to 'avsi'. See also Q5.2.
Q2.9: How do I load my clip into AviSynth
(audio) ?
A: This can be done in several ways:
-
Using AviSource (with uncompressed WAV, CBR/VBR MP2-audio (starting from
v2.04) or CBR/VBR MP3-audio (starting from v2.04)):
AviSource("d:\filename.avi")
Starting from v2.05 you can extract audio from a AVI-file in this way:
WavSource("d:\filename.avi")
-
Use the audio decoder plugin MPASource, see Q3.4 and
Q3.5
for importing mp1/mp2/mp3 audio.
-
See DirectShowSource for downmixing
AC3 audio.
-
Put a WAV-header on your mp2
or mp3 (with Besweet) audio file and use WavSource to import the audio.
You also need ACM codecs for mp2,
and for mp3 (Radium codec, see doom's download section). Use WavSource
to load the WAV:
WavSource("d:\filename.wav")
Up to v2.07 the audio must be mono or stereo. Starting from v2.5
you can also import uncompressed multichannel audio.
Q2.10: Can I import an audio file other than
a WAV-file?
A: Yes:
-
Uncompressed audio files (that is uncompressed WAV-files) can be loaded
in all versions up to v2.03.
-
Starting from v2.04 compressed WAV-files can be loaded (currently only
MP2/MP3-files with a WAV-header).
-
Starting from v2.5 you can also load uncompressed multichannel audio.
-
Using the MPASource and AC3filter plugins you can import mp1/mp2/mp3 and
AC3 audio.
See also Q2.9.
Q2.11: How do I join video and audio ?
A: Make an avs-file containing the lines (change the filenames and paths):
video = AviSource("d:\filename1.avi")
audio = WavSource("d:\filename2.wav")
AudioDub(video, audio)
Q2.12: I get an unrecognized exception
in the line where I use DirectShowSource?
A: Have you got VobSub installed? Have a look at this thread.
Upgrade to VobSub v2.20 or higher. If someone has an explanation, please
post it in the thread.
S3: Filters and colorspaces:
Q3.1: What is RGB/YUV-colorspace ?
A: These are two different ways to represent colors: YUV colorspace
and RGB colorspace. In YUV colorspace there is one component that
represent lightness (luma) and two other components that represent color
(chroma). As long as the luma is conveyed with full detail, detail
in the chroma components can be reduced by subsampling (filtering, or averaging)
which can be done in several ways (thus there are multiple formats for
storing a picture in YUV colorspace). In RGB colorspace there are
three components, one for the amount of Red, one for the amount of Green
and one for the amount of Blue. Also in the colorspace there are
multiple formats for storing a picture which differ in the amount of samples
are used for one of the three colors.
Information can be found here: YUV
Formats, RGB Formats,
MSDN
YUV Formats and Chroma
subsampling by Charles Poyton.
As of AviSynth v1.0x/v2.0x, RGB24, RGB32, and YUY2 are supported.
In AviSynth v2.5x there is also support for YV12.
Q3.2: In which colorspaces do AviSynth and the
internal filters work ?
A: AviSynth works in RGB and YUV using the RGB32, RGB24, YUY2 and YV12
formats. Most of the internal filters work in any of these formats,
too. Which color format a filter requires, can be found [here].
Q3.3: How do I load a plugin in to AviSynth ?
A: Starting from v2.05 you can use its auto-plugin loading feature.
The path of the plugin directory is set during install. But if you want
to change it for some reason, change or add the following lines:
REGEDIT4
[HKEY_LOCAL_MACHINE\SOFTWARE\Avisynth]
"PluginDir"="c:\\program files\\avisynth 2.5\\plugins"
Change the path above if necessary and make sure you created the plugin-dir
as well. Save it as install_autoplugin.reg, and merge it to your registry
file by right-clicking on it in your explorer. Finally move all your plugins/script-functions
into the plugin directory. If you want to load plugins manually, use "LoadPlugin".
An example script:
LoadPlugin("d:\mpeg2dec.dll")
mpeg2source("d:\filename.d2v")
Q3.4: Where can I download external filters for
AviSynth v1.0x/v2.0x ?
A: Most of them can be found in the AviSynth section at Doom9. But below
you will find links to most of them. If you know of a plugin which is missing,
please feel free to add it to the list using the "Edit this document" link
to the left. Most of these plugins work in YUY2. If you can't find the
plugin (the attachments are still disabled), you can download the plugins
at [WarpEnterprises]
homepage.
Deinterlacing & Pulldown Removal:
All PAL, NTSC, and SECAM video is interlaced, which means that only
every other line is broadcast at each refresh interval. Deinterlacing
filters let you take care of any problems caused by this. IVTC (inverse
telecine, aka pulldown removal) filters undo the telecine process, which
comes from differences between the timing of your video and its original
source.
-
Decomb Filter package (by Donald
Graft): This package of plugin functions for AviSynth provides the
means for removing combing artifacts from telecined progressive streams,
interlaced streams, and mixtures thereof. Functions can be combined to
implement inverse telecine for both NTSC and PAL streams. [YUY2]
-
ViewFields/UnViewFields
(by Simon Walters): ViewFields and UnViewFields are a complementary
pair of filters to display and identify top and bottom fields from an interlaced
source. [YUY2]
-
GreedyHMA plugin (by Tom
Barry): DScaler's Greedy/HM algorithm code to perform pulldown matching,
filtering, and video deinterlacing. [YUY2]
-
Motion
compensated deinterlace filter "TomsMoComp" (by Tom Barry): This filter
uses motion compensation and adaptive processing to deinterlace video source
(not for NTSC film). [YUY2]
-
SmoothDeinterlacer
(by Gunnar Thalin, ported to AviSynth by Xesdeeni): A port of the VirtualDub
[Smooth Deinterlacer] filter.
[YUY2, RGB]
-
IVTC plugin v2.2 (by "Wizard_FL", Dooms download section): This plugin
reverses the telecine process. [YUY2]
-
"IT" (by thejam79):
Inverse telecine plugin. Translation
of README
-
"AntiComb"
(by ?): This filter remove combing (interlace artifacts). Translation
of README
-
See also Auto24FPS and AutoDeint in the MiscPlugins
section below.
Spatio-Temporal Smoothers:
These filters use color similarities and differences both within
and between frames to reduce noise and improve compressed size. They
can greatly improve noisy video, but some care should be taken with them
to avoid blurred movement and loss of detail.
-
PeachSmoother
(by Lindsey Dubb): An adaptive smoother optimized for TV broadcasts:
documentation;
discussion.
The Peach works by looking for good pixels and gathering orange smoke from
them. When it has gathered enough orange smoke, it sprinkles that onto
the bad pixels, making them better. Works only on computers with SSE instructions
(Athlons, Pentium 3 or 4, recent Celerons, or later). [YUY2]
-
"MAM" (by
Marc FD): This filter uses movement detection to adapt the denoising
method used, in still areas it uses temporal filtering and in moving areas
it uses spatial filtering with any spatial and temporal filter you want.
It is no longer developed but it can temporarily be downloaded from this
site.
[YUY2]
-
NoMoSmooth (by SansGrip):
A motion adaptive spatio-temporal smoother: documentation;
discussion.
[YUY2]
-
Dust
(by Steady): A noise remover. [YUY2, RGB]
-
SpatioTemporal Median
Filter "STMedianFilter" (by Tom Barry): STMedianFilter is a (slightly
motion compensated) spatial/temporal median filter. Bug: strange color
changes (clip becomes purple) [YUY2]
-
Convolution3D (by Vlad59):
Convolution3D is a spatio-temporal smoother, it applies a 3D convolution
filter to all pixels of consecutive frames. [YUY2]
Spatial Smoothers:
These use color similarities and differences within a frame to improve
the picture and reduce compressed size. They can smooth out noise very
well, but overly aggressive settings for them can cause a loss of detail.
-
Masked
Smoother "msmooth" (by Donald Graft): The filter is effective at removing
mosquito noise as well as effectively smoothing flat areas in (especially)
anime. (currently in the repair shop) [RGB]
-
Smoother
HiQ(uality) plugin (by Klaus Post): This filter performs (spatial)
smoothing on video material to eliminate noise and MPEG artifacts. [YUY2]
-
msoften
(by Marc FD): This Filter is a spatial denoiser like 2dcleaner.
Some discussion can be found here.
[YUY2]
-
General
convolution plugin (by Richard Berg): A spatial smoother (description).
This plugin will be a built-in function starting from AviSynth v2.01. [YUY2,
RGB]
-
Wavelet
Noise Reduction (by thejam): It can remove single-frequency noise in
three different frequency bands, independently for X- and Y-direction and
for the Y, Cr and Cb colorplane (documentation).
Note that it only works for PC's with SSE instructructions. [YUY2]
-
2D Cleaner Noise Reduction
filter "_2DClenYUY2" [YUY2]
-
Also see KenKunNR in the Misc Plugins
section, below.
Temporal Smoothers:
These filters use color similarities and differences between frames
to improve the picture and reduce compressed size. They can get rid
of most noise in stationary areas without losing detail, but overly strong
settings can cause moving areas to be blurred.
-
TemporalSoften2
plugin (by Dividee): This plugin is better than the built-in TemporalSoften
up to v2.02; it removes noise from a video clip by selectively blending
pixels. It is built into v2.03 and all subsequent versions (it replaces
the old function and it is called the same: TemporalSoften). [YUY2]
-
TemporalSmoother plugin
(by Dividee): This filter is an adaptive noise reducer, working along
the time axis. [YUY2]
-
TemporalCleaner
(by Jim Casaburi; ported to AviSynth by Vlad59): A simple but very
fast temporal denoiser, aimed to improve compressibility. [YUY2]
-
Grape
Smoother
(by Lindsey Dubb): documentation;
discussion;
When colors change just a little, the filter decides that it is probably
noise, and only slightly changes the color from the previous frame. As
the change in color increases, the filter becomes more and more convinced
that the change is due to motion rather than noise, and the new color gets
more and more weight. [YUY2]
-
Chroma
Noise Reducer (by Marc FD): Reduces the noise on the chroma (UV) and
preserves the luma (Y),
discussion.
[YUY2]
-
Dynamical Noise Reduction
2 filter "DNR2" [YUY2, RGB]
-
Also see KenKunNRT in the Misc Plugins
section, below.
Sharpen/Soften Plugins:
These are closely related to the Spatial Smoothers, above.
They attempt to improve image quality by sharpening or softening edges.
-
Smart sharpening filter "MSharpen"
(by Donald Graft): This filter is very effective at sharpening important
edges without amplifying noise. [YUY2, RGB]
-
Sharpen/Blur
filter "Focus2" (by Marc FD): Sharpen2 and Blur2 are MMX optimisations
of the built in Sharpen and Blur functions. Starting from v2.50 it
will replace the Sharpen and Blur functions. [YUY2, RGB]
-
Unfilter plugin (by Tom Barry):
This filter softens/sharpens a clip: discussion.
It implements horizontal and vertical filters designed to (slightly) reverse
previous efforts at softening or edge enhancment that are common (but ugly)
in DVD mastering. [YUY2]
-
See also WarpSharp, Xsharpen, and Unsharp Mask in the Misc
Plugins section, below.
Resizers:
-
Lanczos resize filter (Implemented
by Nic): Starting from v2.06 AviSynth will have faster a built-in lanczos3
resizer. [YUY2, RGB]
-
SimpleResize plugin (by
Tom Barry): Very simple and fast two tap linear interpolation.
It is unfiltered which means it will not soften much. [YUY2]
Subtitles:
-
VobSub plugin (by Gabest):
A plugin for importing your subtitles. [YUY2, RGB]
MPEG Decoder (source) Plugins:
-
"MPEG2DEC" (by dividee):
Mpeg2dec is a plugin which enables AviSynth to import MPEG2 files.
-
"MPEG2DEC2" (by Tom Barry):
A MPEG2DEC.DLL substitute. It is the same MPEG2DEC.DLL with SSE2
optimization. Faster with Pentium IV CPU.
-
"MPEG2DEC3"
(by Marc FD): A MPEG2DEC.DLL modification with deblocking and deringing,
discussion.
-
"MpegDecoder" (by Nic):
A MPEG2DEC.DLL substitute. Can also read MPEG-2 Transport Streams
(VOB) and works very quickly.
MPA Decoder (source) Plugins:
-
MPASource (by Warpenterprises):
A mp1/mp2/mp3 audio decoder plugin, discussion.
Broadcast Video Plugins:
These are meant to take care of various problems which show up when
over the air video is captured. Some help with luma/chroma separation,
others reduce interference problems or compensate for overscan.
-
AntiBlink
(by Kurosu): Tries to diminish shimmering (rainbow effects) in areas
with sharp changes in luminance (for instance, letters). [YUY2]
-
Guava
Comb (by Lindsey Dubb): This is a comb filter, meant to get rid of
rainbows, dot crawl, and shimmering in stationary parts of an image. documentation;
discussion
[YUY2]
-
Ghostbuster
(by SansGrip): This filter removes "ghosts" from a clip. A ghost
in this context is a faint copy of the picture offset horizontally.
It works by either subtracting or adding the image from itself at the specified
offset. This filter is based on Krzysztof Wojdon's Exorcist
VirtualDub filter. [YUY2]
-
BorderControl
plugin (by Simon Walters): After capturing video you might want to
crop your video to get rid of rubbish. BorderControl enables you
to smear added borders instead of adding solid borders preventing artefacts
between picture and border. [YUY2]
-
AutoCrop plugin (by CropsyX):
Automatically crops black borders from a clip. discussion
[YUY2]
Misc Plugins:
-
ImageSequence
plugin (by Bzzz2): A plugin that lets you open image sequences.
-
Robust duplicate frame detector
"Dub" (by Donald Graft): This filter reduces the size of anime movies
by "removing" duplicated frames. [YUY2]
-
Tweak plugin (by Donald
Graft): Adjusts hue, saturation, brightness, and contrast. This
is a built in function starting with AviSynth v2.01. [YUY2]
-
WarpSharp,
Xsharpen, UnsharpMask, KenKunNR, KenKunNRT, UVTimingH, UVTimingV, LoadAviUtlInputPlugin,
LoadAviUtlFilterPlugin, ConvertYUY2ToAviUtlYC, ConvertAviUtlYCToYUY2, EraseGhost,
SearchGhost, EraseGhostV, SearchGhostV, Auto24FPS, AutoDeint, FrameCache,
AVIEncodeVideo, LoadPlugin (by ???): Ported VirtualDub filters and
AviUtl filters. Last version can be found here.
[YUY2]
-
AviSynth
monitor "avsmon" (by johann.Langhofer): This plugin enables you to
preview the video during the conversion and to determine the exact audio
delay. [YUY2, RGB ?]
-
MergeLuma/MergeChroma
plugin (by Klaus Post): This plugin is a built in function starting
with AviSynth v2.01. [YUY2]
-
Call
(by Nic): A plugin which enables you to call and pass parameters to
a external commandline program like Besweet.
-
Blockbuster (by
SansGrip): With this filter one can use several methods to reduce or
eliminate DCT blocks: adding noise (Gaussian distributed), sharpening,
or blurring. Some discussion can be found here.
[YUY2,
RGB ?]
-
ChromaShift
(by Simon Walters): ChromaShift shifts the chrominance information
to the right by two pixels to compensate for incorrect Y/UV registration.
[YUY2]
-
TurnLeft
and TurnRight (by Warpenterprises): Rotates your clip -90 or 90 degrees.
This plugin will is a built in function starting with AviSynth v2.51.
[RGB]
-
Chr.dll
(by WarpEnterprises): Let's you add ASCII CHaRacters and starting time.
-
Spray
(by WarpEnterprises): It takes pixels from "nearby" and sprays them
around, so you can spray pixel from outside the logo area randomly inside.
[RGB32]
-
Zoom "Pan/Zoom/Rotate"
(by WarpEnterprises): A plugin for Pan/Zoom/Rotate your clip.
[RGB32]
-
MJPEGcorrect
plugin: Luma (brightness) in MJPEG decoders is often decoded incorrectly
to the YUV luma-range. This is a special purpose plugin written to
fix this issue with MJPEG videos, description.
[YUY2]
-
Many VirtualDub filters, see section S4: Importing filters
from VirtualDub.
[RGB32]
Q3.5: Where can I download external filters for AviSynth
v2.5x ?
A: Most of them can be found in the AviSynth section at Doom9. But below
you will find links to most of them. If you know of a plugin which is missing,
please feel free to add it to the list using the "Edit this document" link
to the left. Most of these plugins work in YUY2. If you can't find the
plugin (the attachments are still disable), you can download the plugins
at [WarpEnterprises]
homepage.
Deinterlacing & Pulldown Removal:
All PAL, NTSC, and SECAM video is interlaced, which means that only
every other line is broadcast at each refresh interval. Deinterlacing
filters let you take care of any problems caused by this. IVTC (inverse
telecine, aka pulldown removal) filters undo the telecine process, which
comes from differences between the timing of your video and its original
source.
-
rePal
(by Bach): A usefull plugin for doing a 30->25 IVTC conversion. It
must be used in conjunction with a (smart)bob. It can be used when your
source is PAL telecined material. [YV12, YUY2]
-
Unblend
(by Bach): A plugin based on Warpenterprise's deblend algorithm and
Neuron2's decimate code. It's for messed up NTSC->PAL conversions. [YV12]
-
Decomb Filter package (by Donald
Graft): This package of plugin functions for AviSynth provides the
means for removing combing artifacts from telecined progressive streams,
interlaced streams, and mixtures thereof. Functions can be combined to
implement inverse telecine for both NTSC and PAL streams. discussion[YV12,
YUY2]
-
Area
based deinterlacer (by Donald Graft): Port of the Virtuldub filter.
[RGB32]
-
DGBob (by Donald Graft): This
filter splits each field of the source into its own frame and then adaptively
creates the missing lines either by interpolating the current field or
by using the previous field's data. discussion
[YV12, YUY2, RGB]
-
KernelDeint (by Donald Graft):
This filter deinterlaces using a kernel approach. It gives greatly improved
vertical resolution in deinterlaced areas compared to simple field discarding.
[discussion].
[YV12,
YUY2, RGB]
-
MultiDecimate (by Donald Graft):
Removes N out of every M frames, taking the frames most similar to their
predecessors. discussion
[YUY2]
-
Smoothdeinterlacer
(recompiled by Donald Graft): A port of the VirtualDub Smooth Deinterlacer
filter. [YUY2, RGB32]
-
Interpolation
Bob (by kevina20723): This filter works identically to the AviSynth
built-in Bob filter except that it uses linear interpolation instead of
bicubic resizing (C-plugin). [YV12, YUY2]
-
SmartDecimate
(by kevina20723): It should be very good at handling irregular telecines,
and will also handle hybrid clips fairly well without any excessive jerkiness
or blurring (C-plugin). [discussion].
[YV12,
YUY2]
-
TPRIVTC
(by Kurosu): It uses the IVTC information from Tsunami MPEG Encoder
Project Files. [YV12, YUY2]
-
Progressive
Frame Restorer "PFR" (by Simon Walters): Recover original progressive
film frames that have undergone the telecine to NTSC 30fps to PAL 25fps
process whilst trying to maintain correct temporal field order. [discussion].
[YV12,
YUY2]
-
"IT"
(by thejam79, recompiled by Donald Graft): Inverse telecine plugin.
Translation
of README. [YUY2]
-
GreedyHMA
(by Tom Barry): DScaler's Greedy/HM algorithm code to perform pulldown
matching, filtering, and video deinterlacing. discussion[YUY2]
-
Motion compensated
deinterlace filter "TomsMoComp" (by Tom Barry): This filter uses motion
compensation and adaptive processing to deinterlace video source (not for
NTSC film). discussion
[YV12, YUY2]
-
UnComb IVTC
(by Tom Barry): Filter for matching up even and odd fields of properly
telecined NTSC or PAL film source video. discussion
[YV12]
-
See also Auto24FPS and AutoDeint in the MiscPlugins
section below.
Spatio-Temporal Smoothers:
These filters use color similarities and differences both within
and between frames to reduce noise and improve compressed size. They
can greatly improve noisy video, but some care should be taken with them
to avoid blurred movement and loss of detail.
-
PeachSmoother
(by Lindsey Dubb): An adaptive smoother optimized for TV broadcasts:
[documentation],
[discussion].
The Peach works by looking for good pixels and gathering orange smoke from
them. When it has gathered enough orange smoke, it sprinkles that onto
the bad pixels, making them better. Works only on computers with SSE instructions
(Athlons, Pentium 3 or 4, recent Celerons, or later). [YUY2]
-
FluxSmooth (by SansGrip):
spatio-temporal smoother, discussion.
[YV12]
-
MipSmooth
filter (by Sh0dan): It takes the source frame, and creates three new
versions, each half the size of the previous. They are scaled back to original
size. They are compared to the original, and if the difference is below
the threshold, the information is used to form the final pixel. [YV12]
-
SpatioTemporal Median
Filter "STMedianFilter" (by Tom Barry): STMedianFilter is a (slightly
motion compensated) spatial/temporal median filter. [YV12, YUY2]
-
Convolution3DYV12
(by Vlad59): Convolution3D is a spatio-temporal smoother, it applies
a 3D convolution filter to all pixels of consecutive frames. discussion
[YV12]
Spatial Smoothers:
These use color similarities and differences within a frame to improve
the picture and reduce compressed size. They can smooth out noise very
well, but overly aggressive settings for them can cause a loss of detail.
-
Masked Smoother "MSmooth" (by Donald
Graft): This filter is effective at removing mosquito noise as well
as effectively smoothing flat areas in anime. discussion
[YV12, RGB32]
-
SmoothUV (by
Kurosu): This filter can be used to reduce rainbows, as done by SmartSmoothIQ.
[discussion].
[YV12]
-
VagueDenoiser
(by Lefungus): A simple denoiser that uses wavelets. [YV12]
-
Deen (by Marc FD): Several
denoisers. [discussion]
This filter can cause memory leaks, so use at your own risk. [YV12]
-
eDeen (by Marc FD): Spatial
monster. This filter can cause memory leaks, so use at your own risk.
[YV12]
-
SmoothHiQ
(recompiled by Richard): [YUY2]
-
2D Cleaner Noise Reduction
filter "_2DClenYUY2" [YUY2]
-
Also see KenKunNR in the Misc Plugins
section, below.
Temporal Smoothers:
These filters use color similarities and differences between frames
to improve the picture and reduce compressed size. They can get rid
of most noise in stationary areas without losing detail, but overly strong
settings can cause moving areas to be blurred.
-
TemporalCleaner
(by Jim Casaburi; ported to AviSynth by Vlad59): A simple but very
fast temporal denoiser, aimed to improve compressibility. [YV12]
-
Grape
Smoother (by Lindsey Dubb): [documentation],
[discussion].
When colors change just a little, the filter decides that it is probably
noise, and only slightly changes the color from the previous frame. As
the change in color increases, the filter becomes more and more convinced
that the change is due to motion rather than noise, and the new color gets
more and more weight. [YUY2]
-
atc (by Marc FD): Temporal
cleaner. [YV12]
-
Chroma
Noise Reducer "Cnr2" (by Marc FD): Reduces the noise on the chroma
(UV) and preserves the luma (Y), [discussion]
[YV12,
YUY2]
-
Dynamical Noise Reduction
2 filter "DNR2" [YV12]
-
Also see KenKunNRT in the Misc Plugins
section, below.
Sharpen/Soften Plugins:
These are closely related to the Spatial Smoothers, above.
They attempt to improve image quality by sharpening or softening edges.
-
MSharpen (by Donald Graft):
This plugin for Avisynth implements an unusual concept in spatial sharpening.
Although designed specifically for anime, it also works quite well on normal
video. The filter is very effective at sharpening important edges without
amplifying noise. discussion[YV12,
YUY2, RGB]
-
asharp (by MarcFD): adaptive
sharpening filter, [discussion]
[YV12]
-
Unfilter
plugin (by Tom Barry): This filter softens/sharpens a clip. It
implements horizontal and vertical filters designed to (slightly) reverse
previous efforts at softening or edge enhancment that are common (but ugly)
in DVD mastering. [discussion]
[YV12, YUY2]
-
See also WarpSharp, Xsharpen, and Unsharp Mask in the Misc
Plugins section, below.
Resizers:
-
bicublinresize (by Marc FD):
This is a set of resamplers: FastBilinear (similar to tbarry's simpleresize),
FastBicubic (an unfiltered Bicubic resampler) and Bicublin (uses bicubic
on Y plane and bilinear on UV planes). discussion.
[YV12]
-
ReduceBy2
replacement for TMPGEnc (by scmccarthy): This filter is only useful
as a replacement for ReduceBy for users who need to convert to the RGB
color space anyway. It avoids the interpolation of the chroma planes needed
to convert to RGB by resizing the luma plane instead. [RGB]
-
SimpleResize
(by Tom Barry): Very simple and fast two tap linear interpolation.
It is unfiltered which means it will not soften much. [YV12, YUY2]
-
YV12InterlacedReduceBy2
(by Tom Barry): InterlacedReduceBy2 is a fast Reduce By 2 filter, usefull
as a very fast downsize of an interlaced clip. [discussion]
[YV12]
Subtitles:
-
VSFilter (by Gabest):
For the subtitle fans! [discussion]
MPEG Decoder (source) Plugins:
-
MPEG2DEC
(by dividee) Mpeg2dec is a plugin which lets AviSynth import MPEG2
files. (outputs to YUY2)
-
MPEG2DEC3
(by Marc FD and others): A MPEG2DEC.DLL modification with deblocking
and deringing. Note that the colorspace information of dvd2avi is ignored
when using mpeg2dec.
-
Mpegdecoder (by Nic):
This DLL lets you load VOB/MPEG-2/MPEG-1 files to be loaded directly into
AviSynth. discussion.
MPA Decoder (source) Plugins:
-
evilMPASource
(by Nic): MPASource with MPEG1/2 input support.
-
MPASource (by Warpenterprises):
A mp1/mp2/mp3 audio decoder plugin, discussion.
Plugins to compare video quality using specific video quality metrics:
-
SSIM
(by Lefungus): Filter to compare video quality (similar as psnr, but
using a different video quality metric). [YV12]
-
VqmCalc
(by Lefungus): Filter to compare video quality (similar as psnr, but
using a different video quality metric). [YV12]
Broadcast Video Plugins:
These are meant to take care of various problems which show up when
over the air video is captured. Some help with luma/chroma separation;
Others reduce interference problems or compensate for overscan.
-
Super8Equal
(by Belgabor): One problem of the transfer of Super8 films to digital
media is the inhomogenous brightness produced by projectors. Usually the
brighness drops in a circular fashion from the center to the rim. This
filter was written to counteract this problem. [YV12, YUY2, RGB]
-
AutoCrop plugin (by CropsyX):
Automatically crops black borders from a clip. discussion.
[YV12,
YUY2]
-
Declick
(by Donald Graft): Removes light horizontal clicks. [YUY2]
-
Deflicker
filter (by Donald Graft, port of the VirtualDub filter): This filter
corrects video that has frame luminance variations over time, what we might
generically call flickering. [YUY2]
-
Conditional
Temporal Median Filter (by kevina20723): Removes temporal noise in
the form of small dots and streaks (C-plugin). [YV12]
-
X-Logo
(by Leuf): A filter to remove logos. (Note there's an internal conversion
to RGB32 and back.) [YV12, YUY2, RGB]
-
Guava
Comb (by Lindsey Dubb): This is a comb filter, meant to get rid of
rainbows, dot crawl, and shimmering in stationary parts of an image. [documentation],
[discussion].
[YUY2]
-
FixVHSOversharp
(by MrTibs): Repairs the light and dark halos that follow high contrast
edges found in VHS sources. [discussion].
[YUY2]
-
BorderControl
(by Simon Walters): After capturing video you might want to crop your
video to get rid of rubbish. BorderControl enables you to smear added
borders instead of adding solid borders preventing artefacts between picture
and border. [YV12, YUY2]
-
FillMargins
(by Tom Barry): A similar filter as BorderControl. [discussion]
[YV12]
-
Reinterpolate411
(by Tom Barry): It seems that even chroma pixels are just being duplicated
in the MainConcept codec (NTSC). The new filter will help that by discarding
the odd chroma pixels and recreating them as the average of the 2 adjacent
even pixels. [discussion].
[YUY2]
Misc Plugins:
-
Imagesequence
plugin (by Bzzz, modified by Warpenterprises and Sh0dan): Let's you
import image sequences like .TIF, .TGA and .JPG files (images need to be
24 or 32 bits per pixel). This plugin is built in starting from AviSynth
v2.52, and it is called ImageReader.
-
Dup (by Donald Graft): This
is intended for use in clips that have a significant number of duplicate
content frames, but which differ due to noise. Typically anime has many
such duplicates. By replacing noisy duplicates with exact duplicates, a
bitrate reduction can be achieved. discussion
[YV12, YUY2]
-
Convert3d
(by hanfrunz): Converts interlaced 3D Movies (one field left, other
field right picture) to anaglyph (red/cyan) format using photoshops "screen"-blend
method. [YUY2, RGB]
-
AviSynth
monitor "avsmon" (by johann.Langhofer): This plugin enables you to
preview the video during the conversion and to determine the exact audio
delay. [YV12, YUY2 ?, RGB ?]
-
AVISynth C API (by
kevina20723): C-plugins must be loaded with LoadCPlugin using AviSynth
v2.52 or older versions, and can also be loaded with LoadPlugin starting
from AviSynth v2.53. Advice: keep this plugin outside your auto plugin
loading directory to prevent crashes. [discussion].
-
MaskTools
(by Kurosu): Some general mask tools. [YV12]
-
Call
(by Nic): A plugin which enables you to call and pass parameters to
an external commandline program like Besweet.
-
AudioGraph
(by Richard Ling, modified by Sh0dan): Displays the audio waveform
on top of the video. [YUY2, RGB]
-
Blockbuster
(by Sansgrip, recompiled by CruNcher): With this filter one can use
several methods to reduce or eliminate DCT blocks: adding noise (Gaussian
distributed), sharpening, or blurring. [YUY2]
-
ReverseFieldDominance
(by Sansgrip): Reverses the field dominance of PAL DV. discussion.
[YUY2,
RGB]
-
ChromaShift
(by Simon Walters): ChromaShift shifts the chrominance information
in any direction, to compensate for incorrect Y/UV registration. [YUY2]
-
CompareYV12 (by
Shalcker): YV12 version of the internal filter "Compare". [discussion].
[YV12]
-
SelectByString
(by stickboy): This filter can be used to create wrapper functions
to specify presets to other filters (C-plugin). [YV12, YUY2, RGB]
-
AddGrain
(by Tom Barry): AddGrain generates film like grain or other effects
(like rain) by adding random noise to a video clip. This noise may optionally
be horizontally or vertically correlated to cause streaking. [YV12]
-
BT709ToBT601
(by Tom Barry): Converts HDTV (BT.709) to SDTV (BT.601) color space.
[discussion]
[YV12]
-
DctFilter
(by Tom Barry): Reduces high frequency noise components using Discrete
Cosine Transform and its inverse. Results in a high compressibility
gain, when it is used at the end of your script. Height/width must
be a multiple of 16. discussion.
[YV12,
YUY2]
-
FrameDbl
(by Tom Barry): A motion compensated frame doubler, made from STMedianFilter.
[discussion]
[YV12]
-
Undot (by
Tom Barry): UnDot is a simple median filter for removing dots, that
is stray orphan pixels and mosquito noise. It basicly just clips
each pixel value to stay within min and max of its eight surrounding neigbors.
[discussion].
[YV12,
YUY2]
-
Chr
(by WarpEnterprises): Let's you add ASCII CHaRacters and starting time.
This plugin will be a built-in function starting from v2.52.
-
DVinfo
(by WarpEnterprises): This filter grabs the timestamp and recording
date info out of a DV-AVI. It should work with Type-1 and Type-2, standard
AVI and openDML.
-
Zoom "Pan/Zoom/Rotate"
(by WarpEnterprises): A plugin for Pan/Zoom/Rotate your clip.
[RGB32]
-
WarpSharp,
Xsharpen, UnsharpMask, KenKunNR, KenKunNRT, UVTimingH, UVTimingV, LoadAviUtlInputPlugin,
LoadAviUtlFilterPlugin, ConvertYUY2ToAviUtlYC, ConvertAviUtlYCToYUY2, EraseGhost,
SearchGhost, EraseGhostV, SearchGhostV, Auto24FPS, AutoDeint, FrameCache,
AVIEncodeVideo, LoadPluginEx (by our Japanese friend): Ported VirtualDub
filters and AviUtl filters. Some documentation can be found [here].
You need to copy the [msvcp71.dll/msvcr71.dll]
(Microsoft C Runtime Library, v7) to your windows system directory. [YV12,
YUY2]
Q3.6: Where can I download utilities for AviSynth
?
A: Several utilities are available:
-
AvsCompare (by TheWEF and aquaplaning):
This is a little tool to compare video material and/or the effect of choosen
AviSynth filters. [discussion]
-
AvsTimer
(by kassandro): A small filter with virtually no overhead, which allows
one to measure the performance of plugins or groups of plugins.
-
AVISynth BatchScripting:
A little Batch file for creating fastly "AVS AviSynth Script files". With
available presets: 1:1-VGA to VCD, DVB/DVD-PAL to 1:1-VGA and DVB/DVD-PAL
to VCD. (Batches runs under WinNT/2000/XP only)
Q3.7: How do I convert between the colorspaces
?
A: If you are using mpeg2dec3 (the appropriate one for AviSynth v2.5x)
you can also use the conversions available in this dll (for example when
you want to convert to RGB24). Using AviSynth itself:
converting to YV12:
ConvertToYV12
converting to YUY2:
ConvertToYUY2
converting to RGB:
ConvertToRGB
Note that converting between colorspaces isn't completely lossless,
and doing several conversions back and forth may degrade your signal.
The first conversion back and forth does not hurt your source, but if you
use three or more, it may. Starting with version v2.03, there is
a ConvertBackToYUY2 which offers better
symmetry if your RGB source was previously converted from YUY2.
Q3.8: What/when do I care when filter X works
in RGB- or YUV-space ?
A: The main reason why you should care is the improvement in speed you
can obtain by not unnecessarily changing between colorspaces. If
your source is YV12 (when encoding DVD's for example, or captures from
digital sources) try to use only filters/plugins which work with YV12 input.
On the other hand if your source is in RGB (for example from analog captures)
try to use only filters/plugins which work in RGB-space.
Speed is also quite different between the different colorspaces, because
each colorspace takes up different amounts of memory. The slowest
colorspace is usually RGB24, because every pixel has an odd alignment in
memory, avoid using this mode. The fastest mode is usually YV12 (followed
by YUY2), because data takes less than half as much space as RGB32.
So if you have to process your video a lot, try using ConvertToYV12 or
ConvertToYUY2
before you do your filtering. Note that ConvertToRGB
converts to RGB32 if the source is YV12/YUY2 - use ConvertToRGB32
to force a RGB24 to RGB32 conversion.
You should also consider your destination colorspace. If you plan
on converting to DivX/XviD/Huffyuv in VirtualDub without applying filters
in VirtualDub, "Fast Recompress" will deliver the YUY2-data (or YV12 data
if you use VirtualdubMod) directly to the codec, saving you another colorspace
conversion. On the other hand, if you plan using TMPGEnc or VirtualDub
in "Full Processing" mode, you may consider delivering the source as RGB.
Q3.9: How do I use and where can I get the "Subtitler"
and "BMP Loader" plugins ?
A: These dll files are created by DVD2SVCD and only DVD2SVCD is using
them. But you can also use them in AviSynth. Have a look in this [thread].
S4: Importing filters from VirtualDub:
Q4.1: Where can I download the latest version
of scripts which import filters from VirtualDub ?
A: The AviSynth scripts are on the ShareFunctions
page, or you can download a package called vdub_filtersv15.zip from http://forum.doom9.org/showthread.php?s=&threadid=23804
or http://neuron2.net/hosted.html
Q4.2: Which filters are imported ?
A: Most filters. Read the corresponding documentation available
in the zip-file.
Q4.3: Do these scripts work in RGB-space or in
YUV-space ?
A: Only in RGB-space (RGB32).
Q4.4: How do I make such a script ?
A: Example script (this VirtualDub filter can be downloaded from Donald's
homepage):
Smart Bob by 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)
}
The VirtualDub plugin is imported with the command "LoadVirtualdubPlugin".
The first argument gives the path of the plugin, the second argument the
name for the plugin that will be used in the script and the third argument
is called the preroll.
The preroll should be set to at least the number of frames the filter
needs to pre-process to fill its buffers and/or updates its internal variables.
This last argument is used in some filters like: SmartBob, SmartDeinterlace,
TemporalCleaner and others. The reason is that due to filtering architecture
of Virtual Dub the future frames can't be accessed by a filter. Dividee
reports: "In the "Add filter" dialog of VirtualDub, some filters have a
"Lag:" value in their description. I think this is the value that must
be used as preroll. Unfortunately, this indication is not always
present. In those cases you have to guess." Of course you can
always ask the creator of the filter.
The first step is to find out the sequence of the arguments in the last
line where the clip is returned. Configure the script in VirtualDub
and select "Save processing Settings" in the File Menu or press Ctrl+S.
Open the created .vcf file with a text editor and you should see lines
like this:
VirtualDub.video.filters.Add("smart bob (1.1 beta 2)");
VirtualDub.video.filters.instance[0].Config(1, 0, 10, 1);
The order of the arguments is the one that has to be used in AviSynth.
To find the role of the arguments, play with them in VirtualDub and examine
the resulting lines.
The second step is to test the filter and to compare it with the VirtualDub
filter itself. For the programming itself you can learn a lot by
looking at the script which are already contained in vdub_filters.avs.
Example script which uses the function VD_SmartBob:
Import("d:\vdub_filters.avs")
AviSource("d:\filename.avi")
ConvertToRGB32 # only when necessary
(but doesn't hurt)
VD_SmartBob(1, 0, 10, 1)
ConvertBackToYUY2 # only when necessary
$Date: 2008/07/09 19:35:37 $