My Plex media server is pretty modest—simultaneous transcodes are basically a no-go. Unfortunately, Roku’s refusal to support PGS subtitles has made this situation a lot more difficult than it should be.
Before We Dive In, Let’s Talk SRTs
You’re probably familiar with traditional SubRip subtitle files, called SRTs. These subtitle files are supported by nearly all playback devices and can usually be identified by their use of a rectangular black background (though this visual quirk is determined by your playback client, not the SRT file itself).
If you were to open an SRT in a text editor, you would see that it’s just a plaintext file with timestamps. For this reason, SRTs are very easy to manage and distribute. If you want a subtitle track for The Godfather, for example, you can just grab an SRT from opensubtitles.org, stick it in your media folder, and select it as the subtitle track in your playback client.
SRTs are a useful asset to anyone who manages a personal media library. However, there are some drawbacks to the SRT format, the biggest of which are accuracy, timing, and style.
Most publicly-distributed SRT files are created through optical character recognition (OCR), meaning that an enthusiastic data hoarder uses software to visually scan and copy the subtitles from a DVD, Blu-ray, or streaming release. This automated extraction method can produce textual errors, but more importantly, it’s release-specific. If you rip a DVD copy of The Godfather and grab an SRT track someone copied from a streaming service, there’s no guarantee that the subtitles will line up with the video. Things get even more difficult when dealing with TV shows—the episodes on the DVD release may be in a completely different order than the Blu-ray release, or one release may use longer intros than the other, and so on.
An automated tool like Bazarr makes it easier to obtain SRTs without experiencing these pitfalls. There’s also a relatively new Plex feature that auto-syncs subtitles to videos. But the problem of style is unavoidable. SRT subtitles are bland, they often fail to properly convey tone or articulation, and they can get in the way of important on-screen action.
PGS Subtitles Are More Sophisticated Than SRTs
Unlike SRT subtitles, which are just plaintext files, PGS subtitles are image-based and encoded directly into an MKV video stream. They can be any shape, size, font, or color, and they may appear anywhere on screen. As a result, they’re often easier to read than SRTs and rarely obstruct on-screen action.
PGS is the most common subtitle format for Blu-ray discs. Movie and TV studios go to great lengths to ensure that PGS subtitles are accurate and correctly timed—something that isn’t always true of community-made SRTs. Films that made creative use of subtitles during their theatrical run, like The Shape of Water, can employ similar creative flair through PGS subtitles in a Blu-ray release.
Plus, you aren’t limited to a single PGS track when encoding an MKV. A Blu-ray release may contain multiple language tracks, detailed SHD subtitle tracks for viewers who are deaf or hard of hearing, and multiple “forced” subtitle tracks for movies that contain occasional foreign-language scenes. You can achieve similar functionality with SRT subtitles, of course, but PGS subs are encoded directly into the video container—you don’t need to do any extra work to find these extra subtitle tracks, they’re right there. From an accessibility standpoint, PGS is very desirable.
I’m a good boy who legally obtains movies and TV shows for Plex. I buy Blu-ray discs, rip those discs on my computer, and stick them on my server. And when I rip them, I want to keep the PGS subtitles. The only thing getting in my way is Roku.
Roku, Why Are You Forcing Me to Transcode?
While Roku does support the MKV container format and can play Blu-ray rips just fine, it does not support PGS subtitles. As a result, I can’t use my PGS subtitles on Roku without transcoding, which places strain on my media server and temporarily stifles its capabilities.
“Transcoding” is one of those scary words that confuses people. But the concept is pretty straightforward. Your client device—a smart TV, game console, phone, whatever—needs to support the video and audio content it receives from your Plex server. If your smart TV doesn’t support 4K playback, or MP4 files, or 7.1-channel Atmos audio, for example, then it will refuse to play a movie with these attributes.
Instead of throwing up its hands and saying, “sorry, you can’t watch your movie,” Plex uses transcoding to get around these compatibility problems. It looks at your client device’s capabilities, identifies that the device is trying to stream media that it isn’t compatible with, and converts the media to a more suitable format in realtime.
Subtitles, even when they’re directly encoded in a video file, are a form of media. And when a client device isn’t compatible with your chosen subtitle format (in my case, PGS), Plex has to burn these subtitles directly into the video stream. Remember, PGS is an image-based format—Plex can’t “read” the subtitles, so it can’t convert the subs to SRT. It must transcode the entire video.
The problem, as you may have guessed, is that video transcoding is very resource-intensive. My weak little Plex server can handle multiple simultaneous 4K streams, but it struggles to deliver more than a single transcoded video stream. So, after I’m done ripping my wonderful Blu-ray discs, I’m left with a nuisance. My media server has to crank into high gear, use extra electricity, and place unnecessary strain on its components every time I fire up PGS subtitles on a Roku device.
I Can Deal With the Problem, but I Shouldn’t Need To
Roku’s refusal to support PGS image-based subtitles places an arbitrary limitation on my Plex server’s capabilities. I mean, it’s a real limitation, but it’s “arbitrary” in that the problem shouldn’t exist.
There are plenty of ways for me to step around this problem. I can select an SRT subtitle track when watching movies or shows on my Roku streamer. However, Plex wants to default to the PGS track even when transcoding is required (so, Roku isn’t the only object of my anger), and this gets really annoying when watching TV shows, as I’m forced to manually select the SRT track every time a new episode begins.
My only solution is to buy a better media server or give up on PGS subtitles. I’m saving up the money to get a decently powerful mini PC to run my Plex server, but in the meantime, I’m ripping my Blu-rays without PGS subtitles and using Tdarr to automatically scrub the PGS tracks that are already on my server. Yeah, I’m waving the white flag. I’ve given up.
But I want to keep the PGS subtitles. They’re nice. They work just fine on my iPhone, on my PlayStation, and on every other streaming client in my home. Roku is the outlier, Roku is making things harder for me. And even if my server were powerful enough to blow through transcodes, I’d prefer to avoid transcoding because it’s a waste.
On the one hand, I kind of understand why Roku doesn’t support PGS subtitles. Roku isn’t a Blu-ray player and will never encounter PGS in a “normal” setting. But you could say the same for Amazon Fire TV, which does support PGS subtitles. If Fire TV can do it, why not Roku?
And before someone comes in with the most obvious solution—replace your two Roku players with something else—man, I’m sorry, that just ain’t happening. Fire TV makes me gag, I can’t deal with the fussiness of Android TV, and as much as I like Apple TV, it’s too expensive. I’m a fan of Roku’s hardware and software, there’s just this one thing that’s bugging me, and I suspect that a generous firmware update from Roku would solve my problem.