Why is Plex's Transcoder slower and larger than Handbrake?

I’m wanting to sync some films and Television shows to my phone just to have whenever I want to watch something (don’t have unlimited data).

Here’s the settings I have setup:

CPU: Ryzen 7 3700X @ 4GHz
RAM: 32GB 3600MHz DDR4
Storage:
Import: Western Digital 5400RPM HDD 12TB
Export: Western Digital Black NVMe 1TB

Plex Transcoder:
x264 (no hardware acceleration), Very Fast, Prefer Higher speed encoding, 0.3 mbps 240p video / 128 kbps audio.

Handbrake:
x264 (CPU), Very Fast, Avg Bitrate 300kbps at 444x240 / 128kbps audio, no 2-pass/no turno 1st pass

Theoretically with perfect efficiency (which never happens), the film Spider-Man at 2:01:08 should weigh in at about 389MB for the entire film doing 428kbps x 7268 seconds

Handbrake’s Results:
Time: 00:11:08
Size: 375MB (wow, smaller than theorhetical)
CPU Usage: 85-90%

Plex’s (Old) Sync Results:
Time: 00:28:38 (does not include download)
Size: 1.12 GB
CPU Usage: 42-67%

Plex’s (New) Download Results:
Time: 00:25:10 (download not bottleneck, phone next to router with 1Gb internet)
Size: 3.1 GB
CPU Usage: 45-65%

Summary:
The Plex Transcoder is 2.25x-2.6x slower than equivalent settings on Handbrake, while being 2.98x-8.27x LARGER than handbrake, all the while looking the same.

What is going on.

  1. Why is it taking longer? Is the settings not correct and it is actually using Very Slow to Transcode? But if that’s the case why are the sizes larger, not smaller.
  2. If it’s accidentally transcoding at a higher bitrate, why does it all look the same?
  3. If the Plex app is reporting the wrong size on my phone, then why is it doing that? Its uses 8x the storage than it needs to!

They should make a plugin that replaces Plex’s transcoder with Handbrake to make it faster, smaller, and just better overall.

Maybe it’s because I’m using Windows, or that it has to transcode to iPhone proprietary files, but when I can use Handbrake + iTunes to transfer for free, what’s the point of paying for the PlexPass for these features if they’re infinitely worse.

If you have any questions I’d be more than happy to help get this issue sorted. I want to use Plex Sync to watch movies on the go, I’m just frustrated by these results

Not sure what the specifics of handbrakes profiles are. You can try changing the transcoder quality.

I listed all the settings that were used. I used the Very Fast 480p30 as a base and modified the necessary options to make it spec-to-spec with the Plex Transcoder, at least what is shown to the end user.

Also, the “Speed” indicators of x264 (Very Fast, Faster, Fast, etc) should be universal from program to program so there should be no deviation in those profiles (Handbrake/Plex/Adobe/Vegas/etc).

I have done that and unfortunately nothing seems to change when changing that setting. It takes the same amount of time, same file sizes, and same CPU Usage.

I apologize for not mentioning this before, but I am running Windows 10 21H1 19043.1165, Plex Windows Server v1.24.1.4931.

Hopefully something can be done to fix this as it is quite annoying.

If I was able to Pre-Transcode those files using Handbrake and mark them as the versions I want downloaded then that could be a workaround, but whenever I have tried that it says that the “Optimized Version” is missing and to transcode it with the Plex Transcode which as previously mentioned is slower (doesn’t matter if you’re doing this ahead of time), and much larger (a big issue for me with my low storage devices).

PS
Also noticed when streaming Direct Play to my PS5, the video would regularly buffer/skip/artifact.
Turning off Direct Play then started using 600mbps on my network, even though the film is only a 31mbps file. Also breaking the setting of Internet Upload Speed under “Remote Access” as I have that set to 300mbps.

Seems like Windows Server has some issues that have gone overlooked as most people use Linux.

The optimizer is supposed to run in the background, thus not interfering with regular operation of the Plex server.
Try to use your Plex server while handbrake is running on the same machine…

If you set “prefer higher speed” in plex, it will work less space-efficient. i.e. your result will be a bigger file.

I understand that if it is a faster encode/transcode that this will result in the video being less optimized thus being larger, but my question was why is it 3-8x larger while also taking ~2.5x longer. Its slower and larger which is the opposite of it should be.

If Plex is set to “prefer higher speed” and identical bitrate to HB, why is Plex still slower & not using as much CPU?

I ran my test again with “Make my CPU Hurt” on both the old Sync and new Download and here are the results I got:

Sync:
Time: 22:21 (faster, when it should be slower)
Size: 1.12GB (still larger than HB using identical bitrate & x264 speed)
CPU: 32-40% (lower utilization than “Prefer Higher Speed”)

