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

tomilein
7th September 2015, 09:41
i have a Question to add second Subtile (forced).

I must editing the _ENCODE_3D_MOVIE.avs right?

I can see:

# Hardcode subtitles
#VobSub("00098.track_4617.Deu.3D.sub")
SupTitle("00098.track_4617.Deu.3D.sup")

How do I add correctly the second Subtitle?


# Hardcode subtitles
#VobSub("00098.track_4617.Deu.3D.sub")
SupTitle("00098.track_4617.Deu.3D.sup")
#VobSub("second.track_4617.Deu.3D.sub")
SupTitle("second.track_4617.Deu.3D.sup")

or

# Hardcode subtitles
#VobSub("00098.track_4617.Deu.3D.sub")
SupTitle("00098.track_4617.Deu.3D.sup")
SupTitle("second.track_4617.Deu.3D.sup")

?

r0lZ
7th September 2015, 10:32
The AVS script is used only to hardcode the subtitles over the video. And IMO it doesn't make sense to hardcode two subtitle tracks at the same time. If it's really what you want to do, the two examples in your code above are correct, but take in mind that the subtitles will probably be placed at the same position on screen (unless they are at different positions in the original BD). Note that the lines beginning with # within the AVS script are comments and are ignored. Therefore, the two ways are strictly equivalent.


If you want to mux a new sybtitle stream (to be able to select it with the remote), you should edit the _MUX_3D_OPTIONS.txt file. It contains the definitions of the subtitle streams (and the other streams). Simply copy one of the existing subtitle definition, and modify it according to your needs. You should edit the Title, the language, and of course, the file name (the last line in the "paragraph"). Take care also: you cannot define two subtitles streams as "default" at the same time, so if a stream has already the option --default-track 0:yes, you must use 0:no for the new track.

If you have MkvToolnix installed on your computer, you can also use the MKVToolnix GUI (or the MkvMerge GUI "mmg.exe") to load the MKV file produced by BD3D2MK3D, add your own subtitle file, modify its parameters (such as the language) and remux the file as a new MKV. That's much easier.

Note that you must define the character encoding if your subtitle stream is a SRT file (or other text based subtitle format), or elsewhere some special characters like the apostrophe or accented characters will not be correctly displayed. You don't need to specify that if you use a graphic format such as BD SUP or IDX/SUB.

tomilein
7th September 2015, 11:50
Thanks for Answer, i have see the Options in the _MUX_3D_OPTIONS.txt

Thank You an have nice Day :)

Airmiles
9th September 2015, 16:09
Version 73 anywhere near completion yet :-)
I am a very patient guy, so please don't take this the wrong way. I am just asking :-)
I remain mightily appreciative of all you have done for us already.

r0lZ
9th September 2015, 16:44
What new feature do you expect? The possibility to encode the 2D version? I haven't implemented that yet.
Currently, there are only a few minor modifications, and IMO it is too early to release a new version now.

brochild
10th September 2015, 01:03
hello r0lZ
I really appreciate your work, and have been using for a while now.
Is it possible to modify this tool to use with regular Blu-ray?
I have been using tsmuxer to demux regular Blu-ray, then mux the files to create an ISO image, then use handbrake to convert the image to mkv.
This whole process is tedious and time consuming.
Whereas, if we can use a modified version of your tool (for 2D Blu-ray), its a one step process, and the MKV conversion seems faster.

r0lZ
10th September 2015, 08:26
Hum, sorry, but no. BD3D2MK3D is really a tool to convert 3D to MKV, and it has so many 3D-specific things that it is very difficult to change it to support 2D also. Furthermore, adding a 2D option will be confusing and complicated. And I'm not sure I want to create another, different tool to process the 2D movies only.

But you can easily encode and mux to MKV yourself. There is no need to create an intermediate ISO image. I use 2 different methods, depending of the structure of the movie I want to encode to MKV. The two methods require something to decrypt the original BD (like AnyDVD HD), MkvToolnix and a GUI to re-encode to h264 (like Lord Mulder's Simple x264 Launcher). You need a demuxer only for the second method.

If the movie is made of a single M2TS file (not nulti-angle with seamless branching), I do this:
1. - I open the M2TS in MkvToolnix GUI (or, if you prefer, in the older MkvMerge GUI), and I mux the streams I want to keep to a lossless MKV file. (You have to specify the languages of the audio and subtitle streams manually.)
2. - I open that lossless MKV file in the Simple x264 Launcher and I re-encode the video to h264. (I don't think it's possible if you want to encode to h265, but I have not verified.)
3. - I load the lossless MKV into MkvToolnix/MkvMerge GUI, and I replace the video stream with the re-encoded stream. (It is usually necessary to specify the frame rate, unless you have specified it to x264 in step 2). Then I remux the streams to the final MKV.
That's all folks!

If the movie is made of several M2TS files (multi-angle), there are 3 solutions. The simplest one is to simply encode each part independently (with points 1 and 2 above), then use MkvToolnix/MkvMerge GUI to join the part together and output the final MKV. However, that method is not perfect, because it introduces small delay problems at the joints. They are usually not perceptible if the movie has only 2 or 3 parts, but if it is made of numerous parts (like some Disney/Pixar movies) it's not recommended. In that case, I prefer to demux the MPLS file (you can use tsMuxeR or eac3to to do that, but eac3to is easier and it works well as long as the source is in 2D or if you don't need the subtitles). Then, you have to mux at least the video track to lossless MKV and encode it normally as explained above. Finally, you should mux the video, audio, subtitles and chapters to the final MKV file. There is also another solution for these difficult cases: use MakeMKV to generate the lossless MKV. It takes care of everything automatically, but it is not free and often it requires to analyse the movie during an extremely slow operation. (BTW, I have never understood why it's necessary. IMO, muxing directly with MkvMerge/MkvToolnix gives exactly the same result, as long as the original BD has been correctly decrypted.)

The method to process multi-angle movies is somewhat more tedious, but it works, and in both cases it's much more rapid than having to create an intermediate ISO. The key is that most builds of x264 can decode an existing MKV file to re-encode it. You cannot re-encode directly the M2TS because even if x264 accepts it, it doesn't decode it properly. It's why you have to do step 1 to convert the M2TS (or MPLS) to MKV first.

IMO, 3 manual steps to convert and re-encode a BD movie to MKV doesn't seem too complicated. Also, I suppose that there are other tools to re-encode a BD to MKV with x264 (although I don't know them because I have never needed them), and I don't want to reinvent the wheel.

To encode a 3D movie to 2D MKV, you can use BD3D2MK3D. When the project is ready, use _MUX_2D.cmd to mux to the lossless MKV automatically, and then follow points 2 and 3 above. I will add the possibility to re-encode automatically soon...

