Printable Version of Topic
Click here to view this topic in its original format
Unofficial VirtualDub Support Forums > VirtualDub Development Forum > 'clustering' With Virtualdub(mod)


Posted by: Suiryc Aug 8 2003, 09:44 PM
Hi

As some of you may have noticed in the previous version of VirtualDubMod (1.4.x) we (at some point) merged a mod from Thomas Matern (see this http://virtualdub.everwicked.com/index.php?act=ST&f=5&t=423) that would distribute encoding over a LAN.
We encountered some problems with this mod : it would work well for its purpose (i.e. distributed encoding), but would cause some troubles for a 'normal' use of VirtualDubMod (e.g. running the exe to process the queued jobs - using the commandline options - would crash the program : indeed the mod was initializing a bunch of objects when opening the 'Jobs' window, and in this specific case the 'Jobs' window wasn't opened) etc.

Since the author of this mod couldn't join our team (he had no more time to work on the mod), and that none of the active devels knew how exactly would work this mod, nor had time to learn it and extend it in any way, this mod had been removed in the latest versions (1.5.x) until someone with enough knowledge in this field would join us to fix all the issues.


It seems some of you are still using an old version of VirtualDubMod expecially for this feature. This is why we received (as well as Avery Lee) in our Mailing-List (virtualdubmod-general@lists.sourceforge.net) a mail from Andrey Gule that I think may interest some of you.
This person made a program to reduce the need of HD space (for some of the intermediate files).
I will thus (as he granted us to do) paste his message here :

QUOTE

From: "Andrey Gule" <krolyk AT el DOT ntu-kpi DOT kiev DOT ua>
To: phaeron AT virtualdub DOT org
CC: virtualdubmod-general AT lists DOT sourceforge DOT net
Subject: VDubMod cluster compression Helper
Date: Fri, 8 Aug 2003 11:35:00 +0300


Hello, guys.

Avery - once again, thanks for keeping up with this essential tool. I just wonder, what we would do if there would be no VirtualDub wink.gif
You might recall, we had a conversation some time ago. Or you might not, I guess you receive mail from thousands of people. We spoke about factorization techniques used in AVI FPS info.
Anyway wink.gif

You, DubMod guys, have made a great work gathering all VDub modifications work together and work just fine. Personally I use now only DubMod (and yes, I use VBR mp3 - ah, what a shame! wink.gif

OK, let me get to the point. I don't know why this part is no longer supported in DubMod 1.5.* - I'm talking about Net compression. It appears to be VERY useful. OK, no 2-pass is the problem, but.. Having 1-pass encoding done by 5-10 PCs is VERY good thing, believe me wink.gif

Look, I have a VHS VCR, video capture and some friends with video cameras. They ask me from time to time to capture their videos and burn them on CDs.
And here is where it kicks in: processing video with some filters to get it look better makes my iCel 1,4 run at 1 FPS, which is miserable. I have 10 PCs in my office, 1 FPS on ten PCs turns out to be 10 FPS which is much more better wink.gif This way I can have 30 hr task completed in 4-5 hrs.

But there is a major drawback in the method VirtualDubMod 1.4.13 use.
It first processes the file via multiple PCs into multiple files, and then runs a task to append all these part altogether. Thus, it requires twice as much space, as the result file will take.

As far as I am quality-obsessed, I use HuffYUV (i.e. no loss compression) in the intermediate stage. And HuffYUV means up to 40 GB/hr. Usual tape is 1,5-2 hr. This means that I can process only one hour at a piece on my 80G hard disk. And if I buy a new 120G HDD I will get only 60G more of working space.

This seems to be nonsense for me. I tried to work around this feature.

The idea is simple: why should I put these files all together into one if I only need them to be processed and deleted? Also Dub can easily append several files and work with them as with one big file.

First thing came into my mind was just open the 1st file in Dub and then append all other files.
Two problems: 1 file per minute or so, that is you have to open 80 files in correct order.
The second problem: the order. Files are numbered as they are processed, not as they are played in video.

DubMod stores this (and some more) information in .parts file. OK, I have looked through it, guessed what means what. Then I exported it to Excel, sorted the table by the begin frame number and this way I received correct order of parts numbers. Then I go to Dub, Append AVI segment, Append, Append... I've done this operation for two videos and then I started to think: there must be another way.

The other way I found in Dub script: .jobs file. There is a command Open followed by multiple Append's. OK, this is it. I multiply the line with Append, then I copy as a vertical block a sorted column from Excel and I can see a correct numbers right in correct lines of .jobs script. I only have to put the numbers into their place inside the line of script.

Doing this once more made me think hard again. And the thing is that I'm a programer, and this is rather a diagnosis than an occupation wink.gif

Well, enough of talking. I've coded a utility that takes .parts file for input and generates Open-Annend part of .jobs script, all based on the info from that .parts file. Interface should be very simple for anyone who is able to use CLI.

It's very simple to use: after you taks was processed by the cluster of PCs, abort the creation of one big avi. Open Dub, open the any small avi, setup everything you need and save the job. You might setup several jobs with you video if you need to: like 1st and second pass of DivX compression.
Close Dub, run my tool (VDMCH) with the name of the video being processed as a parameter. You'll get a file named "your_video_name.jobs.part".
Edit you Dub's .jobs script: replace line with Open(... with the contents of the .jobs.part file: there is one Open and multiple Append's.
Now save the script, open Dub and run your jobs.

That's it, no more disk space waste.

If anyone wants I may send him a source code (coded in MS VC++ .NET 2003, in C++, plain WinAPI console application, STL, also some comments wink.gif.
You decide what to do with it and how to use it. I would be very glad if you incorporate compress over network feature in newer DubMod releases, and I would be even more if my code will be of any use for you.

Thank you for your attention, this is all. The tool is available at http://Hopka.kiev.ua/ in both zipped and uncompressed versions.

PS sorry for so much talk. Feel free to transfer this info to forums/etc., wherever you think this would be listened to. The soft is usual 'freeware/no warranty/use at your own risk' - feel free to distribute.


So if people are interested in either helping cleanly implementing a LAN mod again in VirtualDub(Mod) and / or using Andrey Gule's tool, they know what to do smile.gif

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