Plex Remote Transcoder - A distributed transcoding backend for Plex

@gngs0419 said:
I have a question that may have been answered already, but just in case it hasn’t…

I currently am running a server cluster out of old PC parts in Linux for my computational sciences lab…5 old Core 2 Duo’s nothing fancy. It greatly increases the speed of my figures being outputted.

Anyhow to the question, I would like to know if your Remote Transcoder will work on my clustered server system…in theory this should increase the transcoding power of Plex by leaps and bounds by allowing for distribution of transcode work load.

Is this something that is possible?

If you’re running Linux and the machines can talk to each other, then I don’t see why this won’t work for you.

@wnielson said:

@gngs0419 said:
I have a question that may have been answered already, but just in case it hasn’t…

I currently am running a server cluster out of old PC parts in Linux for my computational sciences lab…5 old Core 2 Duo’s nothing fancy. It greatly increases the speed of my figures being outputted.

Anyhow to the question, I would like to know if your Remote Transcoder will work on my clustered server system…in theory this should increase the transcoding power of Plex by leaps and bounds by allowing for distribution of transcode work load.

Is this something that is possible?

If you’re running Linux and the machines can talk to each other, then I don’t see why this won’t work for you.

Well they talk to each other via the master sending information to the nodes for processing. Then the nodes return the data back to the master for output to the user.

In this circumstance, the idea seems to have merit…given that I can potentially create a transcoding media server to handle anything I can throw at it. That said, I am sure the will be hiccups along the way…but thank you for your quick reply. I will consider the environment and possibly repost if I have a question.

Thanks again,
G

@gngs0419 said:
Well they talk to each other via the master sending information to the nodes for processing. Then the nodes return the data back to the master for output to the user.

Oh, so you have a proper cluster using a job scheduler? This definitely won’t work in that sort of configuration, but if you can setup NFS shares between the nodes and the master then you should be good to go.

@dan.franks@gmail.com said:
Oh, I almost forgot, the software works really really well and setting up the server went really smoothly. Great software, great instructions. Thanks!

@dan.franks@gmail.com said:
I read through all 18 pages of comments in this thread, scoured the forums, reddit, and github, and didn’t see anyone posting any scripts, or links to scripts, to dynamically spin up and down digitalocean instances.

Since it appears you would just have to script the installation instructions a tad (ie. add/remove hosts, edit exports, restart nfs) I’m guessing someone has already done this and I missed it. Does anyone have a digitalocean script that does this?

If not, I could take a stab at it but I am fuzzy on where PRT detects load and could call a script if a certain threshold is passed. In theory I would like to have one nearly unused instance running at all times as a buffer and allow a time for new instances to spin up and handle new load.

I’m also thinking we could use the floating ip / load balancing functionality digital ocean offers. But I haven’t really thought that through very much yet.

We’ve mastered this with digital ocean at our end - I haven’t really cleaned it up enough for public sharing, but if you’re interested PM me.

Is there anyway to use this this solution with the Plex Server on Windows and the remote transcoder being on Ubuntu? If I understood what I read it appears that both the master and slave need to be on Ubuntu but wanted to make sure in case I misunderstood. Thanks.

@almontef said:
Is there anyway to use this this solution with the Plex Server on Windows and the remote transcoder being on Ubuntu? If I understood what I read it appears that both the master and slave need to be on Ubuntu but wanted to make sure in case I misunderstood. Thanks.

Windows is not currently supported in any capacity. We haven’t marked this as “won’t implement”, but we just don’t have any Windows developers on board.

Understand thanks for letting me know. Great solution by the way!!

ssh: connect to host 127.0.0.1 port 22: Connection refused

any fix please?
sorry, came back late …

Note: its working on the Slave server (not working with the master - 127) …

@alhatmy said:
ssh: connect to host 127.0.0.1 port 22: Connection refused

@alhatmy
Can you try:

ssh 127.0.0.1

If it asks you for a password, then add your pubic key to your authorized_keys:

ssh-copy-id 127.0.0.1

@rob256 said:

@alhatmy said:
ssh: connect to host 127.0.0.1 port 22: Connection refused

@alhatmy
Can you try:

ssh 127.0.0.1

If it asks you for a password, then add your pubic key to your authorized_keys:

ssh-copy-id 127.0.0.1

its not asking for (password) yet, it shows the error (port 22: connection refreshed)