brochild
11th September 2015, 00:12
Thanks r0lZ for he quick reply
What can I say, you spoiled me :)
The methods above are not tedious - I was only being lazy and wanted a one-click approach.
Love your BD3D2MKV3D tool - keep up the good work.

SpasV
11th September 2015, 10:11
An OFS file is only usefull if there are no depth values in dependent stream or you want to create new values.
Remultiplexing in Scenarist keeps all original depth values - no need for an OFS file.
Just assign original 3D plane to corresponding pg stream.

I've got a problem whith RED_BIRD_3D_WW (an Avatar 3D release).
The soundtrack's I see you (after the last movie's subtitle) lyric was part of the subtitles stream at the end of the movie. It was impossible to extract the subtitles because of stream's discontinuity and aborted demux.

I've lost this release and the only way to restore its .mvc would be if I had the tools to:
- edit the original .ofs so as to add the I see you subtitles (with a constant depth, for example),
- to embed the edited .ofs in an Avatar's .mvc

So, r0lZ, can you help me with this?

r0lZ
11th September 2015, 14:06
No, sorry, for several reasons.

First, BD3D2MK3D is not an OFS editor. (Currently, it is even unable to save the 3D-Planes in OFS format). It should be easy to write a little script that adds constant values at he end of the original (truncated) OFS, and fix the number of frames in the header, but I can't write a program for a so specific job, that will be useful only once and for one people. And I am not interested at all in a tool to add the OFS to the AVS stream. My goal is to convert the 3DBDs to MKV, and not to recreate new BDs from damaged material.

Secondly, I guess your release of Avatar is a pirated copy, and furthermore you don't have it any more. The D9 forum rules prohibit helping peoples having problems with pirated material. Sorry, but I have to respect the rules.

r0lZ
14th September 2015, 13:29
As promised, here is v0.73, that has mainly two important differences with the previous versions.

