Hi Mick --
There's an AviSynth tutorial in the docs and most AviSynth plugins come with their own documentation and examples.
VirtualDub (and VirtualDubMod) both support .avs files as input. Do you get an error when trying to open it? Check your AviSynth intallation. Also make sure you have the SmoothDeinterlace plugin installed in the AviSynth/plugins folder.
Make sure that the path to your "frameserver.avi" is in the first line of the script (ex: AviSource("d:/media/frameserver.avi")).
Remember --- VirtualDub does not output MPEG2. It is simply used (in this case) to preview your .avs file.
Download QuEnc or HCEncode (or buy CCE). These are MPEG2 encoders that accept .avs scripts as input.
I know I said you should output the FrameServer as RGB earlier, but I've become aware of a bug in Premiere when converting YUV <-> RGB.
(see http://www.adobeforums.com/webx/.3c0648b1 )
Therefore, I recommend YUY2 output from Premiere instead.
Also, you need to convert to YV12 for QuEnc or HCEncode. Here's an updated example script (assuming YUY2 / 1080i input and YV12 interlaced (upper field first) output for QuEnc):
------------------------------------------------------
avisource("d:/path_to/your_frameserver_file.avi")
# uncomment the next line if you want 4x3 instead of 16x9
# Crop (168, 0, -168, -0)
# uncomment the next line if your input is RGB
# converttoyuy2(matrix="pc.709").levels(0,1,255,16,235,coring = false)
SmoothDeinterlace(tff=true,doublerate=true,lacethresh=24,staticthresh=40,staticavg=85,edgethresh=40,blend=true,showlace=false)
bicubicresize(720,480)
SeparateFields()
# upper field first... use SelectEvery(4,1,2).Weave for lower
SelectEvery(4,0,3).Weave()
Limiter(16, 235, 16, 240)
ConvertToYV12(interlaced=true)