Log in

View Full Version : BD3D2MK3D v1.17: Convert 3D BDs or MKV to 3D SBS, T&B or Frame-sequential MKV


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [15] 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

frank
17th December 2015, 13:39
I prefer professional DD 5.1 (AC3) conversion of DTS. (cinemas use Dolby Digital! Nowadays dts is only blu-ray avertising feature...) Certified DD is much better for home devices (tv, tablets, notebooks) because of switchable compression.
So far I used a simple eac3to batch file to make a 6 channel wav.
But because of the wav size (>2GB), no editor can read the wav header properly. The trick: mkvtoolnix reads big wav files, no channel mismatch! The wav file has to be muxed with mkvtoolnix to mkv. This audio mkv can be read by certified converters ->Mainconcept Totalcode Studio.

Certified Dolby Digital (ac3) files include 3 "versions" of the stream, that ffmpeg cannot:
uncompressed
standard compression (line)
heavy compression at -20 dB for noisy enviroment, notebooks etc.

with downmix params and a specified dialog level (standard -27 dB).

So I ask to add the feature to BD3D2MK3D:
Convert DTS audio tracks to WAV-MKV
for further processing.

Important eac3to parameter: -no2ndpass
Otherwise spikes require 2nd pass with lower volume. That is not necessary, you don't hear interferences.

r0lZ
17th December 2015, 14:07
So I ask to add the feature to BD3D2MK3D:
Convert DTS audio tracks to WAV-MKV
for further processing.
Hum, sorry, but IMO it's not something for BD3D2MK3D. The main process is supposed to produce the final MKV without the need for additional manual processing. And, since the video is re-encoded in (normally) Half SBS or T&B, the quality is lower than the original BD anyway, and IMO it doesn't make sense to include huge DD audio stream. IMO, if you want to keep the original quality of the audio, you should also avoid to re-encode the video, and therefore you should simply copy the BD3D. In other words, the philosophy of BD3D2MK3D is to make a relatively good conversion to a relatively small MKV file, not to clone the original video and audio as closely as possible. And anyway, if you really want to keep the optimal quality, you should simply NOT re-encode the audio at all. Therefore, I don't see the advantage to output to WAV and re-encode for no gain at all.

If you really want to encode the sound in a format not supported by BD3D2MK3D, you have to do it yourself, and edit the MUX_3D_OPTIONS.txt file to mux the final audio stream instead of the original. That's not really difficult, and there are many good GUIs for eac3to to do it. Adding this as an option in BD3D2MK3D will only confuse the casual users, and you will not gain much processing time.

So, sorry, but I will not do it, unless there are several peoples interested in this.

frank
17th December 2015, 16:26
Ok, I can help myself. And without any guis. :)
...it doesn't make sense to include huge DD audio stream. No, I reencode to DD with certified converter, then delete the wav/mkv.
Read a bit closer. I only wanted a better DD with compression for normal equipment as TV. Compression is basically required for downmix to stereo. Television broadcast sends with DD -23 dB and normal compression.
if you really want to keep the optimal quality, you should simply NOT re-encode the audio at all.No!
Blu-ray DTS has too much dynamics for NORMAL devices. You need a sound system with decoder that manages high dynamics (home cinema). The built-in decoders of tv-sets or stream-boxes are not able to manage that dynamics. Too much you have to use the volume control.
Downmix from blu-ray dts has NOT THE OPTIMAL QUALITY on normal devices with stereo sound.