The 3D-planes (aka "Offset Sequences") are now saved as OFS files rather than in the old 3DP format. The only difference is that the OFS files have a header and are compatible with Scenarist and with the Sony 3DBD authoring tools (and perhaps also with other programs). It should therefore be possible to use the OFS files produced by BD3D2MK3D to re-author a 3DBD with Scenarist with the AVC and MVC video streams computed with FRIM or any other BD rebuilder tool, and keep the original subtitles depths. Users of BD3D2MK3D should not notify the difference. Thanks to Nico8583 (http://forum.doom9.org/member.php?u=178136) for MVCPlanes2OFS.exe, used by BD3D2MK3D to extract the 3D-planes from the MVC stream and, with this new version, add the OFS header. Note that the old MVCPlanes.exe is not necessary any more and can safely be deleted from the toolset directory.

The other important change is that it is now possible to encode and mux the 2D version of the movie easily. The main script to encode the 3D version has been renamed to __ENCODE_3D.cmd, and there are now two scripts to produce the 2D versions of the movie. _ENCODE_2D.cmd is used to re-encode the 2D version with roughly the same parameters than the 3D version, and _MUX_2D_LOSSLESS.cmd can be used to simply mux the original AVC video stream with the audio and subtitle streams to produce a lossless (but large) 2D MKV file.

Note that _ENCODE_2D.cmd doesn't encode an avisynth script. It re-encodes directly the original AVC stream. It's faster and simpler, but that means that there are also some limitations. It is not possible to encode in HEVC with x265 (but if the x265 option has been selected in the GUI, the script to encode the 2D version will be produced anyway, with the latest options selected for the x264 encoder). Also, it is not possible to hardcode a subtitle stream over the video (but if a stream is hardcoded for the 3D version, that stream will simply been muxed with the 2D version). Some less important limitations apply too, such as the fact that the resize to 720p (if applicable) is always made by x264, and it is not possible to add N seconds of black at the beginning or end of the video. In short, everything that is made by the avisynth script cannot be made for the 2D version (except the resize to 720p).

Note that all script files beginning with two underscore are used only for the 3D version, and the scripts beginning with only a single underscore are for the lossless or re-encoded 2D versions.

There are also some other changes. See the history below:

v0.73 (September 14, 2015)
- Added the possibility to re-encode the 2D version of the movie with _ENCODE_2D.cmd.
- Modified the file names of the scripts. The main script to encode the 3D version is now __ENCODE_3D.cmd.
- The 3D-Planes are now extracted to the OFS format (compatible with Scenarist) instead of the old 3DP format without header, thanks to MVCPlanes2OFS.exe by Nico. (The 3DP format can still be loaded by the subtitle tools.)
- Removed the obsolete tool "Convert Subtitles to 3D (fixed depth)" and its third party tool Suppe3D.exe.
- Added Tools -> Remove Cover Art from MKV File.
- You can now double-click a MPLS in tab 1 to preview it immediately.
- Removed Settings -> Verify Input Subtitles. That (slow) option should now be turned on automatically when necessary only.
- Fix: When an option was changed in the Settings menu, the "Add N seconds of black..." options in the last tab were saved also.
- Updated x264 to the latest version (v0.148.2597)

As usual, you can download the latest version here: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
Have fun!

Airmiles
20th September 2015, 09:00
Thanks r0lZ. Great work, as always !
:thanks::thanks::thanks::thanks::thanks:

frank
24th September 2015, 08:21
If you want Convert Subtitles to 3D with 3D-Plane/OFS from .sup then you'll get the error message:
The 3D-plane file has not the right extension "ofs" (or ".3dp")

No way to convert edited sups with the new ofs edition. :(

r0lZ
24th September 2015, 10:17
Right. I have just noticed that bug yesterday. It is already fixed. I will release a new version soon...

r0lZ
24th September 2015, 10:53
OK, here it is. It's only a bugfix release.


v0.74 (September 24, 2015)
- Fix: Convert Subtitle to 3D: The 3D-Plane file was rejected because the file extension was not checked correctly.
- Fix: Clone Subtitle Positions: There was 3 illegal characters at the beginning of the output file when the input XML is in UTF-8 format.
- Small cosmetic changes.
- Updated MkvMerge.exe and MkvPropEdit.exe to the latest version (v8.4.0).


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

frank
24th September 2015, 15:29
:thanks:

luzhu
1st October 2015, 03:21
Why can't I in the MVC video stream which extracts depth migration file (.Ofs)(.3dp)?


Extraction of 3D-planes from MVC file with BD3D2MK3D v0.74 (c) r0lZ and MVCPlanes2OFS v2.0 (c) 2015 by Nico8583
Input MVC file: "00019.track_4114.mvc"
Output folder: "."
Command: "D:\Application installation\BD3D2MK3D20150927\toolset\MVCPlanes2OFS.exe" "00019.track_4114.mvc" "."


No 3D-Planes found, stop searching. Exit with code 2

Extraction took 0 seconds (00:00:00)
Extracted 0 3D-planes with 0 frames @ 0 fps.
1 warnings!

Please note that the 3D depth values stored in the 3D-planes must be applied to the two views.
The total displacement between the two subtitles is therefore two times the depth value.
For that reason, BD3D2MK3D uses internally depths value multiplied by 2.
This allows the user to specify manually more precide odd values for the total displacement of the two subtitles.
The values stored in the <depth> tags of the temp 2D XML files are also multiplied by 2, for the same reason.

Source subtitle streams information:
- Eng PGS, 3D-plane: 0
- Spa PGS, 3D-plane: 0

Nico8583
1st October 2015, 07:23
Is your MVC track demuxed from an original 3D BD ? Or is it a remuxed 3D BD ?
It seems there is no information about depths and planes inside your MVC file...

luzhu
2nd October 2015, 13:03
Is extracted from the original disk H264 and MVC video. There is no problem with this, right?

r0lZ
2nd October 2015, 13:52
Welcome to the Doom9 forums, luzhu.

A correctly authored BD3D with subtitles should have 3D-planes, but there are badly BD3Ds with dummy (fixed depth) 3D-Planes or even without 3D-Planes at all. It's specially the case for cheap Asian 3DBDs. May I know what 3D movie you have tried to encode, and in what region?

Also, if you have downloaded an ISO from the internet (especially a re-authored BD with re-encoded video to fit on a BD-25), chances are that the 3D-Planes have been lost during the operation. Anyway, BD3D2MK3D requires a correct, original BD.

Note that the fact that a subtitle stream is associated with a specific 3D-Plane number in the playlist (as you can see in tab 1 or 2) doesn't mean that the 3D-Plane exists really in the MVC.

Anyway, as far as I know, MVCPlanes.exe (or now MVCPlanes2OFS.exe) has never missed the 3D-Planes when they are really present in the MVC stream. Therefore, I suppose that your BD has no 3D-Planes at all.

Also, I notice this:

Source subtitle streams information:
- Eng PGS, 3D-plane: 0
- Spa PGS, 3D-plane: 0

It's strange. Although it is not illegal to use the same 3D-Plane for 2 different subtitle streams, I have never seen that. Therefore, I guess that this is a badly authored BD, or a re-authored BD-25.

Anyway, BD3D2MK3D can't help. Sorry.

luzhu
2nd October 2015, 15:01
:thanks:

wiggaz
6th October 2015, 18:36
Hello r0lz,
you did an awesome job with this tool.
You made 3D easy to rip.
Now I was wondering if I can make a little request for the next update.
Would be possible to have the log of x264?
Thanks in advance. :)

odyssey
12th October 2015, 23:27
Hey r0lz. Thanks for your AMAZING work, it's a truly brilliant tool!

Now, let's say that I have a 3D bluray which have not been released in my country, but I have the _regular_ bluray and want to hardsub this using the plane-information... Is there any possibility I could make this work at all, and what would it require?

I noticed a Tool named "Clone Subtitles positions from another file" - Are they needed for exact this purpose? Only I'm a little confused that it needs the XML/PNG.

r0lZ
13th October 2015, 09:31
Would be possible to have the log of x264?
Well, it's possible, but the log file will be very large, because it includes all lines produced by x264, including the % of completion. For example, you will get something like this:

y4m [info]: 1920x1080p 0:0 @ 24000/1001 fps (cfr)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
x264 [info]: profile High, level 4.1
[0.0%] 1/119388 frames, 0.51 fps, 241.29 kb/s, eta 64:46:02
[0.0%] 12/119388 frames, 5.44 fps, 32.43 kb/s, eta 6:05:35
[0.0%] 23/119388 frames, 9.33 fps, 23.41 kb/s, eta 3:33:12
[0.0%] 34/119388 frames, 12.52 fps, 20.21 kb/s, eta 2:38:50
[0.0%] 45/119388 frames, 15.06 fps, 18.55 kb/s, eta 2:12:07
[0.0%] 55/119388 frames, 16.91 fps, 17.66 kb/s, eta 1:57:38
[0.1%] 61/119388 frames, 17.22 fps, 17.23 kb/s, eta 1:55:30
[0.1%] 66/119388 frames, 17.36 fps, 16.97 kb/s, eta 1:54:33
[...]

There is a lot of "[X.X%]" lines that will be saved to the log file without any good reason.
As far as I know, there is no way to capture only the interesting lines or filter out the %.
I can add an option to save the log if you wish. It's not difficult to do. In the meantime, you can edit the __ENCODE_3D.cmd script yourself, and add " 2>&1 | tee x264.log" at the very end of the x264 command. For example:

[...]
"path\to\BD3D2MK3D\toolset\avs2yuv.exe" ^
"__ENCODE_3D_MOVIE.avs" -frames 119388 -o - ^
| "path\to\BD3D2MK3D\toolset\x264_x64.exe" ^
--crf 20 --preset slower --level 4.1 --vbv-bufsize 78125 --vbv-maxrate 62500 ^
--frame-packing 3 --qpfile chapters_3D.qpfile --frames 119388 --fps 24000/1001 ^
--output "00000_3D.264" --demuxer y4m --stdin y4m - 2>&1 | tee x264.log
[...]

Note the space between the "-" and 2>&1.

Thanks for your kind words!

r0lZ
13th October 2015, 11:00
Hey r0lz. Thanks for your AMAZING work, it's a truly brilliant tool!

Now, let's say that I have a 3D bluray which have not been released in my country, but I have the _regular_ bluray and want to hardsub this using the plane-information... Is there any possibility I could make this work at all, and what would it require?

I noticed a Tool named "Clone Subtitles positions from another file" - Are they needed for exact this purpose? Only I'm a little confused that it needs the XML/PNG.Thanks to you too for your kind words.

If I understand correctly, you would like to copy the subtitles from the 2D BD and use them with BD3D2MK3D to hardcode them on the SBS or T&B video. Right?

It's possible, but that requires some manual work. I wanted to write a short guide to explain how to do it, but I have never found the time to do it. So, finally, here it is.

BTW, Clone Subtitle Positions requires XML as input because I can't write myself a tool that can edit the subtitle positions within a BD SUP or DVD SUB just to ease that step. In the other hand, it is easy to read and modify the positions of the subtitles in an XML file. Anyway you can easily convert from SUP (or IDX/SUB) to XML/PNG, and vice-versa, with BDSup2Sub. Just be sure to verify that BDSup2Sub doesn't change the timings when it converts a subtitle stream, because its handling of the frame rates is very confusing. IMO, the best way to avoid any problem is to tick the option "Change Frame Rate" in the initial window when you load a subtitle stream in BDSup2Sub, and select 23.976 for both the input and output FPS.

The guide follows in the next post...

r0lZ
13th October 2015, 11:08
So you have a 3DBD and you would like to add subtitles from another source with the correct 3D depths. Although the procedure is not automatic, it is possible to do it with BD3D2MK3D. Here is how.

Mini guide: How to convert 2D SRT subtitles or SUP from another BD to 3D

Foreword
The principle is to prepare the job with an existing 3D subtitles in another language, and then replace that stream (called the "guide stream") with your own stream, in your language.

Unfortunately, a specific 3D-Planes is usually made for a specific subtitle stream, and it may not work well if you use it to convert another stream to 3D. That's why, for best results, you should chose a guide stream that has probably the same subtitles than in your language, at approximately the same timings. For example, if it's an US movie, there are probably forced subtitles in your stream not present in the English stream. Therefore, you should select another language for the guide, also with the same forced subtitles. You should also select a guide stream in a language similar to yours, because if the position and space occupied on screen by a specific subtitle of the guide stream are very different than the position and size of the same subtitle in your language, the final result may be very bad.

Begin by processing the 3DBD normally with BD3D2MK3D, and select the guide stream according to the explanations above to hardcode it to the video in the last tab (or the guide stream in tab 2 if you just want to mux it in the final MKV). (Note also the number of the 3D-Plane used by the guide. You'll need it later.) Create the BD3D2MK3D project normally.

Of course, you need the 2D subtitles to hardcode in graphic format. If you demux the PGS from a 2D BD, that should be OK. If your input subtitle file is a SRT (or a similar text based format), you have to convert it to PGS (or, better, to XML/PNG) first. You can use Subtitle Edit (http://www.nikse.dk/subtitleedit/)'s export function to do it. For the reasons explained in the previous paragraph, you should use a font similar or smaller than the font of the guide file (to minimize the risk to have subtitles larger than the corresponding subtitles in the guide stream). And you should position the subtitles approximately at the same height within the image than in the guide file. In short, you should try to obtain a subtitle stream that resembles as closely as possible the guide stream.

You should verify if your subtitle stream is correctly in sync with the video. Timings are critical to obtain the correct 3D effect. Normally, if you have grabbed the PGS stream from the 2D BD at the same frame rate that the 3D BD (23.976 fps) and if the version of the movie is identical (with the same studio logos at the beginning), that should be OK. Otherwise, use any subtitle editor to resync the subtitles.

Many 3DBDs have the subtitles placed "normally", near the bottom of the screen and centred horizontally. If it's the case of the guide stream and if the position of the subtitles in your stream is identical or very similar, you can skip this step. But if the subtitles of the guide are placed at various positions on screen (like in Avatar) or if your subtitles are at a very different position than in the guide, you should use the "Clone Subtitles positions from another file" tool to "fix" the positions of your subtitles. That tool tries to place the subtitles at roughly the same positions than in the guide file. It works on subtitles stream in XML/PNG format only, so you may have to convert the two subtitles to that format with BDSup2Sub. You can use Tools -> Open Subtitle in BDSup2Sub. (Be sure to verify the frame rates and timings after each conversion with BDSup2Sub, because it changes them sometimes without reason!)

At this point, your subtitle stream should be very similar to the guide stream, with all subtitles at their correct positions. You can now convert it to 3D with Tools -> Convert Subtitles to 3D. You should use the 3D-Plane of the guide stream. When it's finished, you should have a good 3D stream, with perhaps some problems, but globally correct.

If you want to hardcode that stream on the video, you should replace the filename of the SupTitle("XXX.sup") command in the __ENCODE_3D_MOVIE.avs script to instruct avisynth to use your own stream instead of the guide stream. (You may want to edit also the language code of the video stream in __MUX_3D_OPTIONS.txt, because BD3D2MK3D sets it to the language of the hardcoded subtitle, but your stream is in another language. It's better, but not mandatory.)

In the other hand, if you don't want to hardcode the subtitle stream but just mux it in the final MKV, you should edit the entry corresponding to the 3D guide stream in the __MUX_3D_OPTIONS.txt file, and change its title, language code and filename accordingly. For example, if your language is French, you may have to edit the blue strings below:

--track-name
0:French 3D (BD SUP)
--language
0:fra
--default-track
0:no
--forced-track
0:no
--sync
0:0
--compression
0:none
My_3D_stream.sup


Now, you can launch __ENCODE_3D.cmd normally, and if you have made the job correctly, you should obtain a final SBS or T&B MKV file with correct 3D subtitles in your own language.

Note
Sometimes some subtitles may not be at the correct position, even if you have followed the guide correctly. That may be caused by several things: A subtitle may not have the right depth when here is no corresponding subtitle in the guide, or when the corresponding subtitle in the guide is smaller (in size) or displayed at different timings. If some subtitles are really badly placed, you can edit the XML file of the 2D XML/PNG stream, change the "Depth" or X/Y position of the badly placed subtitle, and convert again that XML to 3D, but this time WITHOUT specifying a 3D-Plane. Since the Depth values are already present in the XML, the conversion will use them, and it will therefore take your edits into account. That procedure is not easy, mainly because you have to figure out yourself the correct depth value to use without actually seeing the result, but is is useful anyway to fix the most badly placed subtitles. When done, you should relaunch the encoding (for hardcoded subtitles), or just launch __MUX_3D.cmd (for muxed subtitles).

I hope this helps. Let me know if you encounter any problem.

pharaoh
13th October 2015, 15:37
Hi. I'm trying to rip my 3d BD's into FHD 3D mkv's. I can successfully create T&B HALF mkv file (total resolution 1920x1080) and they play fine on the TV. The TV can play 4k files. So far I tried T&B HALF, and added the --video-resize filter to the x264 command line to resize the output to 3840x2160. This also plays fine, but I suspect I haven't actually improved the resolution. So I tried deselecting "HALF" (and saying ok to all the warnings), and keeping the same resize filter. The file I got played on the TV, shows up as 8:9 ratio instead of 16:9, even when I switch to T&B 3d mode. I get proper 3d, but everything is only half as wide as it should be. The ideal solution would be to generate a file that is 1920x2160 pixels (2 FHD images stacked), and somehow shows up correctly on the TV. But I think the samsung might have a limitation with non-square pixels, so if I have to make 3840x2160 files, I'll do that. Anyone have a clue for me. I can follow instructions to edit the necessary files. I also tried remuxing the file with the mkvtoolnix gui to change the aspect ratio or display size. But that seemed to have no effect. Tks in advance.

r0lZ
13th October 2015, 18:20
Normally, when you select Full-T&B, you get exactly "a file that is 1920x2160 pixels (2 FHD images stacked)". The only thing that you can try to change is the aspect ratio. Try to switch the Settings -> Full-SBS/T&B aspect ratio option, but it's identical to changing manually the aspect-ratio argument in __MUX_3D_OPTIONS.txt.

If that doesn't work, I don't know what I can do. My old Samsung TV displays always the 3D movies full screen, regardless of the aspect ratio specified in the MKV container, but it doesn't support Full-SBS, Full-T&B or 4K. It seems that the newer models are even more picky for the resolution and AR. Maybe you can try to find the answer in the doc of the TV, or in a Samsung forum.

Sorry, but I can't help much more.

pharaoh
14th October 2015, 02:32
How do I generate a 3840x2160 file (square pixels)? I think this is what will work with the TV. Is the --video-resize filter the best way, or is there another method?

r0lZ
14th October 2015, 09:13
You can resize with Avisynth or with x264. Anyway, tick the Full option in the BD3D2MK3D GUI. Then, if you want to resize with avisynth, add something like this in the AVS script:

[...]
# Build Side-by-Side stream
StackVertical(Left, Right)
AssumeFPS("ntsc_film")
LanczosResize(3840, 2160)

# Hardcode subtitles
[...]

You can use other resize filters. Consult the avisynth documentation for more info. (Or see the list of available filters in the drop-down selector of the "Resize to 720p" option in the last tab of BD3D2MK3D.)

You can also use x264 to resize the video. You should add this to the avisynth command in __ENCODE_3D.cmd:

--video-filter resize:3840,2160,method=lanczos

Again, there are different resize filters, and more options are available. Here is the full help message about the resize filter (displayed with x264.exe --fullhelp):

resize:[width,height][,sar][,fittobox][,csp][,method]
resizes frames based on the given criteria:
- resolution only: resizes and adapts sar to avoid stretching
- sar only: sets the sar and resizes to avoid stretching
- resolution and sar: resizes to given resolution and sets the sar
- fittobox: resizes the video based on the desired constraints
- width, height, both
- fittobox and sar: same as above except with specified sar
- csp: convert to the given csp. syntax: [name][:depth]
- valid csp names [keep current]: i420, yv12, nv12, nv21, i422,
yv16, nv16, i444, yv24, bgr, bgra, rgb
- depth: 8 or 16 bits per pixel [keep current]
note: not all depths are supported by all csps.
- method: use resizer method ["bicubic"]
- fastbilinear, bilinear, bicubic, experimental, point,
- area, bicublin, gauss, sinc, lanczos, spline

BTW, you may try to specify also the SAR. If your TV ignores the AR stored in the header of the MKV container, it can perhaps use the SAR stored in the video stream instead, and that may explain why it displays the video wrongly.

Finally, note that the easiest way to do it semi-automatically is to tick the "Full" AND the "Resize to 720p" options in the last tab, and select your preferred resize filter in the drop-down list. BD3D2MK3D will generate everything automatically, and you will have to just edit the resize command to change the target resolution.

Anyway, if you find a solution, please let me know. I may have to modify BD3D2MK3D to adapt it to the recent Samsung TVs. Thanks in advance!

pharaoh
14th October 2015, 09:53
Wow! Thanks for all that. I'm learning a lot! Give me a few days to play with it, and I'll post my learnings.

Update: I have good news. SAR did the trick.
1) Deselect "half"
2) Add "--video-filter resize:1920,2160,2:1,method=lanczos" to the x264 parameters
3) Select level 5.0
The resulting file plays at the correct aspect ratio on the Samsung TV. I have confirmed that the TV ignores the display size in the header and can not ignore the SAR value in the video stream.

Only one small problem remaining - although MKVtoolnix shows the stereoscopy=3 (actually means 4, I guess), the TV does not recognize the file as 3D. If I encode T&B HALF and don't resize per the above, the TV recognizes the file as 3D and automatically changes to T&B mode. Importantly, I can change between 2D and 3D at the click of a button. With the T&B FULL file, 3D mode is not automatic (I can still select T&B manually) and the 3D->2D option is not available. With the tools I have (mkvtoolnix), I can't see the difference between the two files expect for the resolution. Any clues?

Thanks again!

r0lZ
15th October 2015, 11:38
Thanks for the info.

Update: I have good news. SAR did the trick.
1) Deselect "half"
2) Add "--video-filter resize:1920,2160,2:1,method=lanczos" to the x264 parameters

