PlexTranscoder.exe default to higher priority?

Is there a way to default the PlexTranscoder.exe process to “Above Normal” or even “High” on Win 10?

Not seeing any setting on the server to do that. Right now it defaults to “Normal”

My server is only used for Plex but I do have some background apps running 24/7 (i.e. antivirus, VNC, Defrag background app). I want the transcoder to be a higher priority than everything else.

yeah that doesn’t really help me since the process is new every movie that is viewed thus will go back to “normal” status.

I know how to change priority in the task manager. I just want it to auto set a higher priority every time it’s ran.

Maybe this might be a feature request.

@Joe4992 said:
yeah that doesn’t really help me since the process is new every movie that is viewed thus will go back to “normal” status.

I know how to change priority in the task manager. I just want it to auto set a higher priority every time it’s ran.

Maybe this might be a feature request.

Why? Just set the setting in Plex to make my cpu hurt.

@Joe4992
There is a software called “Prio” that simply modifies the windows task manager so that the priority you set gets “saved” and gets re applied every time the process is started. I use it on the Plex transcoder with great results.

@danjames92
That does nothing for the priority, it only makes transcoding higher quality (more demanding).

1 Like

@danjames92 said:

@Joe4992 said:
yeah that doesn’t really help me since the process is new every movie that is viewed thus will go back to “normal” status.

I know how to change priority in the task manager. I just want it to auto set a higher priority every time it’s ran.

Maybe this might be a feature request.

Why? Just set the setting in Plex to make my cpu hurt.

What he said!

Thanks for the tip with that program. Installed it and saved my PlexTranscoder.exe process to “above normal” and now it sticks. Also saved the “Plex Media Server.exe” process to above normal. Everything else will remain normal.

I’m also seeing a process “PlexScriptHost.exe”. No clue what that does but should it be above normal also so plex doesn’t lag?

No clue why this isn’t a built in feature on the server settings. This would help push out that little bit extra on the transcodes if someone needed it.

@Joe4992
A further tip could be to lower the priority a bit on CPU hungry processes like virus scanning etc. Sometimes, such programs sets their own processes to a higher priority, and with Prio you could set them to normal (or lower) to not interfere too much with the transcoder.

About plexscripthost processes, they only use CPU when you scan something in so I presume they relate to downloading metadata. If I were you, I would not raise their priority. Because making sure they (and Plex scanner) have a lower priority than the transcoder ensures the transcode will not be disturbed even if you scan things in.

To make sure Plex is “snappy” raising the main process (plexmediaserver.exe) itself can help as well. It uses CPU when you or others are browsing items etc.

Yes it should be built in but not many seems to care about CPU priority. Not sure why as it really is important to Plex and it really makes a difference.

1 Like

Congratulations, you just made a bunch of background processes the highest priority on your box. :slight_smile:
Now when scanning in the background and when the transcoder gets called for simple things it will take priority when Plex was running it at a lower priority on purpose so it doesn’t interfere with other operations… Things like BIF/Index generation will now compete with actual transcodes.

SYNCing to clients or the cloud will now compete with real-time transcodes for clients.

The Plex transcoder is used for a lot of things and not just the real-time transcodes. Plex internally manages the priority they run at so as not to interfere with other things.

Worth noting there are setting built into Plex to control this and one of them was mentioned by @danjames92 in his post above. That setting controls the priority of real-time encodes. By default it’s set at AUTOMATIC so the system will balance the need/use of the CPU with other things it needs to do. Setting it to MAKE MY CPU HURT gives the transcoder highest priority when a user is doing real-time transcoding.

There are other similar settings for what Plex considers background transcodes such as BIF index creation, optimization of files, Conversion and SYNCing of files, etc

Now regardless of what the server thinks it’s doing it will get over wrote by your priority settings.

Keep in mind that real-time encodes aren’t going to push your CPU to 100% on purpose if they don’t need to do this. Plex throttles the transcoder on purpose. It gives you settings to adjust this as well in the transcoder section of the server settings.

Why would you want to push your CPU to 100% or near this for brief moments for real-time transcodes (remember when the buffer is filled it throttles) then back to near zero again over and over again? Hook a watt meter up to the computer and watch what you do to your power input on many computers.

Basically, it sounds like you are trying to solve a problem that doesn’t exist on your system instead of adjusting the settings in the server app already given to you. Are you experiencing problems in any way where videos aren’t being transcoded/delivered on time to the client?

BTW, you did set exceptions in your anti-virus program to not run on Plex directories or your media directories correct?

@cayars
What are you going on about? There are not many things that make Plex adjust its own priority on the transcoder. Where have you got that information?

For one thing, Plex used to have a checkbox saying to run background transcodes in a lower priority, but afaik that has since been removed. Last time I checked, background transcoder only gets lower priority now if the user are at max transcode limit (set by user). This is not relevant in this topic. Maybe you are thinking of the one to put the scanner in low priority? But his settings does not interfere with that.

Secondly, setting that setting to make my CPU hurt should not affect the priority of the process? I hope to be proven wrong but afaik it only passes extra arguments to the transcoder regarding quality. There is even an article on what different arguments it sends. I haven’t seen any mention there of priority? And frankly associating that setting with priority wouldn’t make sense anyway.

Please explain or tell where you got this information.

First, if you know what you’re doing (sounds like you do) and know what you changed then if you see any problems happen down the road you will know how to undo them and will know why/what caused it so you are probably ok.

I have no problem with people tinkering and trying stuff and will be the first to admit I do this type of thing myself to check for possible improvements.

