So, at first sight the problem may be solved by finding out which subs-stream is forced. That may be not easy if the forced subs are written 5 times a film, for ex. So, the better way could be if BD3DMK3D would not show "fake" channels that produce its crash. And if a BD does really contain any mark of "forced" or not stream is - to show it (for a coder to understand if a stream is full or forced only). If it is possible to make.

Re-read my previous post and you will understand that it is unfortunately impossible to do what you suggest. There is NO indication that a subtitle stream is globally forced. And there is NO safe way to know if a specific stream contains forced subtitles without demuxing it. Unfortunately, the commercial BDs are NOT made to facilitate their conversion to SBS or T&B by a program like BD3D2MK3D.

Depending of the authoring program, the forced subtitles can be authored in two totally different ways. They can be included within normal streams and individually flagged as forced within that stream (method 1), or two totally different streams can be added, one for the normal subtitles and one for the forced subtitles only (method 2).

In fact, the content of a stream can be one of the following:

Only normal captions, nothing forced. (Can be present with methods 1 and 2).

Only forced captions, but without any indication that all captions are forced. It's the authoring method 2.

Only forced captions, with all captions being flagged as forced. It's also authoring method 2, but somewhat better. Unfortunately, this case is very rare.

Since there is nothing that tells if a stream is globally forced or not, it is theoretically possible to discover only if some or all captions within the stream have been flagged as forced (cases 2 and 4). But that requires to analyse the subtitle stream. And analysing the subtitle stream requires to demux it. And demuxing a stream from a long movie takes age! Do you really want to wait 20 minutes or so just to be able to see tab 2 with (more or less) correct information about the forced subtitles? I don't think so. And anyway, case 3 will not be discovered, and therefore it is impossible to display that information without big risks of errors. That are the facts. And we must live with them.

That's why BD3D2MK3D offers both possibilities to define yourself what you want to do.

If you're interested in all captions (case 1), you should just select the corresponding stream.

If you're interested in the forced captions from a stream containing also non-forced captions (case 2), you should select the "forced captions only" variant (what you call "fake" stream).

If the forced captions are in a specific stream containing ONLY forced captions (cases 3 and 4), you should select that stream AND tick the "Forced" flag (to tell BD3D2MK3D that that stream is globally forced).

Same as point 3. But in addition, if all captions are forced in a stream and you have NOT ticked the Forced flag, BD3D2MK3D is smart enough to correct automatically your error and set the global forced flag after having demuxed and analysed the stream. Finally, the result is strictly identical than case 3.

As you can see, all cases are necessary. I can't simply remove the "forced captions only" fake stream, as the users will have no way to mux or hardcode a stream with the forced captions any more if the BD has been authored with method 1.

Your findings are exactly what I have explained in my previous post. Except that the "forced captions only" streams are not "fake". They correspond to the option "export only forced subtitles" of BDSup2Sub. And if there are no forced subtitles in the stream, contrary to what you wrote, it DOESN'T CRASH. It just ignores the stream and issues a warning. IMO, it's the most reasonable solution.

