Force Subtitles... confused

Version 1.19.2.2737

OK so after about an hour of searching/reading, my head is going to explode when it comes to forced subtitles. :slight_smile:

I use MakeMKV to rip my BluRay’s… I then copy the single MKV file to a media share and let Plex index and stream them. My “system” works great except when it comes to automatically displaying foreign subtitles.

Last night I watched Bad Boys for Life in English… there are significant scenes where actors speak Spanish but the subtitles didn’t automatically display. I had to stop, turn on subtitles, then resume to understand what was going on. It drove me nuts turning subtitles on/off.

It appears I have 5 Subtitle tracks… and that Track #3 is the one that proper enables subtitles during foreign language scenes…

Am I missing something simple or will this require all sorts media massaging to make it work automatically?

//Brew

The track that has the least elements is ‘usually’ the ‘Forced Track’.
The ‘Forced Track’ ONLY contains those lines spoken in a Foreign Language (Foreign to you, of course).

Here’s the fun bit:
Those things are NEVER marked right on BluRays/DVDs/Whatever - you just have to ‘know’…

Then, if they’re tracks in a media file you run 'em through MKVToolNix and properly flag the ‘Forced Track’ to be ‘Forced’ while flagging languages all around to be correct 'cause if everything is ‘Unknown’ Plex doesn’t know where to put anything.

An SRT/Media file structure for this movie would be:

Bad Boys for Life (2020).mkv
Bad Boys for Life (2020).eng.srt <---full track
Bad Boys for Life (2020).eng.forced.srt <---'Forced' track

English shown, of course, but you get the idea - and if you don’t if the audio track in that video file isn’t English - good luck.

Thanks for this… for now, I clicked on the movie in Plex and set the Subtitle to be “the third track” and now it seems to be working as i want it when it’s played…

So I guess that’s “the simple” workaround for me.

Right - Here’s what mine looks like:

General
Unique ID                                : 238818809852906871079349545721400523221 (0xB3AAD46863D08BF64BD31F6C9111F9D5)
Complete name                            : J:\Sets and Sequels\Bad Boys for Life (2020) [1080p x265]\Bad Boys for Life (2020) [1080p x265].mkv
Format                                   : Matroska
Format version                           : Version 4
File size                                : 2.07 GiB
Duration                                 : 2 h 3 min
Overall bit rate                         : 2 387 kb/s
Encoded date                             : UTC 2020-04-27 14:40:21
Writing application                      : Lavf58.42.100
Writing library                          : Lavf58.42.100
ErrorDetectionType                       : Per level 1