OK, that means that I have to find a way to force x264 to use a specific SAR, if possible without resize filter, because it is a pity to have to resize the video to 1920x2160 when it has already that resolution. I don't know if it is possible to specify the SAR with another parameter, not related to the resize filter. If it's the case, I'll add it to the encoding command. (If someone knows how to do it, in the AVS script or in the x264 command, please let me know!)

BTW, I don't know if x264 is smart enough to ignore the resize, since it has nothing to resize. If it resizes anyway, you can certainly use a much faster filter than lanczos, since normally the filter has no effect. I suggest to try with fastbilinear, that should give strictly identical results. If you can notice a difference in the time necessary for the encode, that will mean that x264 resizes anyway.

Only one small problem remaining - although MKVtoolnix shows the stereoscopy=3 (actually means 4, I guess), the TV does not recognize the file as 3D. If I encode T&B HALF and don't resize per the above, the TV recognizes the file as 3D and automatically changes to T&B mode. Importantly, I can change between 2D and 3D at the click of a button. With the T&B FULL file, 3D mode is not automatic (I can still select T&B manually) and the 3D->2D option is not available. With the tools I have (mkvtoolnix), I can't see the difference between the two files expect for the resolution. Any clues?
There are 2 different locations where the stereoscopy argument can be stored. In the h264 elementary stream itself, it is called "frame-packing" and is 3 for SBS and 4 for T&B. There is no way to specify the order of the two views, or if the resolution is full or half.