Hi @wnielson
Im currently gatthering informations and ideas from your actual code to make a version for windows. I saw you were working on a windows version 11 mout ago. what is your finding or suggestions ? Do you think cygwin is the only way to make it possible. I was wordering if Powershell is powerfull enough to send the transcoding request on a remote host.

PLease share you experience with us. I’ll be glade help the windows community.

@alhatmy said:

@rob256 said:

@alhatmy said:
ssh: connect to host 127.0.0.1 port 22: Connection refused

@alhatmy
Can you try:

ssh 127.0.0.1

If it asks you for a password, then add your pubic key to your authorized_keys:

ssh-copy-id 127.0.0.1

its not asking for (password) yet, it shows the error (port 22: connection refreshed)

Is the error port 22: connection refreshed or port 22: connection refused? If it is showing connection refused, that typically means that ssh is not listening on that port.

@igowas said:
Hi @wnielson
Im currently gatthering informations and ideas from your actual code to make a version for windows. I saw you were working on a windows version 11 mout ago. what is your finding or suggestions ? Do you think cygwin is the only way to make it possible. I was wordering if Powershell is powerfull enough to send the transcoding request on a remote host.

PLease share you experience with us. I’ll be glade help the windows community.

Great, thanks for taking this on! If you can get this working it’ll make a lot of Windows people happy. I don’t know if cygwin is a requirement. I have not used Windows in the better part of a decade, so perhaps PowerShell can do what you need but I have no idea. Anyway, there are really only two components that you need to get this working:

  1. ssh
  2. file sharing (doesn’t have to be NFS)

If you can figure out how to get keyless ssh working between two hosts, then you should be in good shape. From there you’ll need to update the code to support the default paths on Windows (like TRANSCODER_DIR and SETTINGS_PATH). I’m sure you’ll encounter some other issues, but those are the main ones that need to be tackled first. If you can make these changes without breaking support for Linux, please submit a PR!

Good luck and feel free to ask questions and keep us updated on your progress!

Hope somebody can help. I just installed the latest version of Plex (pass version) 1.1.3.2700-6f64a8d and it looks like the changed things again??? Went from /usr/lib/plexmediaserver/Resources/ to /usr/lib/plexmediaserver/. Im going to look into modifying the script, but a proper update would be cool.

Thanks and loves the program!

Ok looks like its where everything is supposed to be. Just seems to get an error when trying to update.

Ok now my dilemma. I guess I had an older version (pre 1.1), so I reinstalled. Now when plex plays the video never starts and just assumes you have played the whole thing (wants to start up the next video). I will say that I have been using this for awhile, so I do not know what could be wrong. I am at a bit of a loss. I tried finding the logs, but did not see any. Any help or pointers in the right direction???

Thanks,
-Chris

Does this work such as:
the master sends the video to the slave for transcode and then directly from the transcode server it is sent to the client? Or, is it sent back from the slave to the master and out to the client?
Also, will this work with the master and slave in seperate locations? both on public IP’s.

Thank you,

Syncing episodes on my phone does not seem to be working. Looks like the transcodes pass through instantly, then there is nothing to xfer to my phone. Is this a known issue?

@shushry said:

@dan.franks@gmail.com said:
Oh, I almost forgot, the software works really really well and setting up the server went really smoothly. Great software, great instructions. Thanks!

@dan.franks@gmail.com said:
I read through all 18 pages of comments in this thread, scoured the forums, reddit, and github, and didn’t see anyone posting any scripts, or links to scripts, to dynamically spin up and down digitalocean instances.

Since it appears you would just have to script the installation instructions a tad (ie. add/remove hosts, edit exports, restart nfs) I’m guessing someone has already done this and I missed it. Does anyone have a digitalocean script that does this?

If not, I could take a stab at it but I am fuzzy on where PRT detects load and could call a script if a certain threshold is passed. In theory I would like to have one nearly unused instance running at all times as a buffer and allow a time for new instances to spin up and handle new load.

I’m also thinking we could use the floating ip / load balancing functionality digital ocean offers. But I haven’t really thought that through very much yet.

We’ve mastered this with digital ocean at our end - I haven’t really cleaned it up enough for public sharing, but if you’re interested PM me.

Sweet! PM sent!

I’m interested to see how difficult this would be to set up with Ubuntu’s MAAS, for both wake-on-lan functionality, as well as BareMetal deployment on demand, or integration with both Juju and MAAS for automated deployment of a complete cluster using charms. Has anyone looked at this yet?

Great work BTW, I’m glad someone decided to approach this functionality.