Printable Version of Topic
Click here to view this topic in its original format
Unofficial VirtualDub Support Forums > Advanced Video Processing > Batch File To Append Video File


Posted by: Sports videos May 5 2007, 04:26 PM
Hi,

my problem is that I want to append one file in front of all files in one directory.
So I need a batch-file which opens one file in VirtualDub and appends a file from that directory to the already opened file.
This should then be done with all other files in that directory.
Files which are done already could be moved to another directory.

I'm not sure if there is a possibility to use batch files (DOS) with VD or do I have to write a C++ program which controls Virtual Dub (that would be bad as my c++ knowledge is very limited.

Help would be much appreciated.

Greetz

Adam

Posted by: phaeron May 6 2007, 09:45 PM
Yes, you can do this. Append a few files and create a job (checkbox at bottom of save dialog), and you should see an example of a script appear in the VirtualDub.jobs file. You can then rig a batch file or other program to construct a script manually and invoke that via command line (VirtualDub /i).

Posted by: Sports videos May 7 2007, 06:51 AM
Thank you phaeron,

I will try that today. Sounds good.

Posted by: zistrosk Feb 12 2011, 04:03 AM
All,

For everyone here, I'm posting my solution to the problem of "appending all files in one directory". I too found it a little bothersome that the append function doesn't allow you to multi-select files to append, so I went the batch route. Here is a batch file for Windows XP DOS that will take all AVI files from one directory and append them into a different destination directory under the name of the first file found in the source directory. I did what was suggested above, ran Virtual Dub, open a video file, appended a couple, and added the job to the batch queue as a "save as AVI" job. Then I looked in the VirtualDub.jobs file, and wrote a DOS batch file that would read the source directory and create a job/script to append them all to a destination directory, and then start VirtualDub to get the job done. There are plenty of comments in here, in the REM statements, but a couple things should be noted on how to use this:

1. Set "vdloc" to the path your VirtualDub resides in. No spaces are allowed in this path.

2. Set "vcexe" to the executable name of VirtualDub. It's set to "VirtualDub.exe" below. Change it to what you have, if it's different.

3. Set "srcpat" to the MSDOS wildcarded style directory filter that picks up all the files you want to append. This can be "*.avi" as I have here, or something different, like "JK*.avi" or "qz.*" or whatever. Just remember, if it picks up files that VirtualDub can't process, then VD will crash.

4. Set "srcdir" to where the video files are NOW that you want to process. I have mine set to d:\fraps\movies, since I'm crunching Fraps videos.

5. Set "dstdir" to where you want the output video to reside. This should be some other directory than what is in "srcdir", since the output file will be named the same as the first file "srcpat" returns from "srcdir".

6. Note that about halfway down, there is a line that says:
-------> type %vdloc%VirtualDub.jobs.setcompdata >> %vdloc%VirtualDub.newjobs
This line adds in the information from a file called "Virtualdub.jobs.setcompdata", which was created by me. I found that when I ran a test append, selected the DIVX codec, and added it to the batch queue, it also added this rather largish and very long line in the SetCompData function, and it was frankly too large to copy and paste into a DOS batch file to just echo out to the "VirtualDub.newjobs" file, because this long SetCompData line was longer than the longest allowable DOS line. To fix this, I copied this line off with my text editor (gvim), and saved it to a new file, which gets appended in the middle. If YOUR compression codec doesn't make SetCompData create a 4k input line, then maybe you won't have to do this. At any rate, I've included my SetCompData line below the source code for the DOS Batch file, so you can see what I mean.

7. The DOS batch script, after it's created "VirtualDub.newjobs", calls VirtualDub to execute it (/s) and exit after it's done (x/) using:
start %vdloc%%vcexe% /s %vdloc%VirtualDub.newjobs /x
This means that once VirtualDub has been started, the DOS batch file will exit. This is normal.

I called it "CONVFRAPS.BAT" and here is the source code:

CONVFRAPS.BAT:
--------------------------------------------------------------------------------------------------------------------------------
rem use this to setup the batch job file to use virtualdub to compress and append
rem every avi in d:\fraps\movies into e:\frapsmovies
@echo off

rem vdloc is the path location for virtual dub
set vdloc=C:\Installed\VideoTools\AutoGKVirtualDub\VirtualDub-1.9.8\

rem vcexe is the executable for virtual dub
set vcexe=VirtualDub.exe

rem srcpat is the source filename pattern for files to recompress and append with VirtualDub
rem modify srcpat as you need. for example, to get all gw*.avi set srcpat=gw*.avi
set srcpat=*.avi

rem srcdir is the source directory full of files for handbrake to process
rem set srcdir=D:\fraps\movies\
set srcdir=d:\fraps\movies\

rem srcdir2 has the same as srcdir, but all backslashes (\) are doubled (\\)
set srcdir2=%srcdir:\=\\%

rem dstdir is the destination directory for virtual dub to write the output to
rem set dstdir=e:\frapsmovies\
set dstdir=e:\frapsmovies\