r0lZ
17th December 2015, 17:33
I understand your point, but IMO, BD DTS is perfect (although I have only a simple decoder in my TV). I have never noticed a too high or too low volume (but it is true that I don't have neighbours, and I like high contrasts). Anyway, changing the dynamics of the audio tracks is beyond the scope of BD3D2MK3D.

tebasuna51
18th December 2015, 02:34
@frank

You can always preserve the original DTS-HD or TrueHD tracks and after do yourself the conversion to DD.
Store the wavs in mkv is only spend disk space.

If you have problems with wavs greater than 2 or 4 GB you can always use W64 or RF64 output with eac3to.

Airmiles
19th December 2015, 12:09
r0lZ,

I have updated to version 0.79 but suddenly can't run the program anymore. Windows 10 now says: "This app can't run on your PC. To find a version for your PC, check with the software publisher". Is there anywhere where I can download v0.73 again? That version worked fine for me under my parallels VM.
Hope you can help me out.

r0lZ
19th December 2015, 12:36
Hum, strange. Nothing related to the OS has changed in v0.79. IMO, it's a problem with Windows 10 (still VERY unstable) rather than with BD3D2MK3D.
And sorry, but I don't have v0.73 any more.
I will try v0.79 under Win10 as soon as possible, but I can't do it right now, because a long test encoding is in progress. Be patient...

Anyway, try to download the latest version again. IMO, the problem could be caused by a damaged exe.

Airmiles
19th December 2015, 12:48
OK. Strange, everything worked fine under windows 10 with version 0,73. I will try reinstalling windows 7 and run it again. Then I can always upgrade to windows 10 again.

AKI84
19th December 2015, 16:04
I just tested v0.79 with Windows 10 x64 and it works fine for me. I can't test it in a paralles VM because I don't own a Mac.
I don't have v0.73. I only have v0.72 & v.0.74 on my computer. I uploaded v0.74 to a File Hosting service. Maybe v0.74 works for you.
BD3D2MK3Dv0.74.7z (http://www20.zippyshare.com/v/iUL36aUs/file.html)

r0lZ
19th December 2015, 16:10
Thanks for him, and welcome to the Doom9 forums, AKI84 !

Airmiles
19th December 2015, 18:39
On windows 7 same problem with 0.79. Won't open, saying, this is not a valid windows 32 command (strange since it is a x64 windows 7 that's running). Thanks AKI84!!! Version 0.74 will open, but when I want to open the disc, it says:


Error: invalid command name " get3d playlists"

invalid command name "Get3Dplaylists"
invalid command name "Get3Dplaylists"
while executing
"Get3Dplaylists [file join $::bd_dir BDMV PLAYLIST] $::config(debug)"
(procedure "OpenBD" line 76)
invoked from within
"OpenBD $r"
(procedure "SelectBD" line 9)
invoked from within

What can the cause of this error be? I have done everything as I have always done before (avisyth 2.5 64 bit installed, as is version 0.74 with its toolbox). Would appreciate the help.

AKI84
19th December 2015, 20:17
My guess is that newer versions of BD3D2MK3D don't like to run in a Paralles VM. You could try using a different version of Paralles or try another VM Software like Virtualbox.
I also uploaded v0.72. Maybe that version will work in your VM.

BD3D2MK3Dv0.72.7z (http://www4.zippyshare.com/v/bRUaw5Bp/file.html)

r0lZ
19th December 2015, 20:18
Get3Dplaylists is a function defined in BD3D2MK3D. It has always worked, since it is an essential function called when a BD3D is opened.

I don't know what's happening, but obviously your system is ill, or the copy of BD3D2MK3D you are using are systematically damaged, and in that case, chances are that you have a very bad internet connection.

Anyway, I can't give support for an old version. Have you tried to download the latest version again, as I suggested in my previous post? It should work, and it is developed under Windows 7 64-bit.

Airmiles
20th December 2015, 09:15
OK, seems I copied some errors from unzipping the 7z format on my mac and then copying it to my windows VM. Did everything within windows now and v.079 starts up fine now. It loads the disc, but when I hit "do it", I get the following error:

*** Welcome to BD3D2MK3D v0.79

*******************************************************************************

*** Trying to open "D:\" as a 3DBD...
*** Opening BD disc "D:\"...
*** Filtering 11 MPLS files...
*** 2 3D MPLS files loaded on a total of 11 3D playlists.
*** BD disc or folder "D:\" opened successfully. 2 3D playlists loaded.

Generating project "Jurassic Park 3D\00800"...

*******************************************************************************

Main job started Sun Dec 20 09:12:28 CET 2015.

Saving file "00800.demux.meta"...
Saving file "chapters_2D_no_delay.ogm.txt"...
Saving file "chapters_2D_no_delay.qpfile"...
Saving file "chapters_3D_delay.ogm.txt"...
Saving file "chapters_3D.qpfile"...

-------------------------------------------------------------------------------

*** Demuxing the streams...
Network Optix tsMuxeR. Version 2.6.9. www.networkoptix.com
*** tsMuxeR.exe demux error: child killed: segmentation violation
Command was:
> tsMuxeR.exe "00800.demux.meta" "C:/Users/iMac/Documents/Jurassic Park 3D/00800"
Oops! tsMuxeR has crashed due to a segmentation violation.

This tsMuxeR error happens usually when you try to process a protected commercial BD3D directly.

BD3D2MK3D (and tsMuxeR) cannot decrypt the BD3D, and you have to rip it to an ISO on HDD with a good decrypter program first, and then mount the ISO (with an ISO Mounter program if you use Windows 7 or XP, or with the native mounter under Windows 8 or 10).
You can also install and run the commercial program AnyDVD HD to decrypt the original BD on the fly.

Please retry with a properly decrypted BD3D or ISO.
() 1 %

Strange, because AnyDVD HD is running and has removed protection. Have you come across this before? What can I do about it? And I hope no child was killed in actual life...:-)

Airmiles
20th December 2015, 09:47
OK, r0lZ,

I seem to have it running again. Seems it was a problem with my VM. It is kind of picky when it comes to how the VM is configured regarding access rights to the external BD reader. It seems, when it is shared with the mac, tsMuxer crashes and doesn't recognise it as a decrypted disc. When the access rights to the external device are solely/primarily given to the windows VM in the parallels configuration, it doesn't crash. I have now given access rights to the disc as well as usb ports to the VM only and it now works.

Sorry for wasting your time. I know it is probably to much to provide support to VM users as well. I am not on this forum too much, with busy lives and kids and all, but if somebody has problems with your program on a VM, or you need testing, and I am actually around then I am always glad to help.

Best,

Airmiles

r0lZ
20th December 2015, 12:01
Interesting findings, Airmiles. When I have read that "AnyDVD HD is running" in your VM, I have immediately suspected a problem with the combination of AnyDVD with the VM. AnyDVD is essentially a driver, working at a low level in the system, and it may not be compatible with a VM emulating only a higher level. It seems that it can work, but only with exclusive access.

I'm glad you have found the solution yourself, because I would have been unable to help you. And I remember your proposition to help in case of similar problems with a VM (although I'm not sure we can trust a child killer like you! ;-) In the meantime, I'll add a short sentence about the VMs in the message displayed when tsMuxeR crashes. Thanks for having reported the solution!