In the MKV header, the "stereoscopy" field should be 1 for SBS and 3 for T&B, in both cases for the left view first. (Or 11 and 2 respectively for the right view first, but BD3D2MK3D forces always the left view first). Again, I don't think that there is a way to specify full or half resolution.

That 2 settings should be correctly set by BD3D2MK3D anyway, regardless of the full or half mode. But you can verify the --frame-packing argument in __ENCODE_3D.cmd and the stereoscopy argument in __MUX_3D_OPTIONS.txt. For T&B, they should be respectively 4 and 3.

Another way to specify the stereoscopy mode, recognised by some software players, is to add a precise string in the filename, such as "3D-lrq" or "HSBS" for Half-SBS or "3D-abq" or "TAB" for Half-T&B. That's not used automatically by BD3D2MK3D, unless you select the corresponding option in Settings -> Output File Name -> 3D Format Extension.

As far as I know,the Samsung TVs ignore again the content of the MKV header, and with my TV, it switches automatically to the right mode thanks to the frame-packing in the h264 stream. I'm not sure, but I think that it ignores the filename too. But since my TV doesn't support Full-SBS or Full-T&B (1080p), I have never verified if it can do it in Full mode. I will do a test in full-SBS 720p to verify that...

So, sorry, but I don't understand why your TV doesn't work the same way in full and half modes. Again, if you discover why, please let me know.

