As part of an on-going project to convert my DVD and BluRay collection to a hard-disk based media collection (mainly to save shelf-space and having to keep swapping disks) I’ve encountered a disk that has so-called “forced subtitles” to subtitle some foreign language speech into the viewers native language.

It turns out (this post on the makemkv website was most helpful: that although subtitles have both forced and default flags that can be turned on, most disks do not set either and instead setup a playlist depending on options choosen in the dvd menu. This makes it very difficult to retrospectively mark the correct subtitle track (using a tool such as MKVToolNix, as I did) to be “forced” so as to get the same experience as the original disk when viewing through Plex.

Several suggestions are offered for figuring this out, such as exporting the subtitles with MKVExtractGUI-2 and then examining them with BDSup2Sub to see what’s there. For the film I was trying to sort out, I knew where the subtitled section was so I was able to just play with the tracks in VLC to figure out the correct one.

Initially I set each of the forced-subtitles-tracks to forced, as according to the internet if one has multiple forced tracks the player should select one that matches the tagged language of the audio stream. This did not work with VLC, at least, and I ended up with German forced subtitles (the first subtitle track) and English audio (marked as the default in the file). So I had to then also set the default flag on the English forced-subtitles track to match the default audio track, despite both having meta-data tags of English. This seemed to work in VLC and Plex, so hopefully is the “right” solution.

In summary:

  1. Find all the forced-subtitle tracks by hand
  2. Mark them all as forced
  3. Mark the one that has the same language tag as the default audio stream as default

Marking them as forced/default can be done with the command-line tools from MKVToolNix:

# Find the tracks that are subtitles
mkvmerge -J /path/to/file.mkv
# N.B. mkvmerge tracks are 0-indexed, mkvpropedit expects them to be 1-indexed
#      so MAKE SURE YOU ADD 1 TO THE ID from mkvmerge.
# For the flags: 1 for true, 0 for false
mkvpropedit --edit track:9 --set flag-default=1 --set flag-forced=1 /path/to/file.mkv

I suspect I now also need to review all of the 407 disks I’ve copied to date and find out if any of those also have forced subtitles. sigh