Airmiles
20th December 2015, 12:24
Great. Glad to have helped. Keep up the great work.

sfatula
21st December 2015, 10:45
So, I have backed up my copy of a bluray disc via makemkv. The backup plays just fine using VLC, as you know, makemkv removes the protection. I take that backup, and, run it into bd3d2mk3d. It opens fine, and, shows the left and right eye streams on the open bluray tab, along with subtitles, audio. It shows a length of just over 2 hours. All is good. It does the demux, and, the .264 file shows 19GB + 10GB for the mvc. Still correct. It does the encode, and, I end up with a 5GB file with no video. It's just a black screen, sounds plays fine. Confused. This is with v0.79.

I can see the mkvmerge log (the final merge to create the mk3d), and, it shows the input dts-ma file of 5GB, and, a .264 file of only 13MB! The question is, where did the 13MB file come from? The 13MB input file to mkvmerge was named 00800_3D.264. It appears that comes from avs2yuv and x264_x64.exe. So, maybe it has to do with 64bit x264. So, will try turning off 64 bit. Tomorrow, I will see I guess. But strange?

Assuming 32 bit fails in the same manner, any ideas?

r0lZ
21st December 2015, 12:32
I have had that problem (all black frames) only once, when I've tried to update libmfxsw32.dll from the INDE 2015 (a recent development toolkit of Intel). It appears to have a bug causing that problem with DGMVCSource. The bug happens only with some 3DBDs. (In my case, I've noticed it with Creature from the Black Lagoon.) I've tried less recent versions and the new 2016 version too, and they have the same bug. So, finally, I kept the version that is still distributed with BD3D2MK3D (v6.14.11.28 from Nov 2014), that works fine. Curiously, FRIMSource doesn't have that problem when it uses one of the bad libmfxsw32.dll. I don't know why.

If you have an Intel CPU that supports the hardware optimisation, chances are that you have installed the driver, and therefore the libmfxhw32.dll installed with the driver is used instead of libmfxsw32.dll. And if it's a recent version, it has probably the same bug.

So, I suggest to try to encode in software mode (Settings -> MVC Decoder -> Hardware acceleration -> Disabled), or to try the other MVC decoder (Settings -> MVC Decoder -> Use FRIMSource). Note that you don't need to wait the end of the encoding to know if the decoding works correctly. If the process is much faster than usual (after, say, 5% of the encoding), that means probably that x264 is encoding black frames. You can also try to encode this short sample (http://download.videohelp.com/r0lZ/tmp/DGMVCSource%20bug%20with%20libmfxsw32%20v6.15.6.2.7z) (from Creature from the Black Lagoon), to verify if you are experiencing the same bug.