Note that MediaInfo (http://mediaarea.net/en/MediaInfo) displays the stereoscopy mode like this (for Half-SBS):

MultiView_Count : 2
MultiView_Layout : Side by Side (left eye first)

Since it displays the "(left eye first)" information, I guess that it uses the MKV stereoscopy to retrieve that info. For the frame packing, you can find it in the Encoding Settings field, that should include this (again for SBS): [...] / frame-packing=3 / [...]


[EDIT]
I've found the way to specify the SAR without the resize filter. You can simply add this (instead of the --video-filter resize:... arguments):

--sar 2:1

Of course, for 720p, if a x264 resize filter has been selected in the GUI, the resize argument cannot be removed, and the SAR can be specified along with the resize filter.

The next version of BD3D2MK3D will add the --sar argument in __ENCODE_3D.cmd.

Thanks for having reported that problem. :-)

odyssey
15th October 2015, 21:43
r0lZ: Thanks for the guide :)

What a mess... Of course no subtitles are close to similar. This would require some serious work.

Is there a tool that will help me synchronise two subs relatively easily? I need to move text parts around to match it the 3D sub properly.

A question about 3D planes - Are they framespecific, or ...?? I was wondering why you ignore the 3D plane if a text cannot be matched properly. Wouldn't it be possible to just average out the plane in between or something like that?

r0lZ
16th October 2015, 00:08
For editing text subs individually, I recommend Aegisub (http://www.aegisub.org/) because you can see the subtitle over the video and sync it visually with the waveform of the audio, but if you need only to stretch and/or shift the whole subtitle stream, Subtitle Edit (http://www.nikse.dk/subtitleedit/) is more than sufficient.

In the 3D-Planes, there is a 3D depth value for each frame, but often, when there is no subtitle displayed, the values are undefined, and I can't invent them. (It's why it is important to select a guide stream containing roughly the same subtitles, including the forced subtitles.)

For a specific subtitle, BD3D2MK3D tries to use the best depth value from those defined in the 3D-Plane for its frames. Normally, if for a specific subtitle all frames have a defined depth, BD3D2MK3D drops the 10 first frames and 10 last frames and uses the highest value within the remaining range. (The dropped frames are ignored to minimize the risk to use a value pertaining to another shot just because the subtitle overlaps that shot during a few frames. And if the subtitle "enters" within an object during less than 10 frames, the brain has not enough time to record the information, and it's not really a problem.)

When only some frames have defined values, a warning is added in the XML, but the subtitle's depth is computed anyway.

When there are no defined values at all, BD3D2MKL3D searches if there are defined values 10 frames before the start or 10 frames after the end of the subtitle and if it's the case, it uses that values. Otherwise, it gives up and uses 0 (plus the additional depth value, if provided). IMO, it is useless and dangerous to use frames outside that range, because the risk to use depths values made for a totally different shot is too big, and the overall depth of a shot may be radically different than the depth of the next or previous shot.

You can easily locate the subtitles having an undefined depth or having a depth computed with only some partial depth values by looking at the warnings in the XML file, and manually fix the depth of those subtitles if necessary, as explained in the note at the end of the mini guide.

The only thing that, I think, may still be improved is this: If a subtitle has only undefined depth values, it's probably because the same subtitle doesn't exist in the guide stream. Currently, in that situation, BD3D2MK3D gives up. It should be possible to search the other 3D-Plane files, and use the values from the first plane containing valid depth values for that specific subtitle. There will be no guarantee that the final depth will be correct if the 3D-Plane has been made for a very different language, but with some luck, the depth will be better than the default value of 0. Maybe I'll implement that when I'll have some time...

pharaoh
16th October 2015, 18:09
OK, that means that I have to find a way to force x264 to use a specific SAR...



So I tried a few things and concluded the following:

1) "--sar 2:1" works the same as "--video-filter resize:1920,2160,2:1 ..."

2) Resizing, though not necessary, also does not consume any time.
- Resize 1920x2160 lanzcos: 10.39 fps
- Resize 1920x2160 fastbilinear: 10.39 fps
- No resize (sar 2:1 only): 10.39 fps
- Resize 1904x2144 lanzcos: 10.73 fps
- Resize 1920x1080 lanzcos: 15:59 fps

3) Confirmed my Samsung TV (JU series) doesn't auto switch to 3D for the 1920x2160 sar 2:1 file, although it plays fine by manually switching to T&B mode.
- FULL Mode, 1920x2160 sar 2:1: NO auto-3D
- HALF mode, 1920x1080: Yes auto-3D
- FULL Mode, resize 1920x1080 sar 1:1: YES auto-3D

I don't think there is anything we can do about the auto-3D.

r0lZ
16th October 2015, 18:18
I see. Thanks again.
I have already added the --sar argument to the x264 (and x265) commands. I will release a new version soon...

pharaoh
19th October 2015, 14:07
Ok next question -

\\myNAS\ripFolder is a network share.

If I specify the output path as \\myNAS\ripFolder\BD2MK and it click "Do-it", I get and error "specified path is invalid" (although the destination folder \\myNAS\ripFolder\BD2MK\myTitle\MPLSxx gets created).

But if I map a drive letter (X:) to \\MyNAS\ripFolder and specify the output folder as X:\BD2MK, it works fine.

?

r0lZ
19th October 2015, 14:37
That error message is not issued directly by BD3D2MK3D. It's probably a third party exe that causes the problem.

