View Single Post
Old 28th August 2017, 09:50   #1224  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
Quote:
Originally Posted by sfatula View Post
Ok, confused by subtitles. I did try and read previous discussions, but, could not find my specific case and could have missed it. I have the BD Avatar 3D. On this bluray, is a set of subtitles. One of them (4608) has forced subs included with non forced subs.

In the ideal world, what I want is the forced subs only to be displayed, though, one day I may need all subs. So, in other words, I do want both types. But for now, I do not want to display all subs.

Using KODI as a player, the doc for Kodi says:

"Many movies have subtitles encoded for secondary languages spoken during the film – when these are added to the movie, they are known as forced subtitles and are always visible (despite not being hard encoded). As of Gotham, Kodi recognizes and respects the forced flag for showing subtitles (even if subtitles are turned off by default, the forced flag will trigger them being turned on). "

It also says:
"If you are using an .mkv file, the forced subtitles may be included in the file when originally encoded. If so, Kodi will automatically recognize that they are present and will display them at the appropriate times. If they are not included, or if the header was not properly edited, you will need to use external subtitles."

So, in theory, Kodi will respect the forced flag and only show those if subtitles are disabled. But I have done something wrong? What actually happens is Kodi displays all subtitles, disabled or not. That makes me think they have been merged and encoded into the video by bd3d2mk3d perhaps?

Is there a way to include the subtitles (with both forced and non forced) into the mkv file so that Kodi can only display the forced ones unless subtitles are turned on? Confused. Does the format actually matter for Kodi, vobsub vs bluray sup? Hardcode is set to none on page 5. I selected the top option for 4608, and checked nothing thinking this would simply include the subtitles as is (both forced and unforced)
The forced subtitles in the original BD can be authored in two different ways.

They can be (and are often) in their own separate stream. That means, for example, that you will have (at least) two streams in a specific language, like French: one for all subtitles, to be used if you watch the movie in its original audio language, and one with only the forced subtitles, to use when you watch the movie with the audio in your own language. The forced subtitles translate only written words or parts of the dialogs that have not been translated.

The forced subtitles can also be some subtitles specifically tagged as forced in a stream containing both the forced and not forced subtitles. That method is less often used, but it exists.

Unfortunately, BD3D2MK3D has no way to know how the subtitles are authored, because the forced streams are not specifically marked as forced. It presents therefore the whole list of streams to the user, and it tries to guess if there are forced streams or not. It does that this way. It ignores the language of the first audio stream (usually English), because there are often other subtitle tracks in the same language (director comments, hearing impaired...) For the other tracks, it considers that there are (probably) forced tracks if there are several streams in the same language. For example, it will probably consider that there are forced streams if there are two subtitle tracks in French. In that case, it enables automatically the "Forced subtitle are authored in their sepatate streams" option in track 2, and you cannot select the "forced streams only" pseudo-streams. You can of course change that option if BD3D2MK3D is wrong.

When that option is off, you can select the "forced only" sub-streams, and BD3D2MK3D will try to extract the forced subtitles from the complete demuxed stream. If it cannot find the forced streams, it will issue a warning. In the other hand, when the option is ticked, YOU have to tell BD3D2MK3D what stream is forced, by ticking the option "forced" of that streams. (Use the preview to see the subtitles. And use a good player that doesn't modify the order of the subtitles.) Usually, the first stream in a specific language contains all subtitles, and the second one contains only the forced subtitles.

BD3D2MK3D builds the __MUX_3D_OPTIONS.txt file (used to tell MknMerge how to build the final MKV) with the information it has. It sets the "forced" flag in the MKV header of the stream if the stream contains only the forced subtitles extracted from a full subtitle stream, and it sets it also for complete streams if the user has manually set the forced flag for that stream in tab 2.

Now, it may be possible that Kodi respects ONLY the global forced flag of the current subtitle stream, OR ONLY the forced flag of the individual subtitles within a subtitle stream that is not globally tagged as forced. I don't know Kodi enough to be sure of what it does, but AFAIK, BD3D2MK3D does correctly its job.

However, I don't remember if BD3D2MK3D tags all individual subtitles as forced in a globally forced stream. That should not be necessary since the global flag in the MKV header of the stream is theoretically sufficient, but Kodi may ignore it.

Anyway, be sure to tick the "forced" flag in tab 2 for the correct streams, and if the problem persists, let me know. I may need to modify slightly the way the individual subtitles are tagged.

Note also that you can modify easily the global forced flag of a stream without having to start the whole conversion over, and without having to recompute the x264 stream. Just edit the __MUX_3D_OPTIONS.txt with a text editor, and change the following lines:
--forced-track
0:no
to:
--forced-track
0:yes
Then launch __MUX_3D.cmd to rebuild the final MKV.

If you want to test if Kodi will react at the individual forced subtitles within a stream containing only forced subtitles and you suspect that they have not been individually tagged as forced, you can open the stream in BDSup2Sub (use the Subtitle Tools menu to launch it), and tag any subtitle as forced with Edit -> Edit Frame -> Forced Caption option. Then export the subtitle stream and use it to build a new MKV. (Edit the __MUX_3D_Options.txt file if necessary, and launch __MUX_3D.cmd to rebuild the final MKV without computing the x264 stream again.)

Sorry if that's somewhat confusing. Unfortunately, due to limitations in the BD format and usual bad authoring, it is difficult to completely automate the handling of the forced subtitles.

[EDIT] sneaker_ger has correctly resumed the situation and its difficulty. Normally, BD3D2MK3D is able to handle the two cases, but as I've explained above, it needs a little help from you.
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV

Last edited by r0lZ; 28th August 2017 at 10:05.
r0lZ is offline