This workaround should no longer be necessary with newer Plex versions: https://forums.plex.tv/t/subtitle-burn-in-improvement-test-build/884481
Old content left here for reference:
For some reason, although Plex supports hardware-accelerated HDR tone mapping, Plex decides not to use it when subtitles need to be burned in. This results in extremely slow transcoding on hardware that should be able to keep up using hardware acceleration. I've noticed this issue on my server with Intel QuickSync, and this fix is made specifically for that case.
Before the fix, the SW tone mapping was only able to do 6-7 fps on a i5 7400T for an HDR 4K->1080p transcode. With the fix, that same transcode happens with HW tone mapping, and goes up to 82 fps. Even for HDR 4K->4K, this CPU is able to do 35 fps using QuickSync, thus keeping up with at least one video stream.
By wrapping "Plex Transcoder" with a script which replaces the software tone mapping with hardware tone mapping.
A filter configuration for software tone mapping looks like this:
[0:0]scale=w=1920:h=1080:force_divisible_by=4[0];[0]format=p010,tonemap=mobius[1];[1]format=pix_fmts=nv12[2];[2]inlineass=font_scale=1.000000:font_path=/usr/lib/plexmediaserver/...[3];[3]hwupload[4]
A filter configuration for hardware tone mapping looks like this:
[0:0]scale_vaapi=w=1920:h=1080:format=p010[0];[0]hwmap=derive_device=opencl,tonemap_opencl=tonemap=mobius:format=nv12:m=bt709:p=bt709:r=tv,hwdownload[1];[1]format=pix_fmts=nv12[2];[2]inlineass=font_scale=1.000000:font_path=/usr/lib/plexmediaserver/...[3];[3]hwupload[4]
For the linuxserver.io Plex docker image, I've attached a script which can be added into custom-cont-init.d (by using a bind mount) that fixes the issue described here. Use at your own risk, it may cause issues in other transcoding scenarios which I didn't test yet.
I wanted to put some perspective on why Plex had to change priorities as some may not be aware.
Linux kernel 6.8 broke HDR tonemapping for Intel encoding accidentally. And this bug was shipped with ubuntu 24.04 LTS release and won't have the fix until 24.04.1 in probably 6 months to a year. Non-LTS releases can update to the fixed kernel already, but LTS channel is stuck with it.
This sent everyone in a panic, because it means everyone was updating and unable to use Plex HDR content without issues.
Sadly, it makes sense that Plex has to change priorities... The subtitle burnin can be avoided by turning off subtitles or using non-image based subtitles like srt. There are many ways around that issue.
Many paying customers could not get around their vm hosts with Intel hardware being unable to display tonemapped content.
Unfortunately, it's a better business decision to fix the issue users can't work around first, especially when they know there's not going to be a fix by Ubuntu for months.