Where and when do you see the error message? Do you know what exe is the culprit? Perhaps if I know what exe refuses the path I will be able to do something (although I don't think so).

Anyway, I recommend to encode locally. MkvMerge in particular is very slow when it muxes a file on a network share, and I suppose that everything will be much slower. But if you really want to do it, you can map the network drive, as you have discovered yourself.

BTW, if you want to just move the final file to your NAS, you can also edit __POSTPROCESS_3D.cmd to add a DOS command that will move the final MKV to your preferred location. Or, if you prefer, you can also edit the __MUX_3D_OPTIONS.txt and add the destination path in the --output argument.
If you do it, note that all backslash characters must be doubled, or replaced with normal slash, like this:
--output
\\\\myNAS\\DestinationFolder\\file.mkv
or:
--output
//myNAS/DestinationFolder/file.mkv
(I have never tried the second method, but it should work.)

thahandy
20th October 2015, 02:50
That error message is not issued directly by BD3D2MK3D. It's probably a third party exe that causes the problem.

Where and when do you see the error message? Do you know what exe is the culprit? Perhaps if I know what exe refuses the path I will be able to do something (although I don't think so).

(u can create a share and use locally)
I just tested it and getting a error "specified path is invalid"

with the message:

Het opgegeven pad is ongeldig. (specified path is invalid)
Het opgegeven pad is ongeldig. (specified path is invalid)
while executing
"exec -- cmd /c dir [string map {/ \\} $src]"
(procedure "GetFreeDiscSpace" line 8)
invoked from within
"GetFreeDiscSpace"
(procedure "GenerateAvs" line 721)
invoked from within
"GenerateAvs"
invoked from within
".nbf5.gf.gen invoke "
invoked from within
".nbf5.gf.gen instate {pressed !disabled} { .nbf5.gf.gen state !pressed; .nbf5.gf.gen invoke } "
(command bound to event)

something with "GetFreeDiscSpace" went wrong @ //host/share i guess and after that u can't "do it" again, its grayed out with the "specified path is invalid" message on the left bottom.

Anyway, I recommend to encode locally. MkvMerge in particular is very slow when it muxes a file on a network share, and I suppose that everything will be much slower. But if you really want to do it, you can map the network drive, as you have discovered yourself.
[...]

If its slow it a hardware issue. Network speed should be the limit

r0lZ
20th October 2015, 10:08
I see. Damn! Again a bug in GetFreeDiscSpace. Luckily, it should be easy to fix. I'll fix it today and I will probably release the new version soon after. Thanks for the report.

I agree that the speed of the network is the limit, but I have noticed strange things. For example, when MkvMerge has finished muxing the elementary streams, it has to modify the MKV header to write specific values not known when the job has started. That operation is very short when the target file is on a local disc, but takes much time on a network share. I don't know why, but it's a fact. It's why when I have to remux a file on my NAS (for example because there is an audio/video sync problem), I prefer to copy the file on a local HDD, edit it locally, and copy it back to the NAS. In my experience, it's much more rapid. Anyway, you are free to store the BD3D2MK3D project files on a network share if you wish. The next version should be able to handle it correctly.

r0lZ
20th October 2015, 11:26
I have bad news. Unfortunately, due to limitations in the Windows command prompt (CMD), it is not possible to use a network share as the BD3D2MK3D project directory, unless you map a drive letter to the folder. It's because everything in BD3D2MK3D assumes that the project files are in the "current directory" when __ENCODE_3D.cmd is launched. And, if __ENCODE_3D.cmd is somewhere on a network share, when you launch it (by double clicking it), the current directory is "C:\Windows" instead of the directory containing the CMD file.

It is even not possible to launch manually the command prompt and CD to the project directory manually. CMD issues an error message and the current directory doesn't change, as you can see:

C:\Windows\System32>cd \\192.168.0.2\LaCie
'\\192.168.0.2\LaCie'
CMD does not support UNC paths as current directories.

Therefore, you MUST assign a drive letter to the network share to launch __ENCODE_3D.cmd (or any other CMD from the project directory), or it will fail immediately because it doesn't find the project files.

However, I have fixed the bug causing the crash when the project is created, and I did a quick test (without subtitle streams). It is now possible to generate the project without problem on a network share (without the drive letter). But you will need to assign a drive letter anyway to encode and mux it. I can't change everything just to be able to use a network share for the project directory, especially because IMO it's not a good idea, and because the solution of the drive letter exists.

I will add a warning if the user tries to use a network share to explain that he will have to map a drive letter to encode the movie. I need also to verify if it is possible to convert the subtitles to 3D correctly on a network share. So, please be patient. The new version will not be available immediately...


[EDIT] Just finished a short test. I have generated a project on my Lacie. It's a short film with some subtitles. The generation of the project took 32 minutes. Out of curiosity, I have generated exactly the same project on my slowest local HDD, and it took less than 7 minutes. About 4.5 times faster! Of course, you may have a faster network than mine, but obviously, a network drive will never be as fast as a local HDD. I have not tried to encode the project yet, but that will certainly also be slower.

I have also encountered another problem with the subtitles, and I have to fix it too. I will therefore have to do another test before releasing the new version, and that tests are damn slow! ;-)

thahandy
20th October 2015, 18:06
I have bad news. Unfortunately, due to limitations in the Windows command prompt (CMD), it is not possible to use a network share as the BD3D2MK3D project directory, unless you map a drive letter to the folder. It's because everything in BD3D2MK3D assumes that the project files are in the "current directory" when __ENCODE_3D.cmd is launched. And, if __ENCODE_3D.cmd is somewhere on a network share, when you launch it (by double clicking it), the current directory is "C:\Windows" instead of the directory containing the CMD file.
[...]

U can't CMD/CD on a direct network share but u can point to a network share (like you pointed out already), but this require you to run from BD3D2MK3D or a temp / project folder, which is the other way you work ;)

[EDIT] Just finished a short test. I have generated a project on my Lacie. It's a short film with some subtitles. The generation of the project took 32 minutes. Out of curiosity, I have generated exactly the same project on my slowest local HDD, and it took less than 7 minutes. About 4.5 times faster! Of course, you may have a faster network than mine, but obviously, a network drive will never be as fast as a local HDD.

Assuming you have 40GB to demux, it's about 75MB/s for the HDD and 20MB/s over network.
Most likely your NAS is the bottleneck. Nice for small things not for bulk storage. A NAS with writing speed of +100MB/s cost a lot tbh :rolleyes:.

Tsmuxer to //host/share (hitachi 1TB) 11m02s ~60MB/S (~550Mb/s)
Tsmuxer to HDD1 (WD raptor 300) 10m24s ~ 63MB/s
Tsmuxer to SSD (samsung 840 EVO) 10m07s ~ 66MB/S

I have not tried to encode the project yet, but that will certainly also be slower.
[..]

As fast it can encode but I doubt its passing the 5MB/s

r0lZ
20th October 2015, 18:40
I have intentionally avoided the path in the CMD and MUX_OPTIONS files generated by BD3D2MK3D, because I know that paths are a source of problems when they contain accented or special characters (due to the absurd handling of the character encodings by M$, especially for everything related to the command prompt). Therefore, I prefer to CD to the directory containing the project files, as I can use the file names without the paths. That makes also the files easier to read and modify manually. And I really don't want to change that now.
The bug report should be sent to M$, not yo me! ;-)

