Plagued with subtitle sadness

Latest update of Plex Server on Windows Server 2016 Essentials (ESXi 6.7 VM)

Game of Thrones - all episodes (so far, Seasons 1-5) - I can copy the mp4 to my Windows 10 laptop and play with VLC - (forced?) English subtitles work perfectly by popping up and displaying in English whenever, for Example, the spoken language is Dothraki on the show… so this makes me think that the forced subtitles are properly burned into the .mp4… however, when the same file is played on my Roku, there are no subtitles by default… I can search for subtitles on the Roku interface and select one, which gives me subtitles throughout the whole episode, but not (forced?) which should only make them play when a peeing language is spoken.
Also odd… if I optimize the episode for TV (because my server doesn’t have a lot of processing power for encoding), there is a .srt file created automatically along with the optimized version, but it doesn’t work at all… as a matter of fact, I cannot even search for a new subtitle file with the optimized version… I select English, and the search fails. I have created an account on opensubtitles.org and configured it in the agent to try on the un-optimized files tryI see if the forced works, but many of those have the timing off, or are for a totally different show altogether.
I have ordered and selected the agents as documentation indicates, and have read several posts which indicate solutions involving editing xml files and a whole bunch of seemingly unnecessary crap… so I’m not sure if this is a server agent issue, or what… but since the same file works properly in VLC, why is this process so difficult???
I don’t watch any other shows that really require subtitles, so It seems I should just ditch Plex for the purpose of GOT, and just connect my laptop to my TV and use VLC since it works properly???

Update - I can see (using webtools) that there is an embedded English pgs subtitle on all episodes… not sure if it is only for the original or if they are included in the optimized versions as well, but that must be what VLC is using by default… how do I make it work with Plex and Roku?
By the way, my account audio and subtitle settings are as follows:
Preferred audio lang: English
Preferred subtitle lang: English
Auto-select mode: Shown with foreign audio
SDH: Only show non-sdh (have tried prefer non)
Forced subtitle search: prefer forced (if I select only forced, I never see any in the search)

Take a look at one of those episodes and check out the media information.

First check: Does Plex see the subtitle(s)?

If Plex recognized the subtitle stream(s) inside your episodes, there should be an option to select that subtitle from the episode pre-play screen

General

What information do you get to see if you click on Get Info from that episode’s context menu?
You should be able to get some more technical details by clicking on View XML on that window – the interesting parts is the part from <Media to </Media>.
If you’re not sure how to read it you can post it here.

Media

Media details (original video)
  • Duration 50:04
  • Bitrate 2225 kbps
  • Width 1920
  • Height 1080
  • Aspect Ratio 1.78
  • Video Resolution 1080p
  • Container MKV
  • Video Frame Rate 24p
  • Audio Profile he-aac
  • Video Profile main 10
  • Title Original
  • Overlay

Part

General
  • Duration 50:04
  • File Game.of.Thrones.S06E01.1080p.10bit.BluRay.5.1.x265.HEVC-MZABI.mkv
  • Size 790.18 MB
  • Audio Profile he-aac
  • Container MKV
  • Video Profile main 10
Video Stream
  • Codec HEVC
  • Bitrate 2003 kbps
  • Bit Depth 10
  • Chroma Subsampling 4:2:0
  • Coded Height 1080
  • Coded Width 1920
  • Color Range tv
  • Frame Rate 23.976 fps
  • Height 1080
  • Level 4.0
  • Profile main 10
  • Ref Frames 1
  • Title HEVC x265 10bit Video / 2000 kbps / 1080p / 23.976 fps / Main 10 Profile 4
  • Width 1920
  • Display Title 1080p (HEVC Main 10)
  • Extended Display Title HEVC x265 10bit Video / 2000 kbps / 1080p / 23.976 fps / Main 10 Profile 4
Audio Stream: English AAC 5.1
  • Codec AAC
  • Channels 6
  • Bitrate 192 kbps
  • Language English
  • Audio Channel Layout 5.1
  • Profile he-aac
  • Sampling Rate 48000 Hz
  • Title HE-AAC / 5.1 / 48 kHz / 192 kbps
  • Display Title English (HE-AAC 5.1)
  • Extended Display Title HE-AAC / 5.1 / 48 kHz / 192 kbps (English)
Subtitle Stream 1: English PGS
  • Codec PGS
  • Bitrate 30 kbps
  • Language English
  • Header Compression true
  • Display Title English (PGS)
  • Extended Display Title English (PGS)
Subtitle Stream 2: العربية (SRT)
  • Codec SRT
  • Language العربية
  • Display Title العربية (SRT)
  • Extended Display Title العربية (SRT)
Subtitle Stream 3: English (SRT, external file)
  • Codec SRT
  • Language English
  • Format SRT
  • Title S06E01.26673.eng
  • Transient 0
  • Display Title English (SRT External)
  • Extended Display Title S06E01.26673.eng (English SRT External)