Please try the two solutions above, and report if they worked. I'm also interested in the title of the BD3D that causes the problem, and if you have experienced that problem with other 3DBDs as well. Thanks in advance.

For more information and the history of this bug, see this report (http://rationalqm.us/board/viewtopic.php?f=5&t=324&p=4352#p4352) of the bug to Donald Graft, the author of DGMVCSource, and the last paragraph of this post (http://forum.doom9.org/showthread.php?p=1746627#post1746627), where I explain why I haven't updated libmfxsw32.dll.

sfatula
21st December 2015, 19:15
Turning hardware encode off now, however, over night, it appears 32 bit was working, until it hung? The 00800_3D.264 was 12GB, however, the console window showed how many frames encoded and just sat there, never did the mkvmerge, so, was not sure if it was truly done. No activity per task manager. Hitting keys did nothing, just closed the window and started over with HW encode off. It never showed the text from the echo that it was done (Encoding finished). Definitely have Intel CPU that does hardware acceleration, it's used in kodi. I do have a libmfxhw32.dll, date was 10/02/2015. Sounds pretty new to me. Version 6.15.7.10.

The name of the bluray is Jurassic World 3D. Have not had any trouble with other blurays, but, I don't own a lot of them at this time.

Anyway, it's running, we'll see if it works, and, it will take a long time without hardware. About a day apparently. If it works, I will still try hardware with FRIMSource just to see how that works (and turning back on hardware as AUTO). Any particular reason FRIMSource is not preferred, or, why DGMVCSource is preferred?

r0lZ
21st December 2015, 20:00
Well, in the beginning, FRIMSource was somewhat unstable (according to other users - I have never noticed personally real problems.) Currently, I think that FRIMSource is probably as stable as DGMVCSource. The problem is almost certainly in the Intel libs, not in the avisynth plugins.

Anyway, thanks for the report. I hope we'll be able to pinpoint the culprit, but that's not always easy.

sfatula
22nd December 2015, 18:42
The conversion without hardware on auto worked fine, I got a good mk3d file that plays without blank frames. Now, just for fun, put hardware back to AUTO, and, using FRIMSource. Seems to be encoding. Which step actually uses the hardware accelerator, I guess just FRIMSource, right? avisynth is just as slow as ever, so, I presume it does not.

The demux part is not very time intensive anyway, so, I suppose using hardware or not is mostly irrelevant.

r0lZ
22nd December 2015, 19:00
Yes, it's only the MVC decoder (FRIMSource or DGMVCSource) that can use the hardware acceleration. The rest of the avisynth script, and the x264 encoding are not accelerated. Usually, it's x264 that is the most CPU demanding, and therefore, indeed, enabling the hardware acceleration gives probably only a small improvement on the overall duration of the process.

Anyway, thanks for testing also FRIMSource with hw enabled. I'm curious to know if it works fine, like with Creature from the Black Lagoon.

pistacho
23rd December 2015, 13:42
Since here compared between DGMCSource and FRIMSource there is a third option that can be used, is enough to have installed BDtoAVCHD and MVCsource option appears on the menu:

http://105.imagebam.com/download/EsTA1JocawqwPUAIBVxTBQ/45413/454120817/BD3D2MKV.png

MVCsource (http://forum.doom9.org/showthread.php?t=170004) not has a blank frames or other knows bugs and is compatible with latest Intel Media SDK 2016 (API 1.17) and actual Intel Graphics Drivers.

There are also significant differences in performance (even in SW mode):

Tested with AVSmeter on I7-3770k / HD4000
http://114.imagebam.com/download/aJsLPkPXkYdxdkxoulpzBg/45413/454120818/FPS.png

In a few days I will be able to retest on a Skylake system :)

sfatula
23rd December 2015, 23:03
So, FRIMSource also worked fine. With HW on AUTO. The files are actually the same size, the resultant mk3d files. So, no difference there. Just two tools that do the same thing apparently in the same way. Apparently from the previous post, there's actually a third method that can be used. Though, this is the tiniest part of the process as far as time goes. I just want it to work. :-)

r0lZ
24th December 2015, 09:39
Thanks for the result of your test. Very useful for me.

Yes, decoding speed doesn't matter much. And that kind of test has been made in non-standard conditions, so you can't really extrapolate the real speed of the decoder in normal circumstances. There are benchmarks on the Intel's site pretending that the decoding in hw mode is thousands of times more rapid than in sw mode, but in practice, the gain is only a few %, and the benchmarks are mainly ads for the Intel processors.

And yes, you can also use Pistacho's MVCSource, but you need to install his BDtoAVCHD, and you should take care. Not sure if that bugs have been fixed, but the last time I've checked it, MVCSource had big problems, notably with a periodic inversion of the left and right views. Also, I don't use it myself and I can't give support because I don't know it sufficiently. It appears in the choice of the MVC decoders when BD3D2MK3D detects it, just because I wanted a simple way to test it, and because BDtoAVCHD users may want to use it.

And yes, theoretically all decoders should return exactly the same clip, so if you don't change other settings, the final MKV should be strictly identical in all cases.

Now, the question is: Should I make FRIMSource the default decoder for BD3D2MK3D? Previously, it was less stable than MVCSource, but currently, it seems better. Therefore, I may change the default setting in the next version. Anyway, that setting will not change for existing users, if it has been saved in the config file.

[EDIT] I've reported the problem again at Donald Graft (here (http://rationalqm.us/board/viewtopic.php?f=5&t=324&p=4462#p4462)). I hope he will find the solution.
@Pistacho: Can you help him?

sfatula
24th December 2015, 19:33
I think you should make it the default for now (FRIMSource). Yes, I know the files should be the same, but, when they are, it tells me it works. You could probably save a few people trouble if you make it the new default, for now. According to pistacho, it's faster too. Not that that matters much.

r0lZ
24th December 2015, 19:38
Yep, I'll do it. But Donald Graft has accepted to try to find the problem in DGMVCSource. He is very busy for now, and I don't know if a new version will be ready when I'll release v0.80, but if it's the case and it is confirmed that the bug is fixed, I will probably keep DGMVCSource as the default.

sfatula
24th December 2015, 20:05
If he " confirms" it, let me know, would be happy to retest with my disk.

pistacho
25th December 2015, 19:20
And yes, you can also use Pistacho's MVCSource, but you need to install his BDtoAVCHD, and you should take care. Not sure if that bugs have been fixed, but the last time I've checked it, MVCSource had big problems, notably with a periodic inversion of the left and right views. Also, I don't use it myself and I can't give support because I don't know it sufficiently. It appears in the choice of the MVC decoders when BD3D2MK3D detects it, just because I wanted a simple way to test it, and because BDtoAVCHD users may want to use it.


Yes, this bug is already fixed.

masken
30th December 2015, 22:37
Awesome work :) I too had problems with hardware acceleration on Intel HD Graphics 4400 (HP Elitebook 840), disabled works fine. A humble request; any way to prevent power saving mode on laptops while encoding?