I have finished all tests and as far as I know, creating the project files on a network share works now flawlessly. But you will still have to map the network drive letter to encode it.

I will release the new version (my) tomorrow...


For the speed comparison, I notice that some tools are much slower when they work on distant files, regardless of the speed of the network. Not sure why, but for example, when tsMuxeR has finished demuxing the streams, the progress bar stays blocked on 100% during a long moment, apparently without reason. I suppose it's because all files must be flushed and closed, and it's long. Also, the tool that extracts the 3D-Plannes from the MVC stream is terribly slow. Of course, if you have a very fast NAS, you can minimize that problems. It's up to you, but I persist to think that encoding locally is better.

r0lZ
21st October 2015, 11:35
Here is the update. It should fix all issues and implement some suggestions that have been discussed here.


v0.75 (October 21, 2015)
- The x264 or x265 output is now saved in the file ENCODE_3D.log (or ENCODE_2D.log).
- Convert Subtitles to 3D: New option to search in other 3D-Planes when a subtitle has no defined depth in the specified 3D-Plane.
- Fix: The SAR (Sample Aspect Ratio) was not correct in the h264/h265 file when encoding in Full-SBS or Full-T&B.
- Fix: In some circumstances, the test for sufficient disc space was not made before beginning the demux operation.
- Fix: Chapter File Converter: Bug when retrieving the chapter names from another subtitle file.
- Fix: Crash when encoding with x265.
- Fix: Crash when generating the project files on a network share.
- Added a warning when trying to generate a project on a network share (without a mapped drive letter).
- Minor cosmetic changes.
- Updated MkvMerge and MkvPropEdit to the latest version (v8.5.0)
- Updated x264 to the latest build (v0.148.2638)


As usual, you can download it here: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)

pharaoh
21st October 2015, 16:04
r0lZ, thanks. I'll try v0.75 soon.

Just to finish the discussion about doing all this over the network - I don't normally stare at my screen while these operations are happening, so speed is not my primary concern. But I try to minimize electric consumption of all my toys, mostly because I'm a dweeb and I like to optimize everything. I have an i5 desktop that used to be my server and encoding machine. That things burns 70 watts at idle and 140 when encoding. Always on and with a typical amount of monthly encoding, that amounts to about $18 (singapore dollars) in electricity, monthly. It's also big and a bit noisy. So a while back I bought a i3 intel NUC and parked the desktop out of site (still turn it on to backup the NAS and do experimental stuff). The NUC encodes about half as fast but consumes only 6 watts at idle and 18 watts when encoding. That saves me about $16 per month. The ROI on the NUC is about 3 years, but in addition, it's dead quiet, all but invisible and just plain cool. So anyway, that's the main workhorse now. Problem it only has a 120GB SSD. So I rip all my disk images to the NAS (8T, 14 watts, 40MB/sec write, 60MB/sec read). When I endode 2D, I store and post-process on the SSD. But these BD3D2MK3D projects are too big. Creating a typical project from and to the NAS takes 15 minutes or so. Encoding from and to the NAS has no bearing on encoding speed. Muxing from and to the NAS does take quite a bit longer that locally, but it's still just a few minutes. So I'm a happy camper and mapping a drive letter is vanishingly small inconvenience.

r0lZ
21st October 2015, 16:42
You have good reasons, indeed. BTW, congrats for your wish to minimize electric consumption. My next PC will certainly be as economical as possible, but currently I still have an old Q8200, a small SSD and a lot of USB hard discs. (Most hard discs are disconnected when I don't need them.) And I have always a HDD around with at least 100GB free, so encoding locally is not a problem for me.

Let me know if the fix works as expected. I have only made 2 quick tests, and apparently everything is OK, but who knows?!

sfatula
26th October 2015, 22:05
I am trying to process a BluRay I own, backed up via MakeMKV to file structure, as input to this program. I select no subtitles, I enter a output directory of D:\Temp (an external drive hooked to the machine), which has 2TB of disc space free and has my entire library on it that I play via Kodi. Doing HSBS. I click do it, and, I get an error dialog box:

Error: can't read "discspace1": no such variable.

What is likely the issue?

r0lZ
27th October 2015, 09:45
OK, I see. It's a problem due to a discrepancy in the file structure created by MakeMKV. It doesn't create the SSIF files, and BD3D2MK3D need then to compute the required disc space. I have located the problem and fixed it. I will release a new version soon...

In the meantime, I don't know if MakeMKV can create an ISO, of if you can "burn" the file structure to an ISO with another program, but normally the SSIF files should be created during the creation of the 3D ISO. You should therefore be able to mount the ISO and process it without problem with BD3D2MK3D.

r0lZ
27th October 2015, 13:15
OK, problem fixed.

This version has also a new batch mode to encode several projects in a row. You still have to generate the projects one at a time, but when they are created on disc, you can use File -> Batch Encode to modify automatically the __POSTPROCESS_3D.cmd files (or _POSTPROCESS_2D.cmd files if you select 2D encodings) of the selected projects so that the next encoding will start automatically.
Note that you can define a batch list when the first project is already encoding. The second project will start automatically when the first project is finished.

Note that due to the bug reported by sfatula, I wanted to release this version as rapidly as possible. Therefore I haven't had much time to check the Batch Encode function (and the fix). Please let me know if you find some problems. Also, when I'll have some free time, I will perhaps rewrite the Batch Encode from scratch to present a real GUI with a window containing all projects. But that's for later, if the new function is really useful. So, if you want so, let me know that you like the Batch Encode! ;-)


v0.76 (October 27, 2015)
- Added File -> Batch Encode (to chain several _ENCODE_*D.cmd files together and encode them all in a row)
- Fix: Error when processing a BD3D file structure created by MakeMKV on hard disc.

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

sfatula
27th October 2015, 19:36
So, MakeMKV can make an MKV, or, it can make a backup. A backup makes a file structure, "just like" the original BluRay, except, unprotected. The ssif files are basically empty as they are not actually needed by most players. I am wanting to use this program so I can keep my BluRays in their case, and, move my 3d collection to disk. So, I can't use your program against the original BluRay since it fails, I presume due to protection. But I want to be able to use it with the backup. I have downloaded your enhanced version. It is currently running the conversion. We'll see if that's the only issue, or, if it's even possible to use MakeMkv for this purpose along with this program.