| 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 |