However, my mini “rant” was that I worry about other people reading this since it’s a public forum and think that Plex got something wrong and that they need to change the priority of the transcode process also. THEY DON’T. I probably should have worded that better but it’s early morning and I just got my first cup of java. (apologies) :slight_smile:

First on the electrical thing I mentioned. If you have a whatsup meter or similar you can connect it inline between your computer and the socket and watch how much more power some computers use when the CPU kicks in to what’s called turbo mode. It goes from an energy saving mode to a power hungry monster (exaggerating). This is computer dependent of course but something to check if you have a meter to do it. Kind of cool to know how much juice your system is using under different loads.

That aside. The Plex transcoder is used for a lot of different processes that take place in Plex. From image extraction, to optimization, to syncing to bif generation to meta-data collection to real-time encodes. There is no question about this as you can see the commands issued in the logs files. So with that said making a change the always makes the transcoder run at a higher priority may or may not be a good thing to do depending on what process called it. For example if I just added new media and plex is adding it to my library do I want the meta-data data gathering and the BIF file generation competing with the two real-time encodes that need to happen or do i want Plex to manage this BIG generation as a background task not competing with the real-time encodes?

That’s just one of many different types of things you could change the outcome of. On a more powerful computer you might not notice one way or another but on a machine just hovering above 1.0 transcode speed or could be the difference between successful and not successful real-time encoding.

Plex does internally manage the priority of different uses of the transcoder. It does give priority to real-time transcodes over what it considers background transcodes such as Optimizations and SYNCing for example. Plex intentionally doesn’t want them running at the same level as the “foreground” real-time transcodes.

Plex has thought of these things and does take them into consideration. You can see this yourself by starting a file optimization and watching it’s CPU use. Then start watching a file that requires transcoding on another computer/device while watching the CPU use. You’ll see the transcode used for the optimize take a lower priority and the new real-time transcode dominate the CPU. It’s done this way on purpose.

What I was referring to about real-time CPU use. If you look at settings/server/transcoder setting you will see entries for “Segmented transcoder timeout”, “Transcoder default duration” & “Transcoder default throttle buffer”. These essentially control how often the transcoder runs and how far ahead of the client it needs to be. So regardless of the priority of the transcoder when it “fills” the buffer it will throttle the encode anyway.

This is why you’ll see a high CPU use followed by it doing nothing, then high, then low again. It runs only when it needs to.

Now with all this said which is just the tip of the iceberg so to speak of how it works, what are you trying to accomplish by changing the priority manually? Are you experiencing a problem of some kind? Is Plex not keeping up with transcoding properly? What’s the issue you are trying to solve?

Carlo

PS Yes a couple of options are no longer available to set. Plex doesn’t need to know that OPTIMIZE and SYNC for example should be run in the background vs a real-time encode. It does that by default now. It gives them the resources needed unless those resources are needed for a real-time job. Hence why changing priorities can lead to unexpected behaviors.

@cayars said:

Now with all this said which is just the tip of the iceberg so to speak of how it works, what are you trying to accomplish by changing the priority manually? Are you experiencing a problem of some kind? Is Plex not keeping up with transcoding properly? What’s the issue you are trying to solve?

Well, one day last week I had five remote users on my machine and all of them were transcodes. Two of them were HEVC to H264 transcodes which I know takes additional processing power to accomplish. My i7-4770 was flatline 100%. In fact it was flatline turbo mode at 3.6 Ghz which is 200 Mhz higher than standard speed.

When this happens again, I just wanted to make sure no background process would interfere with the transcoding. Basically everything else can wait until my remote users are done. That is why I wanted the transcode process set at a higher priority, so my Win 10 machine would make sure that gets done first.

And no if you set it to “Make My CPU Hurt”, it does not give higher priority to the transcode. It just makes the transcode the highest quality picture using more of the CPU in the process.

@Joe4992 said:
Well, one day last week I had five remote users on my machine and all of them were transcodes. Two of them were HEVC to H264 transcodes which I know takes additional processing power to accomplish. My i7-4770 was flatline 100%. In fact it was flatline turbo mode at 3.6 Ghz which is 200 Mhz higher than standard speed.

HEVC transcoding will crush your CPU. There is no way around that, regardless of you changing priority. I wouldn’t allow remote users access to any HEVC content because of that limitation - consider making a H264 version of those movies so your CPU won’t be swamped.

@kegobeer-plex said:

HEVC transcoding will crush your CPU. There is no way around that, regardless of you changing priority. I wouldn’t allow remote users access to any HEVC content because of that limitation - consider making a H264 version of those movies so your CPU won’t be swamped.

All my movies are h264. I create all my TV shows in h265 to save on hard drive space. One hour TV show is 500 megs in HEVC 1080p 5.1 surround vs 2 gigs in h264 1080p 5.1 surround.

@Joe4992 said:
All my movies are h264. I create all my TV shows in h265 to save on hard drive space. One hour TV show is 500 megs in HEVC 1080p 5.1 surround vs 2 gigs in h264 1080p 5.1 surround.

A single HEVC transcode will make your CPU spike to 100%. It’s entirely up to you, but I really wouldn’t use HEVC right now until the codec matures and transcoding is more refined. You can use cayars scripts or JuiceWSA’s handbrake guide to reduce the file size of your TV recordings, and then your file sizes will be much smaller and you will allow much easier transcoding to your remote clients.

Why in the world are you transcoding HEVC anyway??
Makes absolutely no sense really.
Best suggestion is only allow 4K streaming to 4K devices and encode to direct play…
Create 1080p for all other devices (H264) at least they have a chance to direct play to non-4K devices and if they do transcode, will not bring your CPU to it’s knees.