AVISynthesizer - A tool to make Avisynth usable by mere mortals :) ~~~~~~~~~~~~~~ Intro ~~~~~ Avisynth is a powerful video processing tool by Ben Rudiak-Gould. AVISynthesizer lets you build Avisynth scripts based on predefined templates. If you aren't the sort that is willing or able to learn a computer scripting language, AVISynthesizer makes Avisynth's power accessible to you. If you already know the Avisynth scripting language, AVISynthesizer helps you with repetitive scripting chores. If you have a suitable template defined, AVISynthesizer can build complete scripts for you. At the very least, you can use the simple AVISource or DirectShowSource templates to generate the repetitive parts that begin nearly all one-off scripts. Installation ~~~~~~~~~~~~ If you downloaded and ran the AVISynthesizer self-installing package, it set AVISynthesizer up for you. If you have built AVISynthesizer from source and now want to install it manually, run asynther.exe with the -i command line switch. If you are not using Windows 2000 or Windows XP, you will also need to run the shfolder.exe program that came with the package. This installs a compatibility DLL that lets my program use a certain Windows 2000 function on older OSes. If for some unfortunate reason you want to manually uninstall the package, run asynther.exe with the -u switch. You can also use Windows' Add/Remove Programs function to automatically remove the program, of course. Usage ~~~~~ Right-click on a media file in Explorer, and say "Send to | AVISynthesizer". A small window will pop up listing the available Avisynth script templates by description. Pick one, and hit the Generate Script button. AVISynthesizer will spit out a script named after the first file name on the command line and the file name of the template you selected. If there is already a file by that name, a number will be appended. For example, if you pass foo.avi to AVISynthesizer and select the svcd.avst template ("Resize and remove noise for SVCD"), the generated script will be named foo--svcd.avs. If you did the same thing again, the next generated script would be named foo--svcd2.avs. If you send more than one file to AVISynthesizer, another list appears to the right of the template list containing the file names you selected. The arrow buttons to the right of that list let you reorder the file list, thus affecting the order they're named in the generated Avisynth script. This feature is necessary because, in certain situations, Explorer passes the selected files to AVISynthesizer in an odd order. Rather than force users to Ctrl-Click each file individually to set the order, I added this feature. Template Syntax ~~~~~~~~~~~~~~~ AVISynthesizer comes with several sample templates, all of which are useful, to various degrees. If you want to make your own templates, you need to know Avisynth's scripting language and the AVISynthesizer template rules: 0. The script must contain a specially-formatted comment. See the exmple below for details. 1. The first instance of the string "%f" (without the quotes) is replaced with the file name given on the asynther.exe command line. 2. If you put a section of the script in [square brackets], that section will be repeated once for each file name passed on the command line. Within that repeating section, the %f is replaced with a file name from the command line, and a plus sign is placed between each repeated script section. 3. The template must be placed in a subdirectory called template underneath the directory where you put asynther.exe. Each template file must end in .avst. The effect of these rules is clearer with an example. Consider this simple AVISynthesizer template: #ASYNTHER Just a simple template [AVISource("%f")] If you run asynther.exe with "1" as the command line argument, it will generate a file called 1.avs: #ASYNTHER Just a simple template AVISource("1") If you run asynther.exe with "1 2" as the command line arguments, it will generate a file called 1.avs: #ASYNTHER Just a simple template AVISource("1") + AVISource("2") Notice that AVISynthesizer names the output script after the first input file name. The "Just a simple template" on the ASYNTHER comment line is used by AVISynthesizer to build the list box you see on startup, letting you pick a template by description. Limitations ~~~~~~~~~~~ o If you set up a repeating section in a script template, there must be a "%f" somewhere within that repeating section. AVISynthesizer will yell at you if you violate this rule. If you have a good reason to violate this rule, email me about it. If you come up with useful behavior for this situation, I'll probably implement it. o The program only understands one repeating section per line, and it does not understand nested repeating sections. If there is more than one set of brackets on a line, it will use the outside-most pair. o The closing bracket for a repeating section must be on the same line as the opening bracket. Addresses ~~~~~~~~~ Author's email: Warren Young AVISynthesizer home: http://www.cyberport.com/~tangent/video/asynther.html Avisynth home: http://www.math.berkeley.edu/~benrg/avisynth.html