Video
ID                                       : 1
Format                                   : HEVC
Format/Info                              : High Efficiency Video Coding
Format profile                           : Main 10@L4@Main
Codec ID                                 : V_MPEGH/ISO/HEVC
Duration                                 : 2 h 3 min
Bit rate                                 : 1 955 kb/s
Width                                    : 1 920 pixels
Height                                   : 800 pixels
Display aspect ratio                     : 2.40:1
Frame rate mode                          : Constant
Frame rate                               : 23.976 (24000/1001) FPS
Color space                              : YUV
Chroma subsampling                       : 4:2:0
Bit depth                                : 10 bits
Bits/(Pixel*Frame)                       : 0.053
Stream size                              : 1.69 GiB (82%)
Writing library                          : x265 3.3+4-rarbg-30eb4de83092:[Linux][GCC 8.3.1][64 bit] 10bit
Encoding settings                        : cpuid=1111039 / frame-threads=4 / wpp / no-pmode / no-pme / no-psnr / no-ssim / log-level=2 / input-csp=1 / input-res=1920x800 / interlace=0 / total-frames=0 / level-idc=0 / high-tier=1 / uhd-bd=0 / ref=4 / no-allow-non-conformance / no-repeat-headers / annexb / no-aud / no-hrd / info / hash=0 / no-temporal-layers / open-gop / min-keyint=23 / keyint=250 / gop-lookahead=0 / bframes=4 / b-adapt=2 / b-pyramid / bframe-bias=0 / rc-lookahead=25 / lookahead-slices=4 / scenecut=40 / hist-scenecut=0 / radl=0 / no-splice / no-intra-refresh / ctu=64 / min-cu-size=8 / rect / no-amp / max-tu-size=32 / tu-inter-depth=1 / tu-intra-depth=1 / limit-tu=0 / rdoq-level=2 / dynamic-rd=0.00 / no-ssim-rd / signhide / no-tskip / nr-intra=0 / nr-inter=0 / no-constrained-intra / strong-intra-smoothing / max-merge=3 / limit-refs=3 / limit-modes / me=3 / subme=3 / merange=57 / temporal-mvp / no-frame-dup / no-hme / weightp / no-weightb / no-analyze-src-pics / deblock=0:0 / no-sao / no-sao-non-deblock / rd=4 / selective-sao=0 / no-early-skip / rskip / no-fast-intra / no-tskip-fast / no-cu-lossless / no-b-intra / no-splitrd-skip / rdpenalty=0 / psy-rd=2.00 / psy-rdoq=1.00 / no-rd-refine / no-lossless / cbqpoffs=0 / crqpoffs=0 / rc=abr / bitrate=2000 / qcomp=0.60 / qpstep=4 / stats-write=0 / stats-read=2 / cplxblur=20.0 / qblur=0.5 / ipratio=1.40 / pbratio=1.30 / aq-mode=3 / aq-strength=1.00 / cutree / zone-count=0 / no-strict-cbr / qg-size=32 / no-rc-grain / qpmax=69 / qpmin=0 / no-const-vbv / sar=1 / overscan=0 / videoformat=5 / range=0 / colorprim=2 / transfer=2 / colormatrix=2 / chromaloc=0 / display-window=0 / cll=0,0 / min-luma=0 / max-luma=1023 / log2-max-poc-lsb=8 / vui-timing-info / vui-hrd-info / slices=1 / no-opt-qp-pps / no-opt-ref-list-length-pps / no-multi-pass-opt-rps / scenecut-bias=0.05 / hist-threshold=0.01 / no-opt-cu-delta-qp / no-aq-motion / no-hdr10 / no-hdr10-opt / no-dhdr10-opt / no-idr-recovery-sei / analysis-reuse-level=0 / analysis-save-reuse-level=0 / analysis-load-reuse-level=0 / scale-factor=0 / refine-intra=0 / refine-inter=0 / refine-mv=1 / refine-ctu-distortion=0 / no-limit-sao / ctu-info=0 / no-lowpass-dct / refine-analysis-type=0 / copy-pic=1 / max-ausize-factor=1.0 / no-dynamic-refine / no-single-sei / no-hevc-aq / no-svt / no-field / qp-adaptation-range=1.00 / no-scenecut-aware-qpconformance-window-offsets / right=0 / bottom=0
Language                                 : English
Default                                  : Yes
Forced                                   : No
Color range                              : Limited
Matrix coefficients                      : Identity

Audio
ID                                       : 2
Format                                   : AC-3
Format/Info                              : Audio Coding 3
Commercial name                          : Dolby Digital
Codec ID                                 : A_AC3
Duration                                 : 2 h 3 min
Bit rate mode                            : Constant
Bit rate                                 : 384 kb/s
Channel(s)                               : 6 channels
Channel layout                           : L R C LFE Ls Rs
Sampling rate                            : 48.0 kHz
Frame rate                               : 31.250 FPS (1536 SPF)
Bit depth                                : 16 bits
Compression mode                         : Lossy
Delay relative to video                  : 36 ms
Stream size                              : 341 MiB (16%)
Writing library                          : Lavc58.77.101 ac3_fixed
Language                                 : English
Service kind                             : Complete Main
Default                                  : Yes
Forced                                   : No

Text #1
ID                                       : 3
Format                                   : UTF-8
Codec ID                                 : S_TEXT/UTF8
Codec ID/Info                            : UTF-8 Plain Text
Duration                                 : 1 h 50 min
Language                                 : English
Default                                  : Yes
Forced                                   : Yes

