More or less yes, you understand it. But what my util is doing is intercepting the PlexTranscoderNew.exe and replacing itself with a "director" that knows how to funnel the requests to a 2nd or 3rd computer. The part you can't overlook however is that without a fundamental change to the Plex server itself we have constraints we have to work with. In this case, Plex thinks it's talking to the transcoder and is handing off the one small piece to get transcoded. Until this piece is done the Plex server will not send another piece to get worked on.
So each "client" transcoder has to be able to transcode at least at a speed of 1.x or you can run into problems.
1. This would need a change in the server. At present it assumes a speed of at least 1.x to 1 or it will cause stuttering.
2. My util is only going to focus on real computers that can run ffmpeg or PlexNewTranscoder on them at better than 1.x speed.
While I'm sure distributed encoding could be done numerous ways, I'm only going to focus on Windows machines to start with then Linux computers. My goal isn't to make use of low power CPUs but to lead the way in building out big Plex server environments where you can stream transcoded material to 20 clients for example. With 3 i7s computers for example you could handle a huge "personal" streaming load (not commercial) as well as build BIF/Index files, sync files etc at the same time while reserving CPU cycles on the main Plex server.
That's what I envision anyway. The replacement of having to try and run 2 or 3 different Plex servers to handle the load...
Carlo
PS Now if you were talking in general and not what I'm currently working on then just ignore this. :)
yeah i get, and agree with, what you are saying (mostly), since we are just 'outsiders', there is many restrictions/limits without a big change inside plex itself. we you are doing is actually a very early stage of this, just proving that distribution of transcoding is possible. the rest i believe has to be done by someone inside plex.
like you said, if you replace the transcoder.exe with 'distributor.exe', then the listing server will not be doing transcoding. well, if we have help from plex, this should be resolved very easily. it only needs plex to change it process logic. like on the listing server, we have at least a "distributor", and optionally a transcoder, so when the transcode starts, server passes the file to distributor first, and then, distributor sends clips back to transcoder on the very same computer, plus other transcoders is there is any.
what i don't quite understand is why at least 1x speed is need? is it just the problem we have at this stage, or is it a logical problem?
from my understanding, let's say i have one server with 0.6x capability, and plex splits clips into 1 minute segments. now before playing, i need to wait 100 seconds for the first minutes to be transcoded and then send back to me. and after 1 minute's playback, i will wait an extra 40 second for the second minute's clip to play.
but if i have two 0.6x transcoders, plex will further split this 1 minute clip into two 30 seconds clip. and then, i still wait 100 seconds, and start the first 30 second's playback. indeed, but after this first buffering, i will not need to buffer any more. because for the second 30-s clip, the second server is taking 60-s to transcode (which is more than enough). and for every 30 seconds afterwards, the transcoder has 60 seconds to transcode it. so, no more wait.