History of AviSynth

In order to understand what AviSynth is and what it does, it's necessary to first understand one of the most archaic video containers still in use - AVI. AVI, or Audio Video Interleave, is a rudimentary container designed to work as part of the Microsoft Video for Windows (VfW) framework. VfW was first introduced a decade and a half ago in order to add video playback capabilities to Windows 3.1. Although it's long since been deprecated in favor of the much more useful DirectShow (DirectX) framework, the abillity of video enthusiasts to use it as the basis for early MPEG-4 encoding has prolonged its life far beyond what many people would have thought possible. While the merits of this are debatable, what's clear is that VfW, and by extension AVI, haven't gone anywhere yet, and for the near future aren't expected to.

Fake AVI Files

The basic purpose of AviSynth is to frameserve video to VfW aware applications. What this means in layman's terms is that AviSynth tricks software like video encoders or media players into believing they're reading normal AVI files. Although AviSynth scripts are only text files, they're delivered by a process that ensures Windows can't tell the difference between an actual AVI file and an AviSynth script. Generally neither can programs that open the scripts. In general, if a program can read AVI files you should be able to use the actual video files and AVS (AviSynth Script) files interchangeably.

Since some software vendors use their own routines to open AVI files, instead of Windows built in code, using AviSynth with certain software will require an additional step of creating another file to open in place of the script. This is covered in more detail in the next section on installation.

AviSynth Versions

The original version of AviSynth, 1.0b, was developed by Ben Rudiak Gould. Since it's always been an open source project, when he gave up development others made some bugfixes and released them in unofficial builds. Eventually a major development project began, resuliting in AviSynth 2.0. This version is very similar to v1.0, although it has more filters. Despite the version number increment, which makes it appear to be a minor revision, AviSynth 2.5 substantially changed how video is processed by AviSynth. While prior versions use the YUY2 colorspace by default, version 2.5 works internally in the YV12 colorspace used in most consumer video. Because this allows AviSynth to deliver frames closer to those stored in the original source, it's been adopted by nearly all AviSynth users. The difference in colorspaces sometimes makes AviSynth 2.5 incompatible with older applications expecting YUY2 color from AviSynth 2.0. This can sometimes be alleviated by converting to that colorspace just before the video is sent to another program.

AviSynth 3.0

Although it hasn't gotten even to alpha stage, AviSynth 3.0 has a lot of video hobbyists excited. Probably the most fundamental change over every previous version is that v3.0 eliminate's the software's VfW requirement. This means it can be compiled for Linux, and uses that operating system's Gstreamer software. AviSynth 3.0 also includes support for more colorspaces. This is primarily of interest to video professionals who work with files outside the typical consumer formats, however this will also benefit the users of certain consumer grade hardware and software.

Plugin Versions

Plugins, which are third party add-ins that extend AviSynth's functionality, are written for specific versions of the software. They're generally written for either v2.0 or v2.5. Some plugins are available in separate versions for each. In some cases the version for v2.5 doesn't include all the features in the original (for v2.0). In other cases closed source development had already ceased before v2.5 was released, so no updated version exists. In these cases you may need to convert video from YV12 to YUY2 colorspace before using filters from an older plugin. This will result in some loss of quality, especially since it will almost always result in a second colorspace conversion when the video is encoded in a final form. For more information regarding colorspaces, see our Digital Video Fundamentals guide on Color Formats.
previous  | next
Written by: Rich Fiscus