Subtitle Stream 4: English (SRT, external file)
  • Codec SRT
  • Language English
  • Format SRT
  • Title S06E01.eng
  • Transient 0
  • Display Title English (SRT External)
  • Extended Display Title S06E01.eng (English SRT External)
Subtitle Stream 5: Unknown language (SRT, external file)
  • Codec SRT
  • Format SRT
  • Title S06E01
  • Transient 0
  • Display Title Unknown (SRT External)
  • Extended Display Title S06E01 (SRT External)
Subtitle Stream 6: English (SRT, external file)
  • Codec SRT
  • Language English
  • Display Title English (SRT External)
  • Extended Display Title English (SRT External)

Media

Media details (optimized video)
  • Duration 50:04
  • Bitrate 5895 kbps
  • Width 1920
  • Height 1080
  • Aspect Ratio 1.78
  • Video Resolution 1080p
  • Container MP4
  • Video Frame Rate 24p
  • Web Optimized Yes
  • Proxy Type 42
  • Audio Profile he-aac
  • Target Optimized for TV
  • Target Tag I D 2
  • Video Profile main
  • Title Optimized for TV
  • Overlay

Part

General
  • Duration 50:04
  • File S06E01.mp4
  • Size 2.06 GB
  • Audio Profile he-aac
  • Container MP4
  • Web Optimized Yes
  • Video Profile main
Video Stream
  • Codec H264
  • Bitrate 5703 kbps
  • Bit Depth 8
  • Chroma Location left
  • Chroma Subsampling 4:2:0
  • Coded Height 1088
  • Coded Width 1920
  • Frame Rate 23.976 fps
  • Height 1080
  • Level 4.0
  • Profile main
  • Ref Frames 4
  • Stream Identifier 1
  • Width 1920
  • Display Title 1080p (H.264)
  • Extended Display Title 1080p (H.264)
Audio Stream
  • Codec AAC
  • Channels 6
  • Bitrate 192 kbps
  • Language English
  • Audio Channel Layout 5.1
  • Profile he-aac
  • Sampling Rate 48000 Hz
  • Stream Identifier 2
  • Display Title English (HE-AAC 5.1)
  • Extended Display Title English (HE-AAC 5.1)

Mod-Edit: I took the liberty to structure that information a bit

I’ve structured your information a bit.
Long story short… none of those subtitle streams is flagged as a forced one. It appears there’s 2 subtitle streams embedded in your file and 4 that are stored alongside the episode as individual files.

Because none of your files is flagged as a forced subtitle, Plex won’t automatically pick one based on your (correct) audio/subtitle preferences.
When you create an optimized file, Plex will pick only the applicable audio and subtitle tracks according to your preferences – therefore the optimized file has no subtitles.

How to fix this:
You need to identify which of the streams are forced subtitle. You should be able to do that right from within VLC by selecting each of them and check if it’s showing subtitles constantly or only for the foreign language parts.

Once you identified the forced ones…

For the embedded streams

  1. Download a program called MKVToolNix
  2. When you open the app, go to its Header Editor tab
  3. Drag your episode file in the app window
  4. Select the node representing the applicable subtitle stream and open it
  5. Select the Forced display flag and set its value to Yes
  6. Save the file

For the external subtitle files

Adjust the file names according to Plex’ naming schema.
Subtitles should be named like this:

[name of the video file].[language code].ext  <- regular subtitle file
[name of the video file].[language code].forced.ext  <- forced subtitle file

Where .ext is the subtitle file extension (e.g. .srt).

Example for your file:

TV Shows
  Game of Thrones
    Season 06
      Game of Thrones - s06e01.mkv
      Game of Thrones - s06e01.eng.srt
      Game of Thrones - s06e01.eng.forced.srt
1 Like

Ok, so this particular episode doesn’t have an embedded forced subtitle track… but it does have the pgs stream embedded…

  1. Does the MKVToolNix process make the subtitles forced in that they will only display during foreign language dialogue, or does that require a subtitle file that is designed to be forced?
  2. If I use one of the external files, and name them accordingly, does it do the same for them, and will it automatically use them?
  3. is the eng.srt and eng.forced.srt a copy of the same file with different extensions, or does the forced one in that example have an edited header?

Re #1/ This is just setting a flag that tells players how to deal with the subtitle track. Inside Plex, you will subsequently see a (forced) suffix to the subtitle name. There’s no difference to the file/stream itself… it’s just a descriptive element

Re #2/ yes

Re #3/ the addition of .forced to the file name is interpreted by Plex similarly as having a forced flag for an embedded track. It’ll just tell Plex (or any player) how to interpret the file.
Preferably you don’t just use the same for both forced and non-forced subtitles. The forced subtitles file (or track) contains only the subtitles it’s supposed to show – usually this is the subtitles for text sequences spoken in a different language.
So if your audio is set to English and you selected the forced English subtitles, those should show the subtitles for the non-English spoken elements (e.g. the parts where they speak Dothraki, Valyrian or whatever language they speak in Mereen :wink: )

After applying the change to your file’s embedded subtitles or the external ones you might need to re-analyze the episode, season or show for Plex to pick those changes up.

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