Text #2
ID                                       : 4
Format                                   : UTF-8
Codec ID                                 : S_TEXT/UTF8
Codec ID/Info                            : UTF-8 Plain Text
Duration                                 : 1 h 58 min
Language                                 : English
Default                                  : Yes
Forced                                   : No


Resulting in:

OK… thank you! Just to help me better understand…

Now that I have MKVToolkit tool installed… how do you use it to extract the forced SRT file and why do I really even need to do that if what I did above works?

MKVToolNix can, I suppose extract subs, and can be used as such, but I prefer SubTitle Edit for that as it can do so much more.

MKVToolNix, around these parts, is used to flag those tracks for what they are - you’ll see a ‘Forced Flag’ display line for each track and if you carefully select the correct track, while setting all the languages for ALL tracks in the Header Editor, you can make quick work of what you have right now.

After those changes are made saving will be instant - as it’s only editing the headers and flags.

Multiplexing/Remuxing may be required if you happen to have every single language and sub track and don’t need 40 of them - you know - you could ‘mux’ those out.

Edit: Sorry posted at the same time as others.

To do it properly you should remux the file, setting the forced flag for the forced subtitle and enabling it (turning it on by default).

MKVToolNix: https://mkvtoolnix.download/

Wrong editor - Header Editor:

I know that sub track 3 is the forced track - 'cause I did this already, but there is where you’ll mark all your tracks for correctness.

When you’re done with that edit - Save and Boom… done.
If Plex is set to scan for changes - it will momentarily and it will all be correct.

Huh? I was talking about re-muxing, not using the editor.

Why?

You don’t need to remux.

Just need to flag the tracks that are already there.
No remux needed for that.

I think I got this now… If I remux, I can strip out all of the unnecessary subtitle tracks I don’t want… Or I can use the Header Editor to flag one of them as forced… or even set the force subtitle track right within the Plex server itself.

Thanks for helping me understand all of the options!

//Brew

Either way will do the job but don’t you think that throwing someone who isn’t familiar with this into the header editor is a bit too much. What happens with 4k files that have multiple audio tracks (often 3 languages in DTS) and a ton of foreign language subtitles, thereby swelling the file out by several Gigs - in which case re-muxing is always better, dumping all the un-needed crap. Of course you can leave all those streams if you have ppl who need foreign languages viewing.

Edit:

I think I got this now… If I remux, I can strip out all of the unnecessary subtitle tracks I don’t want… Or I can use the Header Editor to flag one of them as forced… or even set the force subtitle track right within the Plex server itself.

Thanks for helping me understand all of the options!

//Brew

Explained in answer above friend.

The server - your account settings, actually - can only be made to select the correct track. Tags and flags you must do yourself to the media so Plex will know what to do.

One way takes - no time
the other way takes - what could be minutes
(I’ve spent what might turn out to be a major portion of what’s left of my life recently remuxing a thousand broken ones - I’m well aware of what happens when that happens)

Crap Overload isn’t reserved for 4K files, but if @brewder had a dozen tracks he didn’t need I would have ‘insisted’ he remove them - and now he knows exactly how to do things quickly and efficiently.

Now if he wants to pull those PGS nightmares out of there and mux in some SRTs from here:

https://subscene.com/subtitles/bad-boys-for-life

We might even need another tool:

but it can be done - and it won’t take all day…lol

I think I’m good to go now guys. Thanks so much!!

//Brew

2 Likes

Think I’m still confused (not surprising) haha. I never got Forced English Subtitles working right outside of burning them in with HandBreak. So I’m trying to flag it using MKVToolNix but that doesn’t seem to be working right. I think I identify the Forced English Subtitle fine, but when I go to play it it’s playing the normal English Subtitle, even though it’s marked as Forced on the selection as you see below. Can anyone that has it working right walk me through the right steps? Would def appreciate it!



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