The "forced" checkbox, as explained above, has its utility too. When a BD has been authored with the second method (like yours), the "forced captions only" streams contain no captions and it is useless to select them (but it's not an error). But if you know (like in your example) that the second Russian subtitle contains the forced captions, you should tick the "forced" checkbox. You will see that the "forced captions only" stream becomes unavailable, because it doesn't make sense to extract the forced captions from a stream containing only forced captions. And, more importantly, when BD3D2MK3D build the MUX_OPTIONS files, it knows that that stream is globally forced, and that it must set the forced flag for the MKV stream. The players will be able to display the language and type of stream correctly. It's not possible if you don't tell BD3D2MK3D what are the forced streams and what are the normal ones. (Of course, if you just want to hardcode the forced subtitles, it is not necessary to tick the "Forced" box, since the subtitles are never included as a stream in the final MKV. But that doesn't hurt to do it.)

I have also explained in my previous post that it is easy to find what subtitle stream contains what with a good software player. It's also why there is a "Preview MPLS" button in tab 1. I have installed PotPlayer on my PC, and since it is associated with the MPLS files, when I click that button, the movie is played automatically (in 2D). A simple look at the Subtitle menu of PotPlayer can tell you what stream contains what, and if a specific stream contains also some forced captions.

In conclusion, that may seem complex, but it's because the authoring of the BDs is complex. There is no indication in the MPLS file that tells if a stream is forced or not, and if there are forced captions among the normal captions in a specific stream. Even when the streams are demuxed, it is still not possible to know for sure if a specific stream is globally forced or not. Only an human can do that without problem. So, BD3D2MK3D must handle all possibilities, and it's the responsibility of the user to select the right stream and options.

However, I must agree that tab 2 may be currently somewhat confusing. Perhaps I could add a button to toggle between method 1 (with the "forced subtitles only" streams) and method 2 (only the main streams, with the "Forced" box to declare any stream as globally forced). And, if BD3D2MK3D detects that there are several streams in the same language, it can perhaps assume by default the method 2. However, it's somewhat dangerous, because several streams in the same language can also be present with method 1 (for example the main Russian stream with some forced subtitles, and a stream with the director comments). In that case, BD3D2MK3D will assume wrongly method 2, and it will be the responsibility of the user to change the display mode to method 1. Is it really simpler to understand? I don't think so, but if several users prefer that method, I can implement it. Just let me know.

Anyway, I have never seen a BD with both methods 1 and 2. So, if the user selects the "Forced" option for a specific stream, it is perhaps possible to disable all "forced captions only" fake streams at the same time, instead of only for the current stream. I think I'll do that right now...

Originally Posted by r0lZ:I have installed PotPlayer on my PC, and since it is associated with the MPLS files, when I click that button, the movie is played automatically (in 2D). A simple look at the Subtitle menu of PotPlayer can tell you what stream contains what, and if a specific stream contains also some forced captions.

Re-read my previous post and you will understand that it is unfortunately impossible to do what you suggest. There is NO indication that a subtitle stream is globally forced. And there is NO safe way to know if a specific stream contains forced subtitles without demuxing it. Unfortunately, the commercial BDs are NOT made to facilitate their conversion to SBS or T&B by a program like BD3D2MK3D.

Depending of the authoring program, the forced subtitles can be authored in two totally different ways. They can be included within normal streams and individually flagged as forced within that stream (method 1), or two totally different streams can be added, one for the normal subtitles and one for the forced subtitles only (method 2).

In fact, the content of a stream can be one of the following:

Only normal captions, nothing forced. (Can be present with methods 1 and 2).

Only forced captions, but without any indication that all captions are forced. It's the authoring method 2.

Only forced captions, with all captions being flagged as forced. It's also authoring method 2, but somewhat better. Unfortunately, this case is very rare.

Since there is nothing that tells if a stream is globally forced or not, it is theoretically possible to discover only if some or all captions within the stream have been flagged as forced (cases 2 and 4). But that requires to analyse the subtitle stream. And analysing the subtitle stream requires to demux it. And demuxing a stream from a long movie takes age! Do you really want to wait 20 minutes or so just to be able to see tab 2 with (more or less) correct information about the forced subtitles? I don't think so. And anyway, case 3 will not be discovered, and therefore it is impossible to display that information without big risks of errors. That are the facts. And we must live with them.

That's why BD3D2MK3D offers both possibilities to define yourself what you want to do.

If you're interested in all captions (case 1), you should just select the corresponding stream.

If you're interested in the forced captions from a stream containing also non-forced captions (case 2), you should select the "forced captions only" variant (what you call "fake" stream).

If the forced captions are in a specific stream containing ONLY forced captions (cases 3 and 4), you should select that stream AND tick the "Forced" flag (to tell BD3D2MK3D that that stream is globally forced).

Same as point 3. But in addition, if all captions are forced in a stream and you have NOT ticked the Forced flag, BD3D2MK3D is smart enough to correct automatically your error and set the global forced flag after having demuxed and analysed the stream. Finally, the result is strictly identical than case 3.

As you can see, all cases are necessary. I can't simply remove the "forced captions only" fake stream, as the users will have no way to mux or hardcode a stream with the forced captions any more if the BD has been authored with method 1.

Your findings are exactly what I have explained in my previous post. Except that the "forced captions only" streams are not "fake". They correspond to the option "export only forced subtitles" of BDSup2Sub. And if there are no forced subtitles in the stream, contrary to what you wrote, it DOESN'T CRASH. It just ignores the stream and issues a warning. IMO, it's the most reasonable solution.

The "forced" checkbox, as explained above, has its utility too. When a BD has been authored with the second method (like yours), the "forced captions only" streams contain no captions and it is useless to select them (but it's not an error). But if you know (like in your example) that the second Russian subtitle contains the forced captions, you should tick the "forced" checkbox. You will see that the "forced captions only" stream becomes unavailable, because it doesn't make sense to extract the forced captions from a stream containing only forced captions. And, more importantly, when BD3D2MK3D build the MUX_OPTIONS files, it knows that that stream is globally forced, and that it must set the forced flag for the MKV stream. The players will be able to display the language and type of stream correctly. It's not possible if you don't tell BD3D2MK3D what are the forced streams and what are the normal ones. (Of course, if you just want to hardcode the forced subtitles, it is not necessary to tick the "Forced" box, since the subtitles are never included as a stream in the final MKV. But that doesn't hurt to do it.)

I have also explained in my previous post that it is easy to find what subtitle stream contains what with a good software player. It's also why there is a "Preview MPLS" button in tab 1. I have installed PotPlayer on my PC, and since it is associated with the MPLS files, when I click that button, the movie is played automatically (in 2D). A simple look at the Subtitle menu of PotPlayer can tell you what stream contains what, and if a specific stream contains also some forced captions.

In conclusion, that may seem complex, but it's because the authoring of the BDs is complex. There is no indication in the MPLS file that tells if a stream is forced or not, and if there are forced captions among the normal captions in a specific stream. Even when the streams are demuxed, it is still not possible to know for sure if a specific stream is globally forced or not. Only an human can do that without problem. So, BD3D2MK3D must handle all possibilities, and it's the responsibility of the user to select the right stream and options.

However, I must agree that tab 2 may be currently somewhat confusing. Perhaps I could add a button to toggle between method 1 (with the "forced subtitles only" streams) and method 2 (only the main streams, with the "Forced" box to declare any stream as globally forced). And, if BD3D2MK3D detects that there are several streams in the same language, it can perhaps assume by default the method 2. However, it's somewhat dangerous, because several streams in the same language can also be present with method 1 (for example the main Russian stream with some forced subtitles, and a stream with the director comments). In that case, BD3D2MK3D will assume wrongly method 2, and it will be the responsibility of the user to change the display mode to method 1. Is it really simpler to understand? I don't think so, but if several users prefer that method, I can implement it. Just let me know.

Anyway, I have never seen a BD with both methods 1 and 2. So, if the user selects the "Forced" option for a specific stream, it is perhaps possible to disable all "forced captions only" fake streams at the same time, instead of only for the current stream. I think I'll do that right now...

Thanks a lot for such a big answer!
Briefly:
- Yes, I'd like to wait 20 minutes (or less if I use the SSD) if BD3D2MK3D will show me the much precise result with the subs. Perfect would be having a button like "analyse" or smth. I think it would save much more time than having the wrong rip.
- Would you mind to explain the difference between setting the checkbox "forced" on the real subs-channel, and choosing the fake forced channel below?
- Do I have to choose any subs-stream in tab2 if I only want to hardcode one of the streams? Will BD3D2MK3D always demux that stream if I choose it to hardcode?
- If the second subs-stream contains only the forced subtitles (maybe not marked as forced but that type only) than do I have to set the checkbox "forced"? Will it give anything else besides the flag "forced" setted on this sub in mkv?
Also I I've noticed, my TV(at least) will not give the ability to select the subs if at least one has this forced flag - usually that's enough to mark such stream as "default". Forced flag often makes the other streams unchangeable for the hardplayers. Even more, any subs from BD play never on my LG, only textual SRT, that used to find for compiling the mkv. That's why I want to hardcode the nice raster subs from BD (forced of course).
- Would you mind to explain the figures of additional depth of hardcoding subs? What means every step? How much the depth could be, how much pixels will be shifted to gain the depth and so on. Will it make the 2D raster subs the 3D?
- Is it possible to know what settings would be in h.264 if I code Full O/U with the forced to L5.0 compatibility? For ex, [veryslow]+[compatibility 5.0] how much the reframes will give? and so on. Now the only way to me is to wait for the process ending.
Thanks.

Thanks a lot for such a big answer!
Briefly:
- Yes, I'd like to wait 20 minutes (or less if I use the SSD) if BD3D2MK3D will show me the much precise result with the subs. Perfect would be having a button like "analyse" or smth. I think it would save much more time than having the wrong rip.

I don't think I'll do that. It's totally useless, since you can already examine the subtitles with a player, as explained above, and much more rapidly. Also, it's a big work for me, and since you are probably the only guy who want that, I don't want to spend too much time on that feature. Sorry.

Quote:

Originally Posted by GamBIT_Rus

- Would you mind to explain the difference between setting the checkbox "forced" on the real subs-channel, and choosing the fake forced channel below?

It's also something I have already explained two times. "Forced subtitles only" extracts the forced subtitles from a stream authored with method 1. The "Forced" flag instructs BD3D2MK3D that ALL subtitles of the stream (made with method 2) are forced. Re-read my two previous posts for more info.

Quote:

Originally Posted by GamBIT_Rus

- Do I have to choose any subs-stream in tab2 if I only want to hardcode one of the streams? Will BD3D2MK3D always demux that stream if I choose it to hardcode?

No, and yes. Tab 2 is used to specify the streams to mux in the final MKV, and the Hardcode subtitle option is independent. Normally, when you hardcode a stream, you should not tick any subtitle stream in tab 2. (But BD3D2MK3D will automatically ignore a stream selected in tab 2 if that stream is used in the hardcode option.) Of course, to mux or hardcode it, a stream must be and will be demuxed.

Quote:

Originally Posted by GamBIT_Rus

- If the second subs-stream contains only the forced subtitles (maybe not marked as forced but that type only) than do I have to set the checkbox "forced"? Will it give anything else besides the flag "forced" setted on this sub in mkv?

No. If you hardcode the stream, setting the Forced flag as no effect. Again, I have already explained this.

Quote:

Originally Posted by GamBIT_Rus

Also I I've noticed, my TV(at least) will not give the ability to select the subs if at least one has this forced flag - usually that's enough to mark such stream as "default". Forced flag often makes the other streams unchangeable for the hardplayers. Even more, any subs from BD play never on my LG, only textual SRT, that used to find for compiling the mkv. That's why I want to hardcode the nice raster subs from BD (forced of course).

Forced doesn't mean that the TV must display it. It's a bug of your TV.

And indeed, most hardware players (including my Samsung TV) can only display SRT files (and usually only if they are outside the MKV container). And most other players display the 3D subtitles in 2D, and you end up with two little 2D subtitles instead of a single 3D subtitle. It's why I hardcode also often the subtitles when the audio is not in my native language. It's the only way to obtain good 3D subtitles regardless of the player you use.

Quote:

Originally Posted by GamBIT_Rus

- Would you mind to explain the figures of additional depth of hardcoding subs? What means every step? How much the depth could be, how much pixels will be shifted to gain the depth and so on. Will it make the 2D raster subs the 3D?

Normally, you should leave the additional depth to 0, at least if you convert an original stream from the BD with the right 3D-plane. However, in some rare cases, the subtitles are too close to the objects, and give the impression to stick to them. In that case, adding 1 or 2 pixels of additional depth might be a good idea.

When you convert a stream for which the 3D-plane is empty or when you don't have the 3D-plane, the additional depth is the only way to force a global depth for all subtitles. In that case, unfortunately, you have to guess what depth you should use. Personally, I try often 8 as a starting point.

Negative values are behind the surface of the screen, and positive values are toward the spectator. Usually, the values in the 3D-planes are between -6 and 30, but of course, that depends of the 3D effects of the movie.

Quote:

Originally Posted by GamBIT_Rus

- Is it possible to know what settings would be in h.264 if I code Full O/U with the forced to L5.0 compatibility? For ex, [veryslow]+[compatibility 5.0] how much the reframes will give? and so on. Now the only way to me is to wait for the process ending.
Thanks.

You can specify any additional argument for x264 in the "Additional options" field of tab 4, including the number of reference frames. But you have to be cautious and not give incompatible arguments. x264 may issue a warning or, in some cases, refuse to work, but most of the time, it will accept your settings, and produce an odd h264 stream. Personally, I think that the default options are very good, and I use the preset Slower most of the time. IMO, there is no need to specify additional parameters.

Anyway, please post questions about x264 and h264 parameters in the relevant forums. I'm not an expert in encoding, and much more knowledgeable peoples can reply if you use the right forum.

I have changed somewhat the tab 2 so that it should be more obvious that there are two authoring systems for the forced subtitles. BD3D2MK3D does its best to guess what authoring system has been used and selects it automatically. But since it has no way to know the content of the subtitle stream, it's only a guess and it can be wrong. You have to verify yourself the content of the subtitles with a good player, as explained in my 3 posts above. (Of course, if you're not interested in forced subtitles, you don't need to worry. Just be sure to select the streams you're interested in.)

There are other minor improvements and a bug fix too.

Quote:

v0.82 (January 21, 2016)
- New option to select the authoring mode of the forced subtitles in tab 2, as an attempt to clarify the subtitles options.
- Added the "Edited by" tag in tab 3, and modified some desctiptions of the tags.
- Tools -> Clone Subtitle Positions: Added the possibility to process only the subtitles loacted in the upper half of the screen.
- Fix: Tools -> Convert Subtitle to 3D: Malformed XML after adding depth tags in some circumstances
- Updated the MkvToolnix exes to the latest version (v8.8.0) because the bugs in v8.7.0 have been fixed.

May I guess a little more suggestions?
- Would be useful to choose the destination of the resulted rip.
For ex, 50 Gb for iso-file, 50 Gb for demuxed project and 30 for rip will give ~130, while the empty space of SSD may be less. The main work runs with the project, while writing the final file doesnt demand a good speed. And often this file will be removed to another disk anyway. For ex, I'd like to choose a project stored on SSD, but result written on the HDD.
- An ability to set the priority low seems to be useful. This doesnt make the encoding slower if a user doesnt make smth. But if he does then it takes its reasons, so the encoding process have not to interfere. Of course a user may set it manually in the task manager, but it's worth if a program would do this itself. IMO.
- Are you able to make choosing a range of timeline to encode? By the chapter or by the time interval. It's good for checking a result without having to spent a lot of time waiting for the whole movie to be encoded (especially with the strong settings of quality). Many transcoding progs have such an ability.
- Is it possible to return to main window after the encoding ends, like in any other windows-based program? It's good if I want to see the used settings or want to encode again with the small change of it. Unfortunately now the program ends at the final and can't reopen the project.
- Would be great if BD3D2MK3D could save project and reopen it like many programs. Demuxing each time takes a long. Sometimes it happens 5 times or more, just to check smth. This program cant work directly with iso, so the reuse of a done demux would help a lot.
- Another "wish" is if the program could not harm of the system suspend or hibernate. I've noticed that if I temporary stop the system and continue then the encoding will always give the unplayable file. Sometimes the encoding lasts for 1,5-2 days, and at the night it would be very pleasant if a computer was in the power-safe state. :-)

- Would be useful to choose the destination of the resulted rip.
For ex, 50 Gb for iso-file, 50 Gb for demuxed project and 30 for rip will give ~130, while the empty space of SSD may be less. The main work runs with the project, while writing the final file doesnt demand a good speed. And often this file will be removed to another disk anyway. For ex, I'd like to choose a project stored on SSD, but result written on the HDD.

Totally agree. It's something on my ToDo list since a long time, but it has never been a priority. I will do it right now...
(However, note that the ISO must not be on the same disc than the project. The demux operation will be much faster if they are on two different physical discs, unless you use a SSD of course.)

Quote:

Originally Posted by GamBIT_Rus

- An ability to set the priority low seems to be useful. This doesnt make the encoding slower if a user doesnt make smth. But if he does then it takes its reasons, so the encoding process have not to interfere. Of course a user may set it manually in the task manager, but it's worth if a program would do this itself. IMO.

It's already implemented. If you use the option "Exit and encode after a successful demux", the encoding is automatically launched at low priority. Otherwise, you should launch __ENCODE_3D_LOW_PRIORITY.cmd manually. It's a very simple batch file that launches __ENCODE_3D.cmd at low priority.

Quote:

Originally Posted by GamBIT_Rus

- Are you able to make choosing a range of timeline to encode? By the chapter or by the time interval. It's good for checking a result without having to spent a lot of time waiting for the whole movie to be encoded (especially with the strong settings of quality). Many transcoding progs have such an ability.

No. Unfortunately, the MVC decoders are currently unable to seek to a specific time in the movie, and therefore it is not possible to begin the encoding at a certain point. However, it is (relatively) easy to stop it at any point. It's not possible with the GUI, but you can easily change the total number of frames to encode in the __ENCODE_3D.cmd script. The number of frames is present two times in the script, and 4 times if you encode in 2-pass. You have to change all occurrences. Have a look at the script, and you'll see that it's easy to do. Of course, to do that, you cannot use the "Exit and encode after a successful demux" option.
If you want to cut the movie just at a chapter point, have a look at chapters_3D.qpfile. It contains the frame numbers of the beginning of all chapters.

Quote:

Originally Posted by GamBIT_Rus

- Is it possible to return to main window after the encoding ends, like in any other windows-based program? It's good if I want to see the used settings or want to encode again with the small change of it. Unfortunately now the program ends at the final and can't reopen the project.

The main window is closed only if you use the "Exit and encode after a successful demux" option. I did that option to let the user launch a demux and an encode at the evening. Normally, he should use also the option to shut down the computer, and in the morning, everything should be finished and the computer down. Therefore, it doesn't make sense to leave the main program opened.
Also, I don't want to have to leave the window opened during the encoding, because that's only an useless waste of memory. Depending on your encoding options, x264 may need that memory.
If you want to remember easily what encoding options you have used for your last project, you can tick Settings -> Save Settings on Exit. When you will re-open the program, you'll see the last encoding options in the last tab.
Furthermore, the encoding options are documented in two places. x264 stores the encoding options in the h264 stream, and a good program like MediaInfo or PotPlayer can show you that info at any time. However, it contains all options the encoder has really used, and not the simplified options provided by the user (such as the Preset). It's why BD3D2MK3D saves also the arguments it has used for the command line in the ENCODER_SETTINGS tag. Again, that tag (along with the tags you may have defined yourself in tab 3) can be displayed by MediaInfo or PotPlayer. You can also open the __TAGS_3D.xml in a text editor to examine the ENCODER_SETTINGS tag. (Note that that tag is only saved if the "Include encoder settings tags" option is ticked in tab 3.)
Also, the __ENCODE_3D.cmd script (with the command line used to compute the h264 stream) is automatically included as an attachment in the final MKV. You can extract it with MkvToolnix and gMkvExtractGUI, or open it in a text editor if you have still the project on disc.
As you can see, I did my best to document the encoding options as far as possible. I don't see any reason to leave the window opened to add still another way to verify the encoder settings.

Quote:

Originally Posted by GamBIT_Rus

- Would be great if BD3D2MK3D could save project and reopen it like many programs. Demuxing each time takes a long. Sometimes it happens 5 times or more, just to check smth. This program cant work directly with iso, so the reuse of a done demux would help a lot.

Again, if you do not tick the option to exit after an encoding, you can relaunch the project several times. And the only thing that may be long to do is to fill the tags in tab 3. It's why you can save and reload them if you wish. That way, you can easily re-create a new project with the same movie. I don't think that selecting the streams again or verifying the encoder settings is so time consuming that it would require to save the project.

Anyway, IMO, restarting the project is not the best method to try different settings. I did my best to produce files with easy to understand file names and comments, so that the user can easily modify them AFTER the generation of the project. If, for example, you want to change an x264 option, you can simply edit __ENCODE_3D.cmd (and __tags_3D.xml to reflect the change in the ENCODER_SETTINGS tag) and relaunch it.
Similarly, if you know Avisynth, you can edit the AVS script to add filters or effects if you wish.
Also, if you just want to change some muxing options (such as the order or labels of the audio or subtitle streams), you can edit __MUX_3D_OPTIONS.txt and then launch __MUX_3D.cmd to remux the movie without having to re-encode it.
Similarly, you can change the labels of the chapters points by editing chapters_3D_delay.ogm.txt.

One of the big advantages of BD3D2MK3D over its commercial competitors is that possibility to modify almost everything manually. Commercial programs are black boxes, and if you are not happy with the result, you're stuck. BD3D2MK3D creates just a basic project, that you can use as it is if you're happy, but that you can also modify if you wish.
(BTW, it's also a reason why I don't want to set the Exit and encode after a successful demux option on by default. It's not the philosophy of BD3D2MK3D. If you prefer a simple "one button click" program, you should buy DVDFab and accept its bad quality.)

Quote:

Originally Posted by GamBIT_Rus

- Another "wish" is if the program could not harm of the system suspend or hibernate. I've noticed that if I temporary stop the system and continue then the encoding will always give the unplayable file. Sometimes the encoding lasts for 1,5-2 days, and at the night it would be very pleasant if a computer was in the power-safe state. :-)

The problem of the bad encoding after an interruption is not related to BD3D2MK3D. It's x264 that doesn't support to be interrupted by a sleep/hibernate. If you want a fix for that problem, contact the authors of x264. I can't do it myself.

See also Settings -> Power Plans. And especially the Help topic in that menu.

You can also use BlockSleep" created by Slavanap (here) to force the PC to stay "alive" during the encoding, without having to modify temporarily the power plan. You will have to edit __ENCODE_3D.cmd to move the x264 command within blockspeed. I may add that feature in BD3D2MK3D later, but I'm not sure, because currently blockspeed.exe is detected as a virus by many antivirus programs, due to the way it works. That detections are certainly false positives, but I don't want to release it within the toolset directory of BD3D2MK3D because that may scare most users. So, currently, only the power plan setting is available in BD3D2MK3D.

As promised, I've added the possibility to specify an output folder different than the project's directory for the final MKV file.

This version fixes also a bug introduced in v0.82. The program crashed when the user selects a MPLS without subtitle streams in tab 1. Since it's an important bug, I have decided to release this version immediately, but I haven't had much time to check the new output folder feature. It seems to work correctly, but I may have introduced new bugs (especially in the code that checks if there is enough available disc space). Please let me know if you find a bug.

Quote:

v0.83 (January 23, 2016)
- New option in tab 5 to define two different output folders: one for the project files, and one for the final MKV.
- Fix: Bug introduced in v0.82: Crash when parsing the languages of the MPLS without subtitles.

I can't agree that there's any need to save memory by closing the gui. Maybe 20 years ago it could help smth but in the presence it takes so less memory that isnt neccesary to account. What a per cent of my 16 Gb it could be? Even of 4 - not much. BTW the speed of encoding doesnt depend on amount of memory - much more of cpu speed and instruction sets, and the algorithms.
So I'd suggest you to divide the 'encoding' and 'exit' - not 'encode & exit' since that things are different and not interconnected. For ex, yes, I would like to run the encoding just after the demux, but not to exit the gui. The other benefit is the ability to prepare the next transcoding process while the first is running already. Maybe by simple change.

An other ability that often ask-able is the 'crop'
Yes, I see you did smth to this direction by making 720p (image change between the decode-encode operation). But It would be nice if a user could enter the 4 offsets to cut the frame and ability to choose - whether to leave the frame simply cutted or to upscale it to initial size.
Many people ask to make the cropped rips to them, for ex to take standard BD3D with 1920*1080 frame, next cut it to 800 lines and cut the sides so too, that a frame would have the 16:9 proportion, and after that to upscale to the initial 1920*1080. The result would be the cropped image on the whole screen. After that the encoder may do half or full stereopair, never mind. That 'crops' I know you may do by adding the proper code to avisynth, like you did with 720p. Would be great if a crop could be qualified done with the BD3D2MK3D by one click in fact. I dont ask too much, hope? :-) It's really need.

I will certainly NEVER implement a crop feature for 3D output. It's a total absurdity. The 3D video standard IMPOSES the 16:9 aspect ratio. And the 3D clips must be in HD. So, ONLY 1920x1080 and, to some extent, 720x1280 are legit for 3D clips. Many TVs do not support other aspect ratios at all, or they deform the image horribly to restore a full-screen display (like my Samsung). And anyway, probably all 3D TVs are optimised to play the 3D features in full HD, and are much less good when they must play butchered 3D videos. And it's not because other aspect ratios or resolutions can be played without problem by some (relatively rare) players that it's a good idea to do it.

I add that cropping the black bars is not really a gain of disc space, because the pure black can be compressed extremely well, and therefore it is really a bad idea to sacrifice quality and compatibility just for a few MBs of disc space.

In short, cropping the 3D videos is unfortunately a common mistake, and I will certainly not encourage peoples to do it.

Either you tick the option because you want to leave your computer immediately and in that case there is no need to leave the program opened, or you want to prepare another encode and in that case it is not that difficult to double-click the __ENCODE_3D.cmd (or __ENCODE_3D_LOW_PRIORITY.cmd) file manually, since the window is opened automatically by the program at the end of the preparation of the project. And as a benefit, you can have a look at the final dialog to verify easily if everything went fine.

And I disagree on the memory necessary for the encoding. With some encoding options and a moderately powerful PC (with, for example 4GB of RAM), x264 may need some swap space, even when x264 is alone in memory. And when a PC swaps, it becomes extremely slow. If that situation can be avoided simply by closing useless programs, it's certainly a very big advantage. (However, I agree that usually, with standard parameters in Half-SBS or T&B, much memory isn't really necessary.)

Anyway, splitting that option will be just confusing. What is the benefit to exit without launching the encode?

Also, I repeat that originally, that option was not present, and I have added it at the request of an user. But IMO it is important to verify if everything is OK before launching the encoding. Personally, I don't use that option, and I think that it can be removed. So, please don't ask again to modify it, or I may be tempted to simply remove it completely.

Good thing, well, probably not. But I did some tests when I've added that option to BD3D2MK3D, and it works, and even my picky TV accepts it. The result is not too bad, although there is only 640 pixels of horizontal resolution in HSBS or 360 vertical in HT&B.

BTW, the first 3D media, long before the BD and 3DBD, were 3D interlaced DVDs (afaik always NTSC), where each view was encoded in a field. The active glasses were synchronised with the frequency of the AC power. The advantage of that system is that all DVD players and TVs were able to play the video, without even "knowing" that it was a 3D movie. The drawback is the vertical resolution: 240 pixels only! And the horizontal resolution is only 720. I've converted for the fun 3 examples of these 3D DVDs, after having composed and resized them to Half-T&B (854x240 for each view), and I've watched them with my TV. The picture is horribly pixilated, but the 3D is correct. That means that the resolution of the image (and, as a consequence, the precision of the parallax) is not really important for the 3D. Most of the job is done by the brain anyway.

Of course, the same is true for Half-SBS. The precision of the parallax is divided by 2, but the 3D is as good as with T&B or Full-SBS. So, it seems that only the precision of the picture is somewhat degraded when a 3DBD is converted to 720p. The depth effects of the 3D are not really affected.

I will certainly NEVER implement a crop feature for 3D output. It's a total absurdity. The 3D video standard IMPOSES the 16:9 aspect ratio. And the 3D clips must be in HD. So, ONLY 1920x1080 and, to some extent, 720x1280 are legit for 3D clips. Many TVs do not support other aspect ratios at all, or they deform the image horribly to restore a full-screen display (like my Samsung). And anyway, probably all 3D TVs are optimised to play the 3D features in full HD, and are much less good when they must play butchered 3D videos. And it's not because other aspect ratios or resolutions can be played without problem by some (relatively rare) players that it's a good idea to do it.

I add that cropping the black bars is not really a gain of disc space, because the pure black can be compressed extremely well, and therefore it is really a bad idea to sacrifice quality and compatibility just for a few MBs of disc space.

In short, cropping the 3D videos is unfortunately a common mistake, and I will certainly not encourage peoples to do it.

I think you didnt understand me.
I was telling not about smth like 1920*1600 mkv (instead of 1920*2160). BTW I encode only 1920*2160.
Crop is not ONLY the chopped black borders. Such cutting is really bad of the proportion problems indeed, I know it as the LG owner (1920*1600 are never going right, although 1920*800 play well - LG TV soft peculiarities).

A CROP I was telling about is the following:
1. encoder cuts and the up/bottom black borders and some vertical columns - so that the resulted aspect is still the same, 16:9, but in the picture are only the bright info pixels.
2. After that, the image is upscaled to the initial 1920*1080 due to compatibility, so that we get the standard aspect and size. Both.

YES, the picture is not the same, it is like focused on the centre so that there's no borders at all nowhere. 3D effects are not harmed, that's important. There's some resolution loss, yes indeed, but everything plays well anywhere. Especially do love this thing the owners of a small diagonal TVs. Unfortunately most of the TVs are able to change the aspect in the very rare cases. My 4K LG (for ex) is almost helpless to change the aspect. More cheaper TVs are all the more helpless. The only way is to hardcode such a picture. BTW people assume that such 4-way cropped videos get the better 3D rolls and effects than the standard picture. I think of the bigger details in visual.
Even if you do not desire to do such crops, I think it would be good if the others could. Like 720 that you do not use (and I do not use) but the others do. And it is not a simply cutted up/bottom video.
I see that the BD3D2MK3D can do it easy and with the best quality due to x.264 and a perfect avisynth algorithms.
Hope, now you did understand me right.
?
If so I could set out the vision of how it could be implemented with the best usability. Thanks.

And I disagree on the memory necessary for the encoding. With some encoding options and a moderately powerful PC (with, for example 4GB of RAM), x264 may need some swap space, even when x264 is alone in memory. And when a PC swaps, it becomes extremely slow. If that situation can be avoided simply by closing useless programs, it's certainly a very big advantage. (However, I agree that usually, with standard parameters in Half-SBS or T&B, much memory isn't really necessary.)

Anyway, splitting that option will be just confusing. What is the benefit to exit without launching the encode?

Also, I repeat that originally, that option was not present, and I have added it at the request of an user. But IMO it is important to verify if everything is OK before launching the encoding. Personally, I don't use that option, and I think that it can be removed. So, please don't ask again to modify it, or I may be tempted to simply remove it completely.

Well... I launched the BD3D2MK3D, opened the first BD3D image and looked at how much memory it takes. It takes.... huge 10 Megabytes! :-)
Take my congratulations of the very good programming, really. Such a small amount of used memory is not meeting often. So I think closing the program will help the encoder less than nothing. 10 Mb is only a 1/400 of 4Gb, although I cant believe the video-encoder who use 4Gb in the present days. It also is 1/800 of 8Gb and 1/1600 of my very modest 16Gb.
Yes, using 64-bit OS we can gain all the memory to process, but I cant imagine the x.264 encoder does effectively use 8 Gb for ex. Usually it is used by the system cache, important of course but not necessary to be huge. I promise to look after the memory consumption of x.264 encoding the 1920*2160 Full T/B at the veryslow preset.
I think you did the best with the tiny small program that doesnt obstruct smth. So closing it most likely will not help smth. It will not be probably swapped as the system will not notice it.
***
Oh no, please do not exclude the "exit and encode" as it is very useful checkbox and that user who had asked this checkbox was really a good guy, God save him :-)