Download:
Time: 16:20 (genuinely faster than all previous Plex, but still not faster than HB)
Size: 3.1GB
CPU:47-54% (still lower but not as low usage)

Please see how even though I changed to Make My CPU Hurt, they have the exact same sizes.

I just wanted to give you guys the heads up that there are some issues here, and am hoping it gets fixed.

  1. Why, if everything else is equal (same hardware, same x264 speed setting, same bitrate, same OS), is the Plex Transcoder so much slower and larger?
  2. Why is there a size differential at all when switching between “Sync” and “Download”? it should be exactly the same but it’s not
  3. The “Transcoder Quality” Option seems to be broken as well as the one that is stated to be “best quality with slower transcodes and highest CPU usage” is faster, but has lower CPU usage

Please get the devs to see this as this is an issue with Plex and my hardware.

If you would like me to submit logs or other pieces of proof please reply and let me know as I want to help make Plex better.

The first 2 sentences of my response apply as well.
Optimization is a background operation.
It is scheduled CPU cycles accordingly. Which means any other process on your server computer can “steal” the CPU and the optimization has to wait.

When I mean 30-40% I mean system wide, The transcoder itself is only using as you can see 23% of my entire system.

The only tabs I have open in chrome are the plex tabs, and thats to show Plex’s rendition of my CPU Usage, what is being “Converted” for Old Sync, and my Transcoder Settings.

I also have task manager show the percentage usage that Plex is using, as well as HWinfo to get the exact Clock speeds, individual core usage, and overall CPU Usage,

As you can see there is nothing else that is taking up my CPUs precious time, and Plex itself is the only intensive program doing anything.

Also of note, the E:\Plex Temp is a SATA SSD 2TB SSD that I have validated for 400MB/s sustained reads and writes, and my Plex Server is located on my C:\Program Files which itself is a 1TB NVME SSD.

The only bottleneck that is apparent is the Plex Transcoder itself.

Now to take a look at Handbrake:

Handbrake is effectively using my CPU, not even to its fullest either.

This is an issue with whatever transcoder is being used by Plex not properly using all of its resources on Windows. As I have stated before, Handbrake, Premiere Pro, and After Effects all use much more of my CPU when it is being used to render videos in thoe programs.

Plex is the only video program I have that does not properly use my hardware.

Please let me know what other proof I need to show in order for this to be fixed.

I want Plex to be better, I am trying to help show you that there is an issue here that needs solving. I do not know how to solve it, but I would hope that the employees that are being paid to maintain Plex would.

Thanks,
Liam

Again: the optimizer is conceived as a background process.
It is not meant to put 100% load on your system. In order to keep the rest of Plex responsive to user requests.

1 Like

OK, I then vote for an option to let the optimizer use more system resources until there is an active film being watched by a user. Then it would transcode the offline downloads faster without compromising the speed for the other users wanting to watch content.

Also, what has never been answered is why the file size is so much larger. The only excuse is:

But even when I change it to “Make MY CPU Hurt” The file size doesnt change. For that file size I should be getting either.

1.12GB should be closer to the “1.5mbps, 480p” setting at ~1.23mbps and
3.10GB should be better than the “3mbps, 720p HD” setting at ~3.41mbps

The math does not make sense. Granted this is using rough estimates from downloading them onto my iPhone and not having access to the raw file.

That’s until I got my Dad’s Android phone and saw the actual file size when copying it to my PC

Now since time doesn’t matter and it could take 3hrs and you guys wouldn’t care, lets talk about the size of the file and the bitrate

“Quality Setting”: 0.3mbps 240p
Size: 341MB (THE SMALLEST YET)
Actual Bitrate & Resolution: 388kbps at 420x236

So everything is working on Android, so something is DEFINITELY WRONG ON IOS. Please acknowledge this as this is a serious issue and is unusable especially since iOS doesn’t have the option for upgraded storage

I just wanted some answers as to what may be the problem but it seems like its a “not my problem, so its not a problem” attitude here at Plex.

Thank you,
Liam

Wanted to update this post for further discussion and bug fixing (hopefully)

I have installed the latest update for Plex Server for Windows to Version 1.24.2.4973

The problem is still occurring of file size for 240p, as it is now 1.14GB for the same source file and transcoder settings.

If I could please get a response saying that someone is looking into I will stay hopeful.

Apologies for the heated previous post,
Liam

Update again, I can confirm the same issue now using an RTX 3080 instead of a GTX 1060 6GB, as well as it also happening on my iPod Touch 6th Gen & iPad Air, but not on a Samsung tablet, meaning that this is still an issue, and that it seems to only affect iOS devices.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.