r0lZ
31st December 2015, 10:46
I don't know how to do it, except by manually disabling the power saving mode when you encode.

I know that there are programs available on the net to temporarily disable the feature (while a certain program is running or when a window is opened), but I can't find them any more.

If you wish, I can perhaps write a little program that will simulate mouse moves or key presses so that the system will "think" that someone is still using the computer, but that method has several drawbacks. It will also disable the screen blanker, and the mouse or keyboard activity may interfere with other programs. Therefore, I don't think it's a good solution.

If someone can find a way to disable and enable power saving mode from the command line, I should be able to add these commands in the __ENCODE*.cmd scripts to disable it when the encoding starts and re-enable it when it finishes. But I don't know that commands and even if it's possible. Someone?

[EDIT] "powercfg (https://technet.microsoft.com/en-us/library/cc748940%28v=ws.10%29.aspx)" is the command to do it. It has a lot of options, including the possibility to change the current power scheme (for example to switch from "Power saver" to "High Performance" or the opposite). It can also change any setting within the current power scheme (including the "sleep after" and "hibernate after" settings). It can also examine the current configuration and list the available power schemes. Therefore, it seems that everything is possible.

But I don't know what I should do. I must take into account that the PC may crash during an encoding (for example due to a power failure), or the encoding may be interrupted by the user. In that cases, the original settings will not be restored, and the PC will never go to sleep mode automatically any more, unless the user restores manually the original settings. So, what should I do? IMO, it is simpler to change completely the power scheme and use the High performance scheme during the encoding, and restore whatever was the original scheme when the project has been created when the encoding finishes. That way, if the scheme is not restored, the user will only have to select the original scheme manually to restore it.

But some users may prefer to leave the current scheme, and change only the minimum number of things: the delays for the automatic sleep and hibernate operations. IMO, that's not the best solution, because the "Power saver" scheme may not save much power anymore after a crash. Also, should I change the settings for the PC connected to the DC power only, or also for the PC running on battery? I suppose that an encoding is always made when the PC is connected, but who knows?

