Server Version#: 1.41.0.8994
Player Version#: 1.102.0.230-7301ebfb
If I have an MKV file with 3 subtitles streams, for forced translations, hearing-impaired, and strictly dialog, how should I apply the tags for “default” (the default subtitle stream)?
Should a forced subtitle stream always be the default subtitle stream?
Should I just not designate a default and set all to automatic?
(I assume one should not set more than one of the streams as default).
Note: I’m using MKVtoolNix v87.0 on macOS Sonoma 14.6.1 (M1)
Plex is not currently considering the Default tag.
Best make sure the dialog is the 1st audio track per language, followed by the forced track and all other non-dialog tracks.
I’m not sure if you’re asking what your plex preferences should be or what your MKV media files should be.
Language selection on the client comes before whatever the “default” setting is. So if the client prefers German but the default on the MKV is english, it will ignore the default and use German. If there is more than one German sub, the default one is chosen. If there is more than one German and all are set to the default, the first German track is chosen.
The purpose of the default flag is to choose what track to display for the user if the user has no set preference. The forced flags behave differently as they will force the track regardless of whether the user has chosen to enable subtitles or not. Think of it as “force enable.” There are settings in the plex client that changes these behaviors slightly.
None of that is how Plex behaves. Nor any other sanely coded player.
The “forced” flag is not a “forcefully enable” thing. How can it be, if the specification allows several tracks to have the forced flag on them? Shall the player enable all of them at the same time?
Certainly not.
The “forced” flag is simply an indicator of the type of the subtitle.
“forced” subtitles generally don’t carry all the dialog text. Instead, they serve as translation for foreign language text that is shown on screen, as well as translations when a character on screen is speaking a foreign language (foreign as opposed to all the other speakers in the audio track).
Following from this is that the decision of when to activate a “forced” subtitle is always dependent on the language preferences of the user.
True. But Plex does not use the “Default” flag in any way. It is simply ignored if it’s present. Plex simply uses the first audio track in the file. (or the first that matches the user’s preferred audio language, if a preference has been set in the user account and a language tag is present in the file)
Thanks for the replies. This is a very illuminating discussion.
For clarification, I am assembling an MKV video file using MKVtoolNix, with two or three English subtitle streams.
a stream with translations of non-English signs, writing and dialog
a dialog stream (also including the translations) for accessibility
the above dialog stream with accessibility enhancements for sounds and music
To complicate matters further, the latest versions of MKVtoolNix have a new tag for streams … “Original Language [Yes|No]”, and I’m wondering how I should be using that (if at all).
Edit: What I find in the Matroska Tech page (special thanks for the Reddit link) is:
“Original flag … The “original” flag tells the Matroska Player that this track is in the original language, and that it SHOULD prefer it if configured to prefer original-language tracks of this track’s type.”
I’m unsure if ‘original language’ should be used with forced subtitles, thinking “Why would you need them, if it’s in the original language?”
It’s a little unclear how these tags work together, and, quite probably, it’s the Player, rather than the Server, what looks at them, if at all.
That is a “SDH” subtitle (“subtitles for the deaf and hard of hearing”), sometimes referred to as “closed caption”/CC.
You enable the “Hearing impaired” flag for that one in MKVtoolnix.
(the flag will light up automatically, if you name the file like shown below)
There is no need to fill in the “track name” in MKVtoolnix for any of these subtitle tracks. Plex can extract all the necessary information just from the flags. This helps keeping the subtitle selector in Plex clean from any duplicate text.
Maigret (2006).mkv
Maigret (2006).eng.aac <-- English audio track, will set the right language tag when dragged into MKVtoolnix
Maigret (2006).ger.aac <-- German audio track, will set the right language tag when dragged into MKVtoolnix
Maigret (2006).eng.srt <-- regular subs for English speaking audience
Maigret (2006).eng.sdh.srt <-- CC/SDH subs for English speaking audience
Maigret (2006).eng.forced.srt <-- signs/foreign language subs for English audience
Maigret (2006).ger.forced.srt <-- signs/foreign language subs for German audience
The above is just an example. I’ve already made more complicated ones with 3 languages involved and additonal “commentary” audio and subtitles.
IMO this flag is only useful for audio tracks. You should set it only on audio tracks which have the movie’s original audio language. (and not on special audio tracks, like “commentary” tracks etc.)
It is intended for people who like to watch movies always in their original language, (with subtitles or not – depending on the user’s preferences.) Using this flag, a player can know which audio track to enable automatically if it’s instructed to play a movie “with original audio”.
While Plex doesn’t do that currently, it has been equipped to read this flag and store it in its own database. So it could support the above use case in the future. If you start tagging your movies accordingly now, they will be ready to use that feature if it gets implemented.
Here is the Plex mediainfo XML of one such stream. Notice the original="1" XML property on it. This has been read from the original flag in the MKV file.
The language tag of a forced subtitle stream should be enough to enable a player to make a decision whether to enable it or not.
As I said above, “original” only really makes sense for audio tracks.
I have a hunch that this is actually dependent on the client type.
And it’s a bad behavior to boot, because it assumes that mono tracks are “commentary” stuff. And that is simply not true when looking at older titles which only had mono audio to begin with.
It must cover a lot of clients then, because it was an issue on my LG TV, which I got rid of 4 years ago, and it happens on Android TV, and what prompted me to write that reply today is I had just added another old Western movie to my server, and had pulled it up on the web interface (to adjust poster and background art) only to find it pre-set to the stereo commentary track instead of the main feature mono audio.
That’s one aspect that feels neater to me in mp4 containers. There, you can have different designations for audio tracks (original audio, dubbed, commentary…) — IIRC mkv has added support for this as well. More importantly you can specify which subtitle belongs to which audio track, and which forced subtitle belongs to what regular subtitles.
That leaves you with much less guessing… if a client supports those features (though Plex sadly doesn’t )
Is this guide not applicable then? I’ve tested it, and Plex behaves exactly as this guide suggests. I do a lot of muxing, tens of thousands of files, and I always accepted this guide to be correct.
Plex Selects Audio & Subtitle Tracks first based on the Languages. If not set, then it will use tracks that are marked as Default and lastly the first track if no default is found.
PMS doesn’t even work the way Plex says it should.
“Forced” tracks always override Language Preference. However a “Forced” track will not override when subtitles are shown, only what track is used.
That’s not what the Forced flag is for! Way to perpetuate incorrect information and incorrect tagging, Plex.
But please, keep changing the interface in ways no one is asking for instead of getting the basic playback part right.