rem dstdir2 has the same as dstdir, but all backslashes (\) are doubled (\\)
set dstdir2=%dstdir:\=\\%

rem get list of files to include in append operation
dir /B "%srcdir%%srcpat%" > %dstdir%files.txt

dir %dstdir%*.txt

for /F "delims=?" %%i in (%dstdir%files.txt) do (
set firstfile=%%i
goto :gotfirstfile
)
:gotfirstfile

echo first file : %firstfile%

rem start building the new job script into VirtualDub.newjobs in the VirtualDub directory

echo // VirtualDub job list (Sylia script format) > "%vdloc%VirtualDub.newjobs"
echo // This is a program generated file -- edit at your own risk. >> %vdloc%VirtualDub.newjobs
echo // >> %vdloc%VirtualDub.newjobs
echo // $signature 0 1 >> %vdloc%VirtualDub.newjobs
echo // $numjobs 1 >> %vdloc%VirtualDub.newjobs
echo // >> %vdloc%VirtualDub.newjobs
echo // $job "Job 1" >> %vdloc%VirtualDub.newjobs
echo // $input "%srcdir%%firstfile%" >> %vdloc%VirtualDub.newjobs
echo // $output "%dstdir%%firstfile%" >> %vdloc%VirtualDub.newjobs
echo // $state 0 >> %vdloc%VirtualDub.newjobs
echo // $id 68e3ea8905b3fbeb >> %vdloc%VirtualDub.newjobs
echo // $start_time 00000000 00000000 >> %vdloc%VirtualDub.newjobs
echo // $end_time 00000000 00000000 >> %vdloc%VirtualDub.newjobs
echo // $script >> %vdloc%VirtualDub.newjobs

echo VirtualDub.Open("%srcdir2%%firstfile%","",0); >> %vdloc%VirtualDub.newjobs

rem use the call to doappend to create the append lines for each additional file found
set chkval=%firstfile%
for /F "delims=?" %%i in (%dstdir%files.txt) do call:doappend "%%i" "%firstfile%" "%srcdir2%" "%vdloc%"

echo VirtualDub.audio.SetSource(1); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.audio.SetMode(0); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.audio.SetInterleave(1,500,1,0,0); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.audio.SetClipMode(1,1); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.audio.SetConversion(0,0,0,0,0); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.audio.SetVolume(); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.audio.SetCompression(); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.audio.EnableFilterGraph(0); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.video.SetInputFormat(0); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.video.SetOutputFormat(7); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.video.SetMode(3); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.video.SetSmartRendering(0); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.video.SetPreserveEmptyFrames(0); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.video.SetFrameRate2(0,0,1); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.video.SetIVTC(0, 0, 0, 0); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.video.SetCompression(0x64697678,0,10000,0); >> %vdloc%VirtualDub.newjobs
rem use type to append the SetCompData line generated in a test run, to this script
type %vdloc%VirtualDub.jobs.setcompdata >> %vdloc%VirtualDub.newjobs
rem echo VirtualDub.video.SetCompData(0,""); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.video.filters.Clear(); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.audio.filters.Clear(); >> %vdloc%VirtualDub.newjobs
rem echo VirtualDub.subset.Clear(); >> %vdloc%VirtualDub.newjobs
rem echo VirtualDub.subset.AddRange(0,999999); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.subset.Delete(); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.video.SetRange(); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.project.ClearTextInfo(); >> %vdloc%VirtualDub.newjobs
echo // -- $reloadstop -- >> %vdloc%VirtualDub.newjobs
echo VirtualDub.SaveAVI("%dstdir2%%firstfile%"); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.audio.SetSource(1); >> %vdloc%VirtualDub.newjobs
echo VirtualDub.Close(); >> %vdloc%VirtualDub.newjobs

echo // $endjob >> %vdloc%VirtualDub.newjobs
echo // >> %vdloc%VirtualDub.newjobs
echo //-------------------------------------------------- >> %vdloc%VirtualDub.newjobs
echo // $done >> %vdloc%VirtualDub.newjobs

del %dstdir%files.txt

@echo on
type %vdloc%VirtualDub.newjobs
@echo off

rem /s means run specified script
rem /x means exit when virtualdub is done

@echo on
rem starting virtualdub to compress and append all the files from %srcdir% to %dstdir%
start %vdloc%%vcexe% /s %vdloc%VirtualDub.newjobs /x

rem pause

exit

:doappend
if %1==%2 GOTO:EOF
set file=%~1
set src=%~3
set vdl=%~4
echo VirtualDub.Append("%src%%file%"); >> %vdl%VirtualDub.newjobs
rem note using file=%~1 instead of file=%1 strips enclosing quotes before assignment
GOTO:EOF
--------------------------------------------------------------------------------------------------------------------------------

Here is what is in my VirtualDub.jobs.setcompdata file that I append with the "type command" above:

VirtualDub.jobs.setcompdata
--------------------------------------------------------------------------------------------------------------------------------
VirtualDub.video.SetCompData(3012,"AAAAALwCAACQsggAXHZpZGVvLnBhc3MALgBwAGEAcwBzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAEAAEFTIEAgTDUAIABMADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAIERITFRcZGxESExUXGRscFBUWFxgaHB4VFhcYGhweIBYXGBocHiAjFxgaHB4gIyYZGhweICMmKRscHiAjJiktEBESExQVFhcREhMUFRYXGBITFBUWFxgZExQVFhcYGhsUFRYXGRobHBUWFxgaGxweFhcYGhscHh8XGBkbHB4fIQAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAACWAAAAZAAAAAEAAAABAAAAAAAAAAQAAAADAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAGQAAAD0AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABkAAAAZAAAAAEAAAAKAAAAAQAAABQAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAAoCgAAAAAAAQAAAAEAAAAeAAAAAAAAAAIAAAAAAAAAAAAAAIAAAAAAAAAABgAAAAEAAAABAAAAAAAAAAAAAAAsAQAAAAAAAAEAAAAfAAAAAQAAAB8AAAABAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAADPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");

--------------------------------------------------------------------------------------------------------------------------------
There. Do you see what I mean? SetCompData was way too large to fit on one line of a DOS prompt!

Here is a copy of one append I did recently, as seen from VirtualDub.newjobs, created by the above script:

--------------------------------------------------------------------------------------------------------------------------------
VirtuaDub.newjobs
--------------------------------------------------------------------------------------------------------------------------------
// VirtualDub job list (Sylia script format)
// This is a program generated file -- edit at your own risk.
//
// $signature 0 1
// $numjobs 1
//
// $job "Job 1"
// $input "d:\fraps\movies\Toontown 2010-12-20 15-46-14-29.avi"
// $output "e:\frapsmovies\Toontown 2010-12-20 15-46-14-29.avi"
// $state 0
// $id 68e3ea8905b3fbeb
// $start_time 00000000 00000000
// $end_time 00000000 00000000
// $script
VirtualDub.Open("d:\\fraps\\movies\\Toontown 2010-12-20 15-46-14-29.avi","",0);
VirtualDub.Append("d:\\fraps\\movies\\Toontown 2010-12-20 15-55-55-92.avi");
VirtualDub.Append("d:\\fraps\\movies\\Toontown 2010-12-20 16-04-31-14.avi");
VirtualDub.audio.SetSource(1);
VirtualDub.audio.SetMode(0);
VirtualDub.audio.SetInterleave(1,500,1,0,0);
VirtualDub.audio.SetClipMode(1,1);
VirtualDub.audio.SetConversion(0,0,0,0,0);
VirtualDub.audio.SetVolume();
VirtualDub.audio.SetCompression();
VirtualDub.audio.EnableFilterGraph(0);
VirtualDub.video.SetInputFormat(0);
VirtualDub.video.SetOutputFormat(7);
VirtualDub.video.SetMode(3);
VirtualDub.video.SetSmartRendering(0);
VirtualDub.video.SetPreserveEmptyFrames(0);
VirtualDub.video.SetFrameRate2(0,0,1);
VirtualDub.video.SetIVTC(0, 0, 0, 0);
VirtualDub.video.SetCompression(0x64697678,0,10000,0);
VirtualDub.video.SetCompData(3012,"AAAAALwCAACQsggAXHZpZGVvLnBhc3MALgBwAGEAcwBzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAEAAEFTIEAgTDUAIABMADUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQAAAAAAAAAIERITFRcZGxESExUXGRscFBUWFxgaHB4VFhcYGhweIBYXGBocHiAjFxgaHB4gIyYZGhweICMmKRscHiAjJiktEBESExQVFhcREhMUFRYXGBITFBUWFxgZExQVFhcYGhsUFRYXGRobHBUWFxgaGxweFhcYGhscHh8XGBkbHB4fIQAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAACWAAAAZAAAAAEAAAABAAAAAAAAAAQAAAADAAAAAQAAAAEAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAGQAAAD0AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABkAAAAZAAAAAEAAAAKAAAAAQAAABQAAAAAAAAAAAAAAAUAAAAFAAAABQAAAAAoCgAAAAAAAQAAAAEAAAAeAAAAAAAAAAIAAAAAAAAAAAAAAIAAAAAAAAAABgAAAAEAAAABAAAAAAAAAAAAAAAsAQAAAAAAAAEAAAAfAAAAAQAAAB8AAAABAAAAHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAADPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA");

VirtualDub.video.filters.Clear();
VirtualDub.audio.filters.Clear();
VirtualDub.subset.Delete();
VirtualDub.video.SetRange();
VirtualDub.project.ClearTextInfo();
// -- $reloadstop --
VirtualDub.SaveAVI("e:\\frapsmovies\\Toontown 2010-12-20 15-46-14-29.avi");
VirtualDub.audio.SetSource(1);
VirtualDub.Close();
// $endjob
//
//--------------------------------------------------
// $done


Well, there it is. It's a beast, but it runs like a well oiled machine.

Enjoy! I hope you use it, and modify it as needed, to help you with your killer append jobs (until multi-append is added to VirtualDub).

Best Regards,

Zistrosk


Powered by Invision Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)