It is also possible to force the user to create a special "Encoding" scheme for the encoding, and switch to that scheme automatically only if it exists. The advantage is that the user can freely configure it, but he will have to turn off the sleep and hibernate features anyway.

There are many possibilities. Do you have a preference? Personally, I think that I can add a menu with the list of available power schemes in the GUI, to let the user select the power scheme to use during the encoding, and the one to restore after the encoding. I can also add a menu that will allow the user to restore immediately any power scheme. That may be useful to facilitate the restore after a crash. Is it OK for everybody?

thahandy
1st January 2016, 17:21
Hm. ya tricky.

You can try create a mini program and run it next to BD3D2MK3D which only purpose is to disable sleep/hybernate with a certain delay when cpu load is >50% or so. (this will help a lottttttt of users :cool:)

r0lZ
1st January 2016, 18:32
Well, I have already implemented something similar within BD3D2MK3D. The Power plan can now be changed when the ENCODE.cmd script is launched, and restored when POSTPROCESS.cmd is executed (at the end of the encoding). That works well, but I can't avoid completely the risk that the new power plan stays active in case of a crash. The same thing can certainly also happen if the trick is implemented as a standalone program, with the additional difficulty that it will be necessary to configure it, and it may restore the original power plan too early if the CPU load falls below 50% for a short moment.

I will release a new version soon, probably tomorrow...

thahandy
1st January 2016, 21:07
Maybe you can build in a check when running BD3D2MK3D from last state and after a client or BSOD crash (imho having BSOD is a whole other ballgame and 99.9% NOT related to BD3D2MK3D)

And you have a way to detect ENCODE window is aborted? (= windows closed) As it will not execute POSTPROCESS and so not restore power scheme.



Note:
I'm not using any form of sleep/hibernation when my PC or laptop is connected to AC source unless I said so. It's the first thing I do at clean install. So personal I don't require this at all :rolleyes:
I just want to make sure it's semi "bulletproof". :)

r0lZ
2nd January 2016, 00:03
Yes, a check to verify if the power plan has changed when BD3D2MK3D is opened is a good idea. I will add it...

And no I can't test if the encode window has been closed, since it's the process running in that window that must restore the power plan.

BTW, there is another case that can cause problems. If the user prepares a project while another project is encoding, the "current power plan" will be the plan that has been temporally forced by the encoding process, and the new process will add the command to restore a wrong plan in the POSTPROCESS.cmd file. I have to verify also if the current plan is different than the temporary plan, and if it's not the case, warn the user and offer to restore another plan. Not easy!

I don't use the automatic sleep mode neither, because the guys at M$ are unable to understand that it's not because there is no human working on the computer that the computer is not working! I understand that the screen blanker can be activated when the human is not present, but powering down the PC should happen only when the CPU is (almost) idle for a long time. Since that's not taken into account, I prefer to control myself when I can manually put the computer to sleep. But I understand that simply turning off the automatic sleep mode is not a good solution for everybody.

r0lZ
2nd January 2016, 15:17
OK, here it is. It is now possible to define the power plan to use when encoding. If you do so, you will also have to define the power plan to restore at the end of the encoding (for safety purposes). There are also some useful tools in the Settings -> Power Plans menu, including the possibility to activate another power plan directly from BD3D2MK3D.

When BD3D2MK3D starts, it checks also several things related to the power plans, and it warns you if it detects something wrong. I did my best to be sure that the original power plan is restored or to warn the user if it's not the case, but I can't certify that the power plan will not change after a crash during an encoding and before you launch BD3D2MK3D again. Let me know if you think that something can still be improved.

It is also possible to open the Power Options control panel from the Power Plans menu, but I don't know if that feature works well under all versions of Windows. Please let me know if that feature doesn't work for you.

Also, FRIMSource is now the default MVC decoder, but note that that setting will not change for existing users. I may come back to DGMVCSource later if it doesn't have the black frames problem any more.

v0.80 (January 2, 2016)
- FRIMSource is now the default and recommended MVC decoder. (That setting doesn't change for existing users.)
- Added the Settings -> Power Plans menu to easily avoid problems with the PC going to sleep or hibernate mode.
- Updated the MkvToolnix exes to the latest version (v8.7.0)

Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)

masken
3rd January 2016, 22:01
Awesome, thanks - will try it :)

r0lZ
4th January 2016, 00:33
DO NOT USE v0.80! MkvMerge v8.7.0 doesn't work!

