Plex Remote Transcoder - A distributed transcoding backend for Plex

other-dev

#1

I just came across this repo and couldn't find a post on here about it. I AM NOT THE DEVELOPER, but I am really excited about this and have been waiting for something like this.

https://github.com/wnielson/Plex-Remote-Transcoder

Would love to hear peoples take/opinion on this project.


#2

I am the developer of this project. I've just put together a guide here detailing how to get started with two Ubuntu machines.

This is a work in progress, so feedback and bug reports are greatly appreciated.


#3

I am currently working on basic load balancing. Here is a screen shot showing the transcoder running on two separate machines (bottom two windows) and the PMS running on the third (top window). You can see that the transcode machines are working hard, but the PMS master is not. All three of these machines are running as virtual machines (via VirtualBox).

Some additional features and improvement ideas are being collected here.

load-based load balancing


#4

Would this be compatible and run fine on windows machines? Been looking for this for well over 2 years now

Regards


#5

In the current state, no, it will not work on Windows. That's said it shouldn't take too much effort to get it working. Cygwin would likely be a prerequisite.


#6

Brilliant work!!


#7

@wnielson said:
In the current state, no, it will not work on Windows. That's said it shouldn't take too much effort to get it working. Cygwin would likely be a prerequisite.

Would absolutely love if you could port this to windows


#8

I'm excited to see where this goes!


#9

Can I assume that the initial setup via (sudo prt install) needs to be re-run when the PMS is updated?


#10

@CB2131 said:
Can I assume that the initial setup via (sudo prt install) needs to be re-run when the PMS is updated?

Correct. Upgrading PMS will overwrite the changes made by prt. For now you'll probably need to remove the plex_transcoder (located in /usr/lib/plexmediaserver/Resources) before runnning sudo prt install again, at least until I've updated the code to be a bit smarter.


#11

Is Real-Time Load-Based Balancing configured by default?


#12

@CB2131 said:
Is Real-Time Load-Based Balancing configured by default?

Yeah, it is the only load-balancing currently. If you have more than one host, it'll automatically pick the one with the lowest load.


#13

Ahh! Followed your guide precisely. It's non-functional over here. The transcoder does not seem to be firing up at all.


#14

@CB2131 said:
Ahh! Followed your guide precisely. It's non-functional over here. The transcoder does not seem to be firing up at all.

Debugging is tricky. If I had to guess I'd say it is a permissions error related to the PMS temporary directory. Try logging into the slave, su to the plex user, cd to the network shared PMS temp dir and make sure it is writable.


#15

Ok so that did the trick. Seems to be passing transcoding from the master to the slave. So given the Real-Time Load-Based Balancing...this will automatically shift jobs between the Master and Slave nodes based on CPU load?

If One slave exists, does it pass jobs back to the master when CPU load hit a particular %?


#16

@CB2131 said:
Ok so that did the trick. Seems to be passing transcoding from the master to the slave. So given the Real-Time Load-Based Balancing...this will automatically shift jobs between the Master <------> Slaves based on CPU load?

If One slave exists, does it pass jobs back to the master when CPU load hit a particular %?

By default, the master is not considered as a transcode slave. If you want the master to be considered a slave as well, then run prt add_host and use the loopback address 127.0.0.1.


#17

plex@master:/root$ prt add_host
Host: 127.0.0.1
Port: 22
User: plex
We're going to add the following transcode host:
Host: 127.0.0.1
Port: 22
User: plex
Proceed: [y/n]y
close failed in file object destructor:
IOError: [Errno 28] No space left on device
Host successfully added

What are you thoughts on this? What is the location of the host file? i.e. the file where I can remove configured hosts?


#18

@CB2131 said:
plex@master:/root$ prt add_host
Host: 127.0.0.1
Port: 22
User: plex
We're going to add the following transcode host:
Host: 127.0.0.1
Port: 22
User: plex
Proceed: [y/n]y
close failed in file object destructor:
IOError: [Errno 28] No space left on device
Host successfully added

What are you thoughts on this? What is the location of the host file? i.e. the file where I can remove configured hosts?

The configuration file is ~/.prt.conf, which should be /var/lib/plexmediaserver/.prt.conf on the master. There isn't an option to hangs that location yet, but maybe I should add a way to specify a different location.


#19

That config file seems to be empty.


#20

@CB2131 said:
That config file seems to be empty.

Are you running the prt command as the plex user?