OK, I understand your wish for some kind of zoom feature within the full video, but I don't think it's a good idea. Except in some very rare circumstances, the black borders are present only in one direction, not both. Usually, the black borders are horizontal (for Cinemascope movies), and sometimes vertical (for old 4:3 movies). But (almost) never in the two directions. Therefore, if you want to crop the borders AND maintain the full aspect ratio, you will have to cut important parts of the image (for example the left and right sides of a Cinemascope movie), and if that can work well for some shots, that may be very bizarre elsewhere.

In fact, you want to do something like pan&scan, but without the pan! The effect will be terrible, unless you cut only a very small portion of the image. And if you cut only some pixels, the advantage on small TVs is lost. Pan&Scan is one of the worst invention ever, and if it has been used often in USA (only!), it is now abandoned almost completely, luckily! So, again, I don't want to encourage peoples to revive such butchering.

Note also that the left and right borders are sometimes intentionally not vertical in 3D movies, to minimize the effect of the cut of the foreground objects near the border of the TV. If you crop the movie, you will lose that advantage.

And I have also a technical argument. Since currently it is not possible to seek in the MVC video, I cannot easily do a GUI for the user. He will have to cut the borders simply by defining margins of a certain number of pixels or a certain percentage of the image, but without the possibility to see the result. Therefore, that will be too bizarre and complex to be appreciated by most users.

Anyway, if your intention is really to crop and enlarge a part of the image to keep the original AR and size unchanged, it is easy to modify the avisynth script to do it yourself. You can add the Crop() and *Resize() commands on the left and right views, and you'll get the zoom you want. That's really simple, if you know some basis of avisynth scripting. I can help you if you wish. So, sorry again, but I don't think I'll do that in the GUI, especially because I'm sure you're alone wanting that feature, despite what you think.

Thanks for your positive appreciation about the memory usage of BD3D2MK3D, but the memory is not the sole argument against the split of the Exit and Encode option. I have explained them several times, and I don't want to do it again.