Sorry, the last thing I did before releasing v0.80 was to check if newer versions of the 3rd party programs were available, and I have updated the mkvtoolnix exes to the latest version, without testing if they work. I just finished an encoding right now, and I have noticed that the final mkv is not produced. After some investigation, my conclusion is that MkvMerge v8.7.0 is totally buggy, at least the Windows version. It cannot mux anything, and is not recognised by the MkvToolnix GUI. I've tried all versions available, and it's always the same problem. I will report the bug to the authors, but in the meantime I have made a new release of BD3D2MK3D that includes the previous version of the mkvtoolnix exes, v8.6.1.

Note: If you have made an encoding and you can't find the final MKV, you don't need to re-encode everything. Just install this version and launch __MUX_3D.cmd to create the MKV.


v0.81 (January 4, 2016)
- Due to huge bugs in MkvMerge v8.7.0, reverted the MkvToolnix exes to the previous version (8.6.1)

Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)

If you have already downloaded and installed BD3D2MK3D v0.80, you can also simply overwrite mkvmerge.exe, mkvpropedit.exe, mkvinfo.exe and the "data" directory in the toolset directory of BD3D2MK3D with the versions from this MkvToolnix archive: mkvtoolnix-32bit-8.6.1.7z (http://www.videohelp.com/download/mkvtoolnix-32bit-8.6.1.7z). (Nothing else has changed in BD3D2MK3D itself.)

Sorry for the inconvenience.

r0lZ
4th January 2016, 11:01
I forgot to change the version number in v0.81. Don't worry if you still see v0.80. Since the code has not changed, the version number doesn't matter much, as long as you see v0.80 or v0.81 AND Help -> Mkvmerge version shows version 8.6.1. However, if you use Help -> Check for update, it will tell you that v0.81 is available.

I have uploaded a new v0.81 with the correct version number. You can download it if you wish: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)

slavanap
4th January 2016, 20:08
Hum, I have never encountered that problem, and honestly I don't think I can do something to avoid it.

There are stupid programs available on the net to simulate a mouse move of key press regularly while a certain window is open, or a certain program is running. Perhaps you can use that kind of trick, but I don't think it's something that should be hardcoded in BD3D2MK3D. After all, it's a Windows bug!

Perhaps there is also a power management option to NOT go into sleep mode when the notebook is connected to the AC power?
There's nice WinAPI function intended for your case:
https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa373208(v=vs.85).aspx
Just call it like this:
SetThreadExecutionState(ES_SYSTEM_REQUIRED|ES_CONTINUOUS);
P.S. Call it in your main program thread of course. Or I can write a simple program that monitors a state of other executable and calls this function.

r0lZ
4th January 2016, 21:00
Thanks for the suggestion, but I can't call WinAPI functions from the command line, and the encoding is made from a batch (.cmd) file only. Anyway, I've found the solution: powercfg.exe. That should work fine with all versions of Windows.

If you wish, you can write a small program to automate the change when a certain program is running (or, IMO, better: when the CPU usage remains high for a long time). I'm sure it will be very useful to others, and perhaps also to me, but I don't need it for BD3D2MK3D. Thanks anyway.

DarkCinema
7th January 2016, 16:11
Hi r0lZ,

I recently came across your great BD3D2MK3D program. I needed a way to keep the 3D Blu-ray PGS subs displaying correctly. Most media-players I tried like the Open Hour A400 and various Android KODI boxes display the subs of a 3D Blu-ray ISO in 2D. With BD3D2MK3D I now can convert to Full Res T&B with burned-in subs using the original 3D Plane information.

I am wondering if it is possible to convert the 3D Blu-ray to 3D MVC MKV with burned-in subs. Maybe in combination with MakeMKV this can be achieved? The MVC-3D MKV files can be played from the Android KODI boxes in I own while the FHD T&B can’t.

See: http://www.makemkv.com/forum2/viewtopic.php?f=1&t=4781

r0lZ
7th January 2016, 16:38
Thanks for your kind words and welcome to the D9 forums!

You can already save as full-size frame sequential mkv (with hardcoded subs if you wish), but not as AVC/MVC, because that would require a totally different approach, due, among others, to the necessity to use another video encoder. In frame-sequential mode, the two streams are encoded in AVC. However, it should be possible to edit __ENCODE_3D.cmd to encode with the intel MVC encoder instead of with the current procedure. But sorry, I'm not interested to add the code to do it automatically, mainly because too few peoples are interested. Note also that the current free MVC encoder (from Intel) doesn't do a good job. IMO, for the same file size, it is much better to encode in Full-T&B or frame-interleaved with x264.

