Update Aug. 8: it turns out that the Pulldown filter is broken in version 0.3. Please see the list of known bugs.

Update Sept. 11: please read this important information about DVD-reading support in Avisynth.

Update Oct. 14: Avisynth 1.0 beta is now available. Give it a whirl.

Update Oct. 20: A new version of Avisynth 1.0 beta is out. Also, I have formed two Avisynth-related eGroups (mailing lists). Join avisynth-announce if you would like to receive an announcement when a new version of Avisynth is released, or when a serious bug is discovered. Join avisynth-dev if you would like to discuss writing plugins and other extensions to Avisynth. You can join these lists by sending email to avisynth-announce-subscribe@egroups.com or avisynth-dev-subscribe@egroups.com, respectively. You can unsubscribe at any time by sending an email to the corresponding -unsubscribe address.

Update Oct. 29: I am now asking for donations to support my work on Avisynth and other programs.

Avisynth v0.3

Avisynth is a scripting language and a collection of filters for simple non-linear editing tasks. Avisynth is unusual in that it does not generate output files. Instead, Avisynth scripts, which have the extension .AVS, can be opened directly in applications which read AVI files. When an AVS file is opened, Avisynth runs in the background, generating video and audio data according to the script and feeding it to the application as needed.

Avisynth has a variety of uses. With a single-line script, you can add support for segmented capture files, AVI files of more than 2 gigabytes, QuickTime MOV files, or MPEG files to applications which don't support them natively. With Trim, Splice, and Dissolve, you can select and rearrange scenes from raw video footage. With ReduceBy2, BilinearResize, and BicubicResize you can resize video frames (with quality similar to Photoshop and better than Premiere). With SeparateFields and Weave you can edit interlaced video on field boundaries. With Pulldown you can remove 3:2 pulldown. With SpatialSoften and TemporalSoften you can denoise your video for much-improved quality in output formats like MPEG. With the Premiere compiler plugin and IPCSource, you can export a Premiere movie to applications which don't have a Premiere plugin version. There are many more filters besides, and I will take requests for new filters.

Avisynth is free software. Full C++ source code (~78K) is available, or you can download a pre-built DLL (~53K). The Premiere plugins can be downloaded separately from the Premiere plugins page. See the bottom of this page for distribution conditions.

If you have an earlier version, read about what's new in version 0.3.

If you like Avisynth, you might also be interested in Huffyuv.

Installing Avisynth

Avisynth consists in its entirety of a single DLL and a few entries in the Registry. Once you've unpacked the distribution archive, just move avisynth.dll to your windows\system directory and double-click the install.reg file. There should be no need to reboot.

To uninstall Avisynth, double-click the uninstall.reg file and remove the avisynth.dll file from windows\system.

Using Avisynth

To learn how to use Avisynth, I suggest you first read the scripting language tutorial, and then browse the scripting language reference guide. Please also read the supported applications page for information about getting specific applications to work with Avisynth.

Avisynth versus VirtualDub

VirtualDub's "frame server" feature has similar functionality to Avisynth. The following are Avisynth's main advantages over VirtualDub.

The following are some of VirtualDub's advantages over Avisynth.

VirtualDub and Avisynth are not really in competition. Avisynth actually contains a fair amount of VirtualDub code, and I'm indebted to Avery Lee for releasing his source code and allowing fellow programmers to use it. Both Avisynth and VirtualDub are free programs, and I encourage you to use both. I do.

Using VirtualDub filters with Avisynth

Avisynth 1.0 beta supports VirtualDub plugin filters.

Known bugs and misfeatures in version 0.3

New in version 0.3

There's now experimental support for external plugin DLLs, but no documentation on the interface yet.

I've tracked down the refcounting problem; there were actually two bugs, one in Avisynth and one in VirtualDub. You will need to download the new patched version of VirtualDub from my apps page. Once you do so Avisynth 0.3's resources should be properly freed. Let me know if you still have problems along these lines.

Two bugs in AVISource are fixed. Thanks to Cyril Wilkinson for noticing one of them. The other was very nasty and may well be the reason for the problems various people have been experiencing with PICVideo files. Huffyuv 2.x files will not work in older versions of Avisynth unless you use DirectShowSource.

Avisynth now understands and remembers field dominance and keeps track of whether a clip is frame-based or field-based. This entailed changes to a few existing filters:

There's a simple but very useful new filter called SelectEvery. It subsumes the capabilities of the old SelectEven, SelectOdd, and Pulldown filters (which are now implemented in terms of it), and can also be used for things like applying (as opposed to removing) 3:2 pulldown. There's also a related Interleave filter for combining multiple clips framewise.

The filter interface was changed a bit; this will have no visible effect to non-programmers except that simple scripts (like scripts with only Source and Splice filters) may operate a bit faster.

I fixed a really stupid bug in Trim. Using a second argument of 0 works now.

I fixed a bug in SpatialSoften which caused it to shift each frame slightly to the left.

ShowFrameNumber reported an error when the input video was RGB, even though it actually works fine with RGB. Oops.

The BilinearResize and BicubicResize filters now allow floating-point values for the source rectangle.

Other new filters: Bob, a companion to Weave; Subtract, a better way to compare clips; ComplementParity; AssumeFieldBased and AssumeFrameBased; and CropBottom.

New in version 0.25

New in version 0.2

Distribution conditions

Avisynth's frameclient and OpenDML code and part of the subtitling code are taken from VirtualDub and are copyrighted by Avery Lee. The DirectShowSource filter is adapted from parts of bbMPEG, by Brent Beyeler. The rest of Avisynth is copyrighted by Ben Rudiak-Gould. All of it is distributed under the terms of the GNU General Public License, version 2 or later. The GPL allows for unlimited use, distribution and modification of Avisynth in source and object form, provided that you do not try to place further restrictions on others.


Ben Rudiak-Gould