View Full Version : BD3D2MK3D v1.17: Convert 3D BDs or MKV to 3D SBS, T&B or Frame-sequential MKV
r0lZ
11th January 2016, 14:27
Thanks for the info.
Can you try these movies with FRIMSource in hardware mode?
mini-moose
11th January 2016, 17:18
DO NOT USE v0.80! MkvMerge v8.7.0 doesn't work!
There is MkvMerge v8.80 now. Does it fix the issues?
r0lZ
11th January 2016, 20:54
Yes, the problem should be fixed. But I haven't checked v8.80 personally yet. Try to update MkvMerge, but keep the old version in case of...
Also note that the previous version did not work only with specific elementary streams. It worked most of the time.
frank
12th January 2016, 10:13
Can you try these movies with FRIMSource in hardware mode? Monsters Inc 3D: FRIM works in hw mode.
But I had to set platform="hw" to get the hw-acceleration, not platform="" (auto).
Tested with BD3D2MK3D v0.79
I7 5th gen, Win10
r0lZ
12th January 2016, 10:50
Strange. Have you verified the avisynth script generated in "auto" mode? Does it contain the right ooption for FRIMSource? If it's the case, maybe there is a bug to notify to videofan3D?
Anyway, I will have a look muself on the syntax generated by BD3D2MK3D. But I will not be able to verify if hardware mode is used in "auto" mode, bacause I don't have the right CPU.
frank
12th January 2016, 12:43
Yes, I look at the fps too. hw mode is ~30 % faster.
I have edited the FRIMsource param in the script.
I use Avisynth 2.6.0
Laptop Asus UX303LA, I7 5th gen, Intel GFX5500, Win10.
Maybe FRIM has a problem to recognize the new hardware in auto mode, but acceleration worked with "hw".
DGMVCdecode has not this issue.
r0lZ
12th January 2016, 12:52
Even more strange. I thought that it's the Intel library that has to determine if the hardware mode can be used (in auto mode of course), not the avisynth plugin. But I may be wrong.
GamBIT_Rus
17th January 2016, 15:32
BD3D2MK3D - Excellent program, thanks a lot!
Some issues:
1. Forced subs cant be hardcoded. While it is shown in movie.
I got many bd3d-iso with the forced subs in pgs, but each time I try to hardcode it, I get an error and braking the process before encoding the video. Like that:
Avisynth error:
Script error: there is no function named "SupTitle"
(__ENCODE_3D_MOVIE.avs, line 53)
x264 [error]: could not open input file `-'
or smth like that:
Done with warnings!
* No forced captions in "00001.track_4608.Rus_forced.2D.sup"! Stream skipped.
* BDSup2Sub "00001.track_4608.Rus_forced.2D.sup": No forced subtitles found.
Generating the avisynth script anyway. You may have to convert the subtitles to IDX/SUB manually.
* No forced captions in "00001.track_4608.Rus_forced.2D.idx". Stream skipped.
I tried to choose between different discs & forced subs - the same. Both "Hardcode subtitle methods". BDSup2Sub ++ & jar (I got java).
Sometimes happens the successful hardcode of the full sub stream. Forced subs - never. As it doesnt exist at all, although is shown in the list at 2 tab.
Another subs-problem is - auto-forced subs do not play in rip even at the PC. "Forced subtitles (auto)" point is present in MKV, and it tries to play as default, but empty always.
My opinion - BD3DMK3D doesn't read correctly forced subs, while shows a lot of it. Or the demuxing process gives the empty stream, or the program doesnt see it.
2. Would be great if BD3DMK3D could set checkbox "Exit and encode after successful demux" on. It's boring to set it manually every time the process started. Please make this setting in the options.
And would be great having option "low cpu priority" in the options too (such cmd-file is made anyway, why not to use it?)
3. h.265 encoded files are not playable at the LG 4K TV. Some 265-files made in DVDFab are playable. Tried different options - couldn't understand what's wrong with BD3D2MK3D. At the PC everything is OK. What is needed for TVs?
r0lZ
17th January 2016, 16:29
Hi, GamBIT_Rus, and welcome to the Doom9 forums.
1. The "No forced captions" warning happens only when, well, there are no forced captions in a subtitle stream.
It might be difficult to determine the right stream to encode, because it depends of the authoring of the original BD.
In some BDs, the same subtitle stream contains the forced and non-forced captions. In that case, the BD usually contains only a single stream in that language, and the forced captions are individually flagged as forced within the stream. You should select that stream, but with the "(forced captions only)" extension if you don't want to hardcode all subtitles. Unfortunately, it is impossible to count the number of forced captions in a stream without demuxing it, and it's way too long to do it when the BD is loaded in the GUI. So, you have to try yourself. If the subtitle stream doesn't contain forced captions at all, you'll get the warning, and the stream is skipped (and therefore not hardcoded). That's not a bug.
The second method to include forced captions in a BD is to create two streams in the same language. One stream contains all captions (including the forced captions, but they are not flagged as forced), and the other stream contains only the forced captions (again not flagged as forced). You have therefore to select the right stream. And in that case, you should NOT select the stream with the "(forced captions only)" extension, because since the stream has no forced flags, it will be skipped. You should instead tick the "Forced" checkbox, that instructs BD3D2MK3D that all captions in that stream are forced.
Unfortunately, in that second case, it is not possible to know for sure if it's the first or second stream in your language that contains the demuxed streams. And other streams in the same language can also be present, such as the subtitles for the director comments or the hearing impaired. To know what stream you should select, the best way is to play the MPLS with a good player that shows you all subtitle streams (in the same order than in the BD). I use PotPlayer for that purpose and it is easy to locate the stream with all subtitles. Locating the stream with the forced subtitles only might be more difficult, but if there are only two streams in your language, it's necessarily the other stream.
If you wish, you can also simply tick all streams in your language, to demux them all. When they are demuxed, you can easily load them in BDSup2Sub to examine them. Then, you must edit the AVS script to modify the file name of the stream to hardcode, and delete the unnecessary streams from the __MUX_3D_OPTIONS.txt file. That's not difficult, and you can be sure of the result.
You should now understand why BD3D2MK3D shows each subtitle twice in tab 2. When the first authoring is used and there are forced subs, you can use the "(forced captions only)" variant to extract the subtitles with the forced flag only. When the second authoring is used, they are useless (and always empty) and you must locate the right stream yourself, with a good player.
Anyway, there is no bug in the detection of the subtitle streams. There is currently nothing that can analyse the subtitle streams sufficiently rapidly without demuxing the streams to present you the complete information, and you have to figure out yourself what stream to use.
The "there is no function named "SupTitle"" problem is more difficult to understand. I have never encountered it, and if you don't try to add yourself a subtitle in the AVS script, and if you encode the final MKV with __ENCODE_3D.cmd (and not with another program!) it should work. Maybe for whatever reason your PC cannot run SupTitle.dll? Can you verify that it is in the "toolset" directory of BD3D2MK3D, with SupCore.dll, msvcp100.dll and msvcr100.dll ? Also, in the AVS script, the command LoadPlugin("path\to\BD3D2MK3D\toolset\SupTitle.dll") should not be commented out. (It should NOT begin with the "#" character). If all these conditions are met, the error message should never be displayed.
If really SupTitle doesn't work for you, try to change the "Hardcode subtitle method" in the Settings menu, and select VobSub. The quality is less good, but at least that plugin doesn't need M$ libraries to work, and it should be easier to run.
2. Sorry, but IMO, it is very important that the user waits at least until the demux process has started, just to be sure that everything works well. And it is not difficult to tick that box at that time.
3. The compatibility of the players with h265 depends of the player, its codecs and the hardware. I can't tell you what settings to use for YOUR TV. IMO, for a good compatibility, you should NOT use x265, still very new and somewhat experimental. (BTW, I have added the support for x265 in BD3D2MK3D at the request of some experienced users, but I can't assume the responsibility if that doesn't work. And I have added a warning when you select it. Have you read it?) You have to figure out yourself the parameters suitable for your TV. And the fact that DVDFab's encoding in h265 work fine means just nothing. I don't know its h265 encoder, but I know that it encodes in h264 with very basic settings (hence the bad quality) and x264 or x265 are much more powerful encoders. But you have to learn how to use them. Also, honestly, personally I don't use x265, and therefore I don't know it well.
GamBIT_Rus
18th January 2016, 11:42
Hello! Thanx for answer.
Now I've found that the problem is BD3D2MK3D shows the subs streams as they are twice, with fake "forced' streams. Let's look
here are screenshots
http://i73.fastpic.ru/big/2016/0118/7a/ee37968299fd452cc0e1315f5e9a897a.png
Rus Eng Rus Eng. 4 streams.
Really - Rus Full, Eng, Rus forced, Eng. Sadly but isnt pointed which one full or forced. Maybe due to BD author, dont now. But players commonly do now what to do with it.
Further
http://i73.fastpic.ru/big/2016/0118/32/311343d8614837cf0ee506457cbd4832.png
any attempt to use the forced subs will bump with the error until you somehow begin to know that exactly the second stream (and exactly with no checkbox forced on) is forced indeed. worth to be genius, isnt it? :-))
an attempt to use that fake forced subs-streams will give an error and interrupt. its been long to understand this to me, each time you must wait whole BD3D demux.
By the way, I offer yoг to set checkbox "Exit and encode after successful demux" on by default. It wouldnt be complex to uncheck the box to smbd who anyway wants to stop process after dumux. To the majority it isnt necessary, I think, only annoying.
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.
What for 265 - this codec is very effective, equally twice to 264. Huge CPU usage to code, but it costs. 4K Tvs support it in common, but not so easy like 264. So it does matter to code correctly. DVDFab has given my only one 265 movie to play easily like 264. BD3DMK3D no one. I want to understand why. Media info still doesnt make me understand. Maybe reframes or smth. Asking to know. Full SbS or Full O/U are made for 4K internal players, to watch this instead of BD, so its important that 265 would run easy.
By the way, totally agree that x264 gives the best quality, so want to figure out with x265. Think you underestimate to power and future of 265 codec. It's great you added this into a program.
r0lZ
18th January 2016, 13:48
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).
Normal captions including some forced captions (individually flagged as forced). It's the authoring method 1.
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...
frank
19th January 2016, 04:12
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.Best method. No need to change B3D2MK3D.
frank
19th January 2016, 04:29
Latest example with the DGMVCsource black frame bug: EVEREST (2015)
FRIM works in hw mode.
EDIT:
The bug only exists on my I7 5th gen with GFX5500 (Intel 20.19.15.4300, ASUS Zenbook)
Dell XPS I7 3th gen GFX3000 (Intel 9.17.10.4229) works.
hw mode: DGMVCsource 19 fps, FRIMSOURCE 14 fps
r0lZ
19th January 2016, 09:54
Best method. No need to change B3D2MK3D.
I have already modified it slightly. But it will still be necessary to use a player to examine the subtitles, especially when method 2 is used.
Latest example with the DGMVCsource black frame bug: EVEREST (2015)
FRIM works in hw mode.
Thanks. That confirms definitively the DGMVCSource bug. I hope it will be fixed soon...
GamBIT_Rus
20th January 2016, 16:38
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).
Normal captions including some forced captions (individually flagged as forced). It's the authoring method 1.
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.
r0lZ
20th January 2016, 19:50
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.
- 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.
- 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.
- 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.
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.
- 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.
- 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.
r0lZ
21st January 2016, 14:48
OK, here is the new version.
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.
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.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
GamBIT_Rus
23rd January 2016, 04:31
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. :-)
Thank you.
r0lZ
23rd January 2016, 11:58
- 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.)
- 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.
- 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.
- 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.
- 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.)
- 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 (http://forum.doom9.org/showthread.php?p=1752513#post1752513)) 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.
r0lZ
23rd January 2016, 16:12
Here is v0.83.
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.
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.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
frank
23rd January 2016, 19:54
Old Version No...
r0lZ
23rd January 2016, 20:11
Damn! Right. I've replaced the archive. Nothing else has changed.
Sorry.
GamBIT_Rus
24th January 2016, 20:56
Thanks for answers!
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.
r0lZ
24th January 2016, 23:55
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.
r0lZ
25th January 2016, 00:06
For the Exit and Encode option, I really can't understand your point.
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.
Nico8583
25th January 2016, 10:28
Just to know : does anyone have already tried to resize 3D SBS to 720p ? I don't know if it is a good thing...
r0lZ
25th January 2016, 11:41
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.
GamBIT_Rus
25th January 2016, 20:53
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.
GamBIT_Rus
25th January 2016, 21:18
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 :-)
r0lZ
25th January 2016, 23:25
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.
GamBIT_Rus
26th January 2016, 11:17
I can definitely say that almost any movie has the 'crop' rip edition. It is very very popular indeed, at least in our segment. Each movie usually gets such rips like 'half o/u', 'full o/u' (much rare yet) and 'crop half o/u', with s/b/s versions too ('crop full o/u' I havent seen but maybe and this takes place).
But unfortunately many coders have to use the very poor methods or to use not so qualified progs.
People who watch this movies do understand that some part of image is lost and could be some problems with the borders (You have noticed) but they are agree with it.
I ask this not personally but for the people who does encode crops. BD3D2MK3D is not popular now amongst them due to the lack of the used options like cutting the borders. If they could do this then they would use BD3D2MK3D and it would give the much better quality of the rips - that's great.
For You could better understand the cutting, I would example the following - usually they cut approx 140 pixels up and 140 down the BD frame (to cut the black borders) and 244 left and 240 right to gain the normal aspect. Later this 1432*800 they upscale to initial 1920*1080 and are happy :-)
Unfortunatelly I'm not a programist anymore, it was many years ago when I was doing this, so I personally cant modify the BD3D2MK3D code or fix the demuxed project with the strings of avisynth code. Especially it is useles to try (even if I could) because the others would not do it each time they want to transcode the BD3D. It is too much complicated. Whey simply will take the other instruments, bad but easy. You can help.
I would suggest you to take the special TAB named like 'image conversion' or smth, where would be placed all the present and future image works. Transform to 720p already, for beginning. Maybe and subtitles hardcode too (as it is the image-changing action).
I recall with a pleasure the VirtualDub project, now discontinued, where we could do almost anything without 'everytime programming', only using a similar GUI like yours. I hope You know this program and understand that I'm talking about. The conception was decode -> image manipulation -> encode.
It used avisynth too (or smth like that), got a set of effects, including the resize, zoom, denoise etc. Combining that plugins I could do almost anything with avi.
So I dont ask You to repeat all the functionality of VurtualDub, but such a TAB can definitely attract many people to your very good program. You dont even have to think how people would calculate the pixels to cut, for example. Whey could easily do it in any other program like DVDFab. The only thing you could easily help them would be the checkbox 'preserve the aspect' - if they enter blackborders cut the BD3D2MK3D will fulfil the remainings. And that's all, people are responsible themselves for the result, You dont have to worry. Whey do understand that they're doing.
Please, think it over, dont quick refuse. If I haven't could ensure You to add the image-transformation functionality then it is the last try (for not to bother You). Thanks.
r0lZ
26th January 2016, 11:51
You dont have to worry. Whey do understand that they're doing.
Well, I don't think so. There are too many butchered (or cropped to 800 pixels) 3D video on the net to even imagine that it is a good think to let the users do that. They do NOT understand the implications of cropping a 3D video, otherwise you'll NEVER see cropped 3D movies.
Also, I forgot to give the most important argument against cropping, resizing and/or zooming: subtitles. The 3D subtitles are authored to be placed on a precise position on screen, and they cannot be moved elsewhere because the depth of a precise subtitle is computed so that it doesn't enter within the surrounding objects or characters. So, if you crop and resize the original video, even if you maintain the 16:9 aspect ratio, the subtitles will still be at their original positions on screen, now wrong in the scene. That's also something to take into account. Do you imagine a crop option available only when no subtitles are demuxed, and prohibited elsewhere? (I agree that it should be possible to hardcode the subtitles BEFORE the crop and resize, so that they are still at the right position, but unfortunately BD3D2MK3D hardcodes the final 3D subtitles on the combined Half-SBS/T&B video, at the very end of the operation. I don't want to change that. And anyway, that will not work for muxed subtitles.)
So, there are too many good reasons to refuse to implement that, and no good reason to do it, except perhaps the popularity of BD3D2MK3D. But since BD3D2MK3D is not a commercial program, the number of users doesn't matter much. I want it to be the best 3DBD converter, and I will not add features that will lower its quality just to attract more peoples. In other words, peoples who think that cropping is a good thing should use DVDFab. (IIRC, it does the cropping automatically by default!) I keep BD3D2MK3D for the expert and demanding users, and they should know that cropping is never an advantage.
If I add a "Crop" button somewhere in the GUI, that will be ONLY to display a message explaining why a 3D clip should NEVER be cropped. Certainly not to do it!
GamBIT_Rus
26th January 2016, 17:14
If You really want to know smth about crops then I'd say that there's no such a problem for people with the subs You described since almost nobody hardcodes the pgs. In 99.99% crops is used the SRT format. And I use it always for good compatibility since my rips are downloaded very often. Even because the TVs usually do not support anything else except SRT. Even more, most of the people do not watch the subs at all. If it is not the Avatar for example.
People who watch crops dont demand the professional abilities, but the most important thing they want is 'no squares' in the picture. BD3D2MK3D can get it. If it would be able to encode not only the full picture. The most loss of picture in the crops is not of the things You said but of the wrong methods to get such a crop. They usually encode twice to get the crop, sometimes with the 1 pass - of course the picture is bad. They need an instrument to do it good, as much as possible, that's the problem. It's not of they do not want a quality at all.
Having done the 'Image Works' tab You could make the hardcode box to be disabled if a crop action is chosen. And no problem. If anyone wants the crop - he will not get the hardcoded subs, and I believe he will not even notice that. Because he doesnt need it at all.
If You do the program not for youself only but for the people then it might be a good idea to give them a chance to choose what they really want. With be best quality of possible. Crop is the existing and popular occurrence. You could warn the people of the problems with crop, but let them.
Anyway you did 720p although it is a very bad thing too, isnt it? It makes a loss of detail, looks like absolutely non-professional. BUT. It is needed to someone, and that's why it's done. And it's good.
I dont look crops. Personally. I dont look halfs. I've got 4K and watch only the full frame with 2160p. But it doesnt mean that I guess people are wrong watching the crop halfs. It is their decision, not mine.
If You do not make it nothing would happen with crops, they will still. Since there's a lot of encoding progs. Yes, it would be much better being done with BD3D2MK3D, but BD3D2MK3D isnt able to stop it, if it would not be implemented, I think You understand this.
I see that BD3D2MK3D is a very new promising project and it has a lot to grow. I've suggested a lot but if you are not interested in the suggestions so its your choice, of course.
r0lZ
26th January 2016, 17:58
SRT for 3D is another absurdity. Have you tried to watch 2D subtitles over a 3D video? Your head explodes after 10 subtitles or so! Subtitles must be in 3D to watch a 3D video. Unfortunately, it is not always easy to display the 3D subtitles correctly. Only a few software players have the necessary options, and probably no TV can do it (yet). It's why BD3D2MK3D has an option to hardcode the 3D subs. You know that. But with the right combination of a good software player and a 3D monitor or TV, it is possible to watch muxed 3D subs correctly. I don't want to ruin that possibility to add an useless crop option.
I'm convinced that many peoples begin to understand that cropping a 3D movie is not a good idea. It's certainly not now that I will tell them that they are wrong by adding that option. Anyway, I have already added a Help -> Why no Crop option? menu to explain why I will never add that possibility. I hope that will help the remaining crop fanatics to change their minds.
Like Coluche (a French humorist) said, "It's not because they are numerous to be wrong that they are right."
r0lZ
27th January 2016, 10:45
Donald Graft has just released a beta of DGMVCSource that should fix the black frames bug, occurring with some movies like Everest or Creature from the Black Lagoon and discussed here (http://forum.doom9.org/showthread.php?p=1750491#post1750491).
I will test it myself in software mode, but since I don't have the right CPU, I can't test it in hardware mode. Someone can test it with a recent version of libmfxhw32.dll? Frank? You can download the beta here (http://rationalqm.us/board/viewtopic.php?f=5&t=324&p=4533#p4533). And, if you need it, you can download this short sample from Creature from the Black Lagoon (http://download.videohelp.com/r0lZ/tmp/DGMVCSource%20bug%20with%20libmfxsw32%20v6.15.6.2.7z).
Thanks in advance!
frank
29th January 2016, 00:32
Originally Posted by r0lZ
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...
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. Right! As a professional I have to agree. 3D standard and acceleration chips need uncropped sizes like 1920x1080.
BTW
If you resize a 1080p BD to 2160p for the 4k LG TV you never get more resolution! Sharpness stays on the source res 1080. No need to resize a BD, modern 4k TVs can scale up.
Much more important is a good 3D player. Built-in players of TVs are very stupid and mostly accept only standard 3D stuff.
frank
29th January 2016, 01:59
Problem solved!
DGMVCSource100b24 works, no black frames anymore.
Many thanks to Donald Graft.
Tested with sample TEST.avs and Everest 2015.
Asus Zenbook, I7 GFX5500, Win 10 prof
r0lZ
29th January 2016, 12:18
Thanks for the test! I'll report it to DG, and I suppose he will release the new version officially soon. I'll release an update of BD3D2MK3D when it will be available.
slavanap
29th January 2016, 14:25
...
See also Settings -> Power Plans. And especially the Help topic in that menu.
You can also use BlockSleep" created by Slavanap (here (http://forum.doom9.org/showthread.php?p=1752513#post1752513)) 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.
Here's a lightweight version re-written in assembler.
binary (http://sendfile.su/1198689)
source (http://pastebin.com/1EXh7Jc3)
virustotal report (https://www.virustotal.com/en/file/e19981a1ea611066c0246e2801251f246a0093cc77de4d12558f987459ec4b3e/analysis/1454073785/)
There's still possibility that some less-known antiviruses will detect virus even in that small executable. Unfortunately, I can do nothing about it.
r0lZ
29th January 2016, 15:27
Great! 0 false positive detection. Perfect!
Of course, it is always possible that a not-so-good antivirus flags it as infected, but now the user can verify with VirusTotal, and have the evidence that it's a false positive. So, nothing stops me to use it any more. I will remove the power plan settings in BD3D2MK3D and use blocksleep instead in the next version.
frank
30th January 2016, 15:28
Oh, I like the power plan solution. Works perfectly and safely without adding software.
Please make it selectable.
r0lZ
30th January 2016, 17:00
OK. Anyway, currently, the BlockSleep solution doesn't work. I can't launch the exes with arguments. It seems that there is a bug. Therefore I will not change the power plan stuff yet. And probably, later, I'll add BlockSpeed as an alternative solution, but I'll keep the Power Plans too.
slavanap
31st January 2016, 02:30
OK. Anyway, currently, the BlockSleep solution doesn't work. I can't launch the exes with arguments. It seems that there is a bug. Therefore I will not change the power plan stuff yet. And probably, later, I'll add BlockSpeed as an alternative solution, but I'll keep the Power Plans too.
Oh, excuse me, I had to include usage example. First of all, first argument for blocksleep must me a full path for executable, and you can't execute arbitrary batch command with it, but if you run cmd.exe with /C argument, then you can.
Here's a batch file example with switch whether use blocksleep or not:
set command=^
dir "c:\Program Files" ^| ^
more
for %%i in (cmd.exe) do set "cmd=%%~$PATH:i"
echo %cmd%
set use_blocksleep=1
if %use_blocksleep%==0 %command%
if %use_blocksleep%==1 blocksleep.exe %cmd% /C "%command%"
note this part: ^| -- you need to escape | signs, or any other signs (< -- ^<, etc.) that could be interpreted as i/o redirection.
And I found one minor bug in blocksleep, as it always complaning to GetProcessExitCode. Here's a fix:
binary (http://sendfile.su/1199249)
source (http://pastebin.com/Uqxjz8eN)
virus total report (https://www.virustotal.com/en/file/644b19d2e0b77bc6fc3f19a8f7d7eb2b7fce5c2b1713c0cc809ea088682c61eb/analysis/1454203124/)
and again this Qihoo-360 antivirus detects it as a virus for whatever reason... It detected virus for previous executable but later its result was fixed. Let's see how long it'll take to fix result for this 1 byte different version.
r0lZ
31st January 2016, 10:51
OK, I'll try it that way.
But is it really necessary to provide the full path if the exe is in the current directory? IMO, that doesn't make sense, and it's a major drawback for BD3D2MK3D. Currently, a project generated by BD3D2MK3D can be moved elsewhere, because I have paid attention to never use absolute paths (except to the toolset directory). I really want to keep that feature.
slavanap
31st January 2016, 23:18
OK, I'll try it that way.
But is it really necessary to provide the full path if the exe is in the current directory? IMO, that doesn't make sense, and it's a major drawback for BD3D2MK3D. Currently, a project generated by BD3D2MK3D can be moved elsewhere, because I have paid attention to never use absolute paths (except to the toolset directory). I really want to keep that feature.
You need absolute path only for cmd.exe. In the script above I'm showing how to get it without specifying full path, e.g. "c:\Windows\system32\cmd.exe"
Just replace
dir "c:\Program Files" ^| ^
more
with the command you want to execute. And don't forget to escape with ^ i/o redirection characters: | < >, as I did in this example.
r0lZ
31st January 2016, 23:47
Yep. I succeeded with some simple commands, but I can't get the command I need for BD3D2MK3D to work. avs2yuv seems unable to write to stdout, and doesn't recognise the parameter - (a simple dash) as a valid output file. Therefore, I can't pipe its output to x264.
The solution is to launch the entire __ENCODE_3D.cmd script within BlockSleep. That works fine, and it's also much more simple for me. I have just to modify slightly __ENCODE_3D_LOW_PRIORITY.cmd.
Currently:
start /low __ENCODE_3D.cmd
With BlockSleep:
start /low "D:\BD3D2MK3D\toolset\BlockSleep.exe" __ENCODE_3D.cmd
But that means that the user will have to launch that script instead of the main batch file __ENCODE_3D.cmd. Not a big problem IMO, as it's already necessary to encode with the low CPU priority.
slavanap
1st February 2016, 06:20
I suggest this code -- I'm not sure that your will work.
for %%i in (cmd.exe) do set "cmd=%%~$PATH:i"
start /low "BlockSleep.exe" %cmd% /C call __ENCODE_3D.cmd
r0lZ
1st February 2016, 12:06
Right. I did a test, and my method doesn't work.
[EDIT] Just tested with your method and it doesn't work either. The computer goes to sleep when it is encoding. I'm puzzled.
[EDIT2] Tried again today, because yesterday Windows Update was working in the background, and it may have influenced the result, but I have the same result now. The computer goes to sleep anyway. So, it appears that either BlockSleep doesn't work, or there is something special with cmd.exe. Could it be because cmd.exe is loaded from system32 and is therefore a 64-bit program, but the main x264 process is 32-bit? Anyway, the CMD window is not closed, so I assume that its process remains active, and BlockSleep should work. I don't understand.
GamBIT_Rus
2nd February 2016, 14:24
http://www.softwareok.com/?seite=Microsoft/DontSleep
maybe to try this?
GamBIT_Rus
2nd February 2016, 14:39
Right! As a professional I have to agree. 3D standard and acceleration chips need uncropped sizes like 1920x1080.
BTW
If you resize a 1080p BD to 2160p for the 4k LG TV you never get more resolution! Sharpness stays on the source res 1080. No need to resize a BD, modern 4k TVs can scale up.
Much more important is a good 3D player. Built-in players of TVs are very stupid and mostly accept only standard 3D stuff.
As a professional I can't agree with you because you havent understood what I was talking about.
Nobody wants to simply upscale 1920*1080 to 2160, it's wrong and useless in 3D. If you do really know what is the stereopair then would know that it is the couple of the frames, one above another.
1920*1080+1920*1080= 1920*2160. And it's the ONLY way to watch the 1080p initial picture on the passive 4K 3D TV if you watch exactly the stereopair (not the BluRay3D).
If to upscale smth to 2160 - it means that the initial picture is changed in any way (zoomed for ex) and then is upscaled to 1920*1080, and after that is combined into full stereopair - 1920*2160.
And nobody talks about to cut the picture to non-standard resolution. Crops (but more likely to be called "Zooms") are made to match exactly the initial resolution 1920*1080 or 1920*2160. It is only zoomed.
The real "Crop-only" - yes, they are non-standard, and that's why LG (for ex) cannot show right o/u 1920*1600 (while plays half o/u 1920*800 without a problem - due to very raw firmware). I was not asking this feature. I asked a real zoom.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.