Server Version#: 1.24.0.4930 Ubuntu Linux 16.04 LTS
Player Version#: Roku Ultra 4640X - SW v10.0.0 Build 4209 - Plex App v6.8 build 8, wired ethernet (not WiFi, local gigabit wired network) [100Mb, 100BaseT is what Roku Ultra supports]
With Subtitles off, 4K content plays perfectly on 10-bit HDR 4K 60Hz TV with very low CPU usage.
Subtitles on - The only change in settings to produce this result is to enable the stream subtitles.
Notice the video stream is now “Transcode”, something I really don’t want it doing. I tried adjusting Direct Play to “Force”. Enabling subtitles overrides the “Force” setting to produce this same undesirable “Transcode” result, with stuttering and messages complaining the Server is insufficient (which I’m pretty sure it isn’t).
This subtitle caused transcoding creates PMS stuttering on an 8-core FX-8120 CPU with 16GB RAM. What is interesting is the server CPU is only at ~50% loading when this bad behavior occurs. CPU, Network, and RAM resources have plenty of margin (look at the last minute of record which is where Subtitles were turned on)
From the looks of it you’ll need to either convert your image-based DVD subtitles to a format supported by the Roku or get a different set of text-based subtitles.
If the player cannot deal with the subtitles, your server will attempt to burn the subtitle into your video – that means it’s re-encoding your video stream. That AMD FX-8120 of yours is simply not powerful enough to do that in 4K…
Keep in mind: your CPU has 8 cores – Plex will split that job on multiple cores but it’s technically not possible to distribute those computations to as many cores as you like / have. With the video transcoding, handling of the subtitle and transcoding your audio stream it seems your server is fully utilizing 4 of those cores.
As a point of reference / benchmark:
In order to transcode a file to 4K, your CPU needs a passmark score of approx. 12000 for SDR or 17000 for HDR content. Your CPU has a passmark score of approx. 6600
Edit:
If transcoding the stream to 1080p h264 @ 6 Mbps is too much for your CPU (and you don’t want to go forward with the subtitle adjustment mentioned in my 1st paragraph), try to go with a lower bitrate / quality (e.g. 720p @ 4 Mbps)
I looked up HDMV PGS and what I found PGS Subtitle Won’t Appear Fix – How to Convert PGS to SRT appears to match your description of “image based”, along with a description of how to use OCR to convert image to text. I was trying to use the MKV “en” subtitle track.
With this lead, I instead looked (way) down the streams list and selected an SRT OpenSubtitles stream from a Blu-Ray source and subtitle content matched up with sound track while using very little CPU.
It appears I have new understanding and a workaround -I- can use. But this won’t keep others in the house from selecting the wrong one thereby stepping on “landmines” as I did.
The solution appears to be convert my whole collection (a large task), or request that Plex find a way (new feature) to use existing HDMV PGS information and find a low impact way to overlay this image based information onto the existing video stream. Or in the near term allow Plex to recognize and ignore (not present as a subtitle selection option) any HDMV PGS subtitle tracks.
In the interim, there is a workaround for someone who knows what’s going on under the hood. For the others, I guess other household users will be stepping on landmines like I did and bringing Plex Server performance (for any/all other viewers) to a screeching halt when they do.
I extracted one of these tracks and looked at it. It appears as binary which matches your “image-based” subtitles description
Plex can already do that on a number of platforms.
The current-generation player on the Apple TV / iOS will display PGS/Vobsub subtitles just fine without the need to transcode them. I believe the same is true for Android (mobile and TV – but I haven’t recently verified this).
Another workaround could be to use the on-demand subtitle search that’s built into Plex. Though there might be a few landmines too as the subtitles might be based on a different release / cut and need some tuning (e.g. if there’s an offset). https://support.plex.tv/articles/subtitle-search/
Good to know. However when I purchased my Plex Pass years ago Plex was saying the Roku platform would be supported first. With this in mind I ran out and purchased Roku Ultra machines for all TV’s in the house. Replacing all of them will be a modestly large expense, and produce more waste/scrap.
With this new knowledge I’ll have to decide how much pain these various solutions represent before deciding to keep what I have, or expend the effort and money to decide on a new platform solution.
Thank you for you’re help identifying new paths/solutions.
Edit: After reading “On-Demand Subtitle Search”, a useful feature might be to have an admin settable Default Subtitle for each Show Title in a collection. Of course this raises the specter of supporting multiple defaults for multiple languages for households which speak multiple languages; Norwegian, French, Spanish, etc.
In other words, the setup has to be “goof proof”, so users can’t select a wrong subtitle to bring the server crashing down to it’s knees.
I downloaded and tried Subtitle Edit from the link I provided earlier. It works, is free, but requires enough cleanup from the OCR process that unless you enjoy this type of activity and have a lot of free time, it’s not really a solution.
With this in mind, at least for me, the best solution would be to have the PMS “option” to hide all PGS type subtitles so random users and visitors to my home can’t “take down the Plex Server” by selecting a PGS subtitle. Most other users of my system won’t understand much of this conversation, and have to be protected from selecting dangerous options.
The option to hide graphics based subtitles should continue to make text based SRT type subtitles available to users who want subtitles. SRT seems to work well on 4K media while playing on a Roku Ultra.
Of course this leaves the programming problem of detecting non-text subtitles so they can be removed from the list of subtitle options.
I have the impression from @tom80H not being able to handle graphic PGS subtitles is a Roku problem. I don’t know if Plex also does the programming for the Plex Roku app, or if this is the responsibility of Roku. The solution I describe, if it can be done, would have to be performed in PMS.
I must have picked an unusually difficult PGS source. Seems all the digitized letters are different, like there are 7+ OCR versions of ‘a’ (probably different by one or more pixels). And a font was selected where “Ii” looks the same as “Ll” and “1”. The whole mess is easy enough for a human to read, but results in only ~6% accuracy for Subtitle Edit conversion (1 line in 16). The end result is for this large amount of manual intervention conversion 1-day for each episode, 4 Seasons x 12 Episodes is 2-man months to convert the collection. I can’t help but wonder is this was the intention of producers to ensure Blu-Ray couldn’t be ripped and subtitles added to Plex/Kodi/Emby.
At least with your tutorial and things I was able to figure out, yet another semi-automated tool to try on other efforts.
At this point I’ll have to consider stripping PGS/VOBSUB from the files, or finding SRT substitutes for replacement, or just leave the landmines where they are because I don’t have time to convert a bunch of files.
It would be much better if I could configure my Plex installation to not offer detected PGS or VOBSUB as options for Roku Players. Some detection must already be in place since Plex is smart enough to know it must “transcode” PGS & VOBSUB on my installation. This is what I’d like to prevent since it swamps my server for 4K files.
If you use the settings in the article, a one pixel difference should not lead to drastically different results. While the OCR module can use the older “bitmap comparison method” if you tell it to, this is not the default.
Most important is to download the dictionary and the OCR support for the correct language and to activate them, as mentioned in the article.
My plex media sever is a late 2015 iMac running a skylake core i5, and when playing 4K videos with PGS subtitles on any Roku, it will transcode the video to 1080p and the video stutters. I can play 4K videos with PGS subtitles without my sever transcoding them on my appleTV or on my android streaming box (amlogic S912 CPU) just fine.
I was curious, is this limitation on Roku due to limitations with the built in video player made by Roku, so Plex could not add this feature unless Roku makes a change to their software? I had read that on Roku devices, the video is rendered by the built in player.
Is there a chance there could be an update in the future that would fix this issue, or is it a limitation of the CPU on Roku devices, because displaying PGS subtitles on 4K videos is to processor intensive for the Roku’s hardware?
Is there a running list somewhere in table form which shows which clients currently support what features? This running list will need date/version information to filter info as vendors update their products. I might consider buying one new unit to get around this issue on the most used entertainment center. Decide on the other’s later.
As developers, I’d expect you have at least some of this information, and I realize it won’t be an exhaustive list, just the devices you’ve had to look at for whatever reason.