Arkay
12th November 2002, 13:13
I just had a thought, and figured I'd share it with the coders out there. Has anyone ever considered a distributed network encoder?
The idea is this:
Set up the DNE (Distributed Network Encoder) with a list of all other machines on the network with say dix, avisynth, virtualdub and a DNE client installed along with cpu capacities of those machines.
1. Generate avs script(s) in Gknot or however you please.
2. Load AVS into DNE job window.
3. Hit Encode jobs.
4. DNE then takes your avs and splits it out to 1 script for each of the machines available on the network, trimmed to suit the encoding speed of each machine based on CPU capacity (so all jobs finish around the same time).
5. These scripts are passed off to DNE clients on the other servers along with the required bitrate and quality settings.
6. The DNE client processes (encodes) the avs with the frames being passed via network from the Server.
7. Each client when finished pipes the resultant avi up to the server (or dumps back to the server network drive).
8. The server assembles the clips into the final avi.
You would eventually hit a limit based on your network speed and passing the frames via TCP/IP may be tricky (might be better to do it through network drives (\\server\file.d2v).
Discussions welcome. How nice would it be to do a 3 hour movie in 30 mins ;) Or a smoothdeinterlace slow encode on 10 machines simultaneously as apposed to one. (That's 48 mins to encode something that would normally take 8 hours!!! If you have access to 10 machines at your office for instance :)
This could be set up relatively easily just with mapped drives and a couple of perl scripts. Be nice if it was a single exe though.
Just a thought.
-Arkay.
The idea is this:
Set up the DNE (Distributed Network Encoder) with a list of all other machines on the network with say dix, avisynth, virtualdub and a DNE client installed along with cpu capacities of those machines.
1. Generate avs script(s) in Gknot or however you please.
2. Load AVS into DNE job window.
3. Hit Encode jobs.
4. DNE then takes your avs and splits it out to 1 script for each of the machines available on the network, trimmed to suit the encoding speed of each machine based on CPU capacity (so all jobs finish around the same time).
5. These scripts are passed off to DNE clients on the other servers along with the required bitrate and quality settings.
6. The DNE client processes (encodes) the avs with the frames being passed via network from the Server.
7. Each client when finished pipes the resultant avi up to the server (or dumps back to the server network drive).
8. The server assembles the clips into the final avi.
You would eventually hit a limit based on your network speed and passing the frames via TCP/IP may be tricky (might be better to do it through network drives (\\server\file.d2v).
Discussions welcome. How nice would it be to do a 3 hour movie in 30 mins ;) Or a smoothdeinterlace slow encode on 10 machines simultaneously as apposed to one. (That's 48 mins to encode something that would normally take 8 hours!!! If you have access to 10 machines at your office for instance :)
This could be set up relatively easily just with mapped drives and a couple of perl scripts. Be nice if it was a single exe though.
Just a thought.
-Arkay.