Also, I think that there are other tools closer to what you want to do than BD3D2MK3D. Perhaps you should try the FRIM encoder? I don't think it can hardcode the subtitles, but you can probably ask videofan3d to add that feature. (You will have to generate the 3D subtitles with BD3D2MK3D anyway, but that should be easy.) I have no idea of what should be done to produce the final MKV.

Note also that if you can find yourself the modifications to the AVS script and __ENCODE_3D.cmd to produce the AVC and MVC streams (and, if possible, also the modifications to do to __MUX_3D.cmd to create the final MKV) AND if it is not too difficult to implement that method in BD3D2MK3D, I may do it later. But I can't do it alone, because I don't have the right hardware to test AVC+MVC MKVs.

DarkCinema
7th January 2016, 17:23
Wow that's a lot of information to take in. I am not that skilled in encoders and such. I tried the full-size frame sequential mkv, but it won't play on my TV.

I will have a look at the options you gave. Thanks.

slavanap
9th January 2016, 01:27
There's nice WinAPI function intended for your case:
https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa373208(v=vs.85).aspx
Just call it like this:
SetThreadExecutionState(ES_SYSTEM_REQUIRED|ES_CONTINUOUS);
P.S. Call it in your main program thread of course. Or I can write a simple program that monitors a state of other executable and calls this function.
Thanks for the suggestion, but I can't call WinAPI functions from the command line, and the encoding is made from a batch (.cmd) file only. Anyway, I've found the solution: powercfg.exe. That should work fine with all versions of Windows.

If you wish, you can write a small program to automate the change when a certain program is running (or, IMO, better: when the CPU usage remains high for a long time). I'm sure it will be very useful to others, and perhaps also to me, but I don't need it for BD3D2MK3D. Thanks anyway.

Here's .exe file: http://sendfile.su/1191348
Here's the source if you want to compile it yourself: http://pastebin.com/wMJ2nE0r

r0lZ
9th January 2016, 09:48
Good work! Seems easy to use. I will probably use it instead of the current method using powercfg.exe. But I need two precisions. Can you confirm that the original EXECUTION_STATE is restored when the PC reboots after a crash?

Also, if I use blocksleep to launch x264, the PC will never sleep while the process is running. Fine. But when x264 has finished its job, the whole process is not finished yet. The batch file must still mux the elementary streams to MKV, and that can take up to 15 minutes or so. The question is: When the original execution state is restored because the x264 process ends, is it a risk that the PC goes to sleep immediately, or can I assume that the normal delay before going to sleep (due to no user actions) starts over at that time?

slavanap
10th January 2016, 01:19
Good work! Seems easy to use. I will probably use it instead of the current method using powercfg.exe. But I need two precisions. Can you confirm that the original EXECUTION_STATE is restored when the PC reboots after a crash?
The state restored after child process is terminated. No matter what happened: crash or successful finish. I give the same return code of the child process as return code of blocksleep.exe

Also, if I use blocksleep to launch x264, the PC will never sleep while the process is running. Fine. But when x264 has finished its job, the whole process is not finished yet. The batch file must still mux the elementary streams to MKV, and that can take up to 15 minutes or so. The question is: When the original execution state is restored because the x264 process ends, is it a risk that the PC goes to sleep immediately, or can I assume that the normal delay before going to sleep (due to no user actions) starts over at that time?
Well, I suggest to use blocksleep either for the whole .bat file (run cmd.exe), or use it for every long command. Note, if blocksleep won't be run for about 90 sec (Windows feature), there's a possibility the PC will go sleep. More than that, blocksleep does not change power profile, so if you use "battery save" kind a mode, the x264 performance may be slow.
This blocksleep functionality still has to be tested.

r0lZ
10th January 2016, 10:09
OK, I see. I will have to check it. At least, 90 seconds is enough to launch another blocksleep command. Thanks!

frank
11th January 2016, 13:03
Here 2 Disney BD with the black frame Intel dec bug:
- The Monster AG
- The Monster Uni
With software decoding it works fine.
I use DGMVCsource as standard decoder. Fast and safe on all my devices.
I'm sure Donald Graft will find the bug, he is a good scientist and developer.

BTW: Pistachos (adware) MVC decoder was never faster than DGMVCsource with BD3D2MK3D on my notebooks (I7 3th-5th gen).