View Full Version : BD3D2MK3D v1.17: Convert 3D BDs or MKV to 3D SBS, T&B or Frame-sequential MKV
thahandy
16th August 2015, 07:29
Sorry to poke you again :rolleyes:
I get a subtitle error when converting with BDSup2Sub.
On the other hand, it's working fine when I select bdsup2sub++ at Settings.
(these X/Y position errors are a real issue with bdsup2sub++ ?
*** Converting "00800.track_4608.Eng.sup" to 3D VobSub. Please wait!
*** Converting subtitle file "00800.track_4608.Eng.sup" to 3D SBS using 3D-plane "3D-Plane-00.3dp" and additional depth 0...
Subtitle language: eng (English)
*** Converting subtitle "00800.track_4608.Eng.sup" to "temp_2D.xml"...
> "C:\\ProgramData\\Oracle\\Java\\javapath\\java.exe" -Xmx256m -jar "T:\\TOOLS\\BD3D2MK3D\\toolset\\BDSup2Sub.jar" "00800.track_4608.Eng.sup" -o "00800.track_4608.Eng.3D_2D/temp_2D.xml" --palette-mode keep --minimum-time 1 --language en --convert-fps 24p,24p
Loading d:\test2\00800\00800.track_4608.Eng.sup
#> 4 (00:00:24.449)
WARNING: Multiple PDS/ODS definitions: result may be erratic
#> 7 (00:00:29.371)
WARNING: Multiple PDS/ODS definitions: result may be erratic
[....]
#> 782 (01:12:07.790)
WARNING: Multiple PDS/ODS definitions: result may be erratic
#> 784 (01:12:13.296)
WARNING: Multiple PDS/ODS definitions: result may be erratic
Detected 0 forced captions.
There were 73 warnings
Writing d:\test2\00800\00800.track_4608.Eng.3D_2D\temp_2D.xml
WARNING: Problems during RLE decoding of picture OBJ at offset 0x001e2544
Writing d:\test2\00800\00800.track_4608.Eng.3D_2D\temp_2D.xml
There was 1 warning
Conversion finished.
*** Found 816 captions, including 0 forced captions.
*** Adding 3D depth info from "3D-Plane-00.3dp" to "temp_2D.xml"...
Source 3D-plane: 3D-Plane-00.3dp
Min depth: 2
Max depth: 64
Average depth: 13.41
Number of warnings for undefined frame's depth: 1
Number of subtitles processed: 816
Number of forced subs: 0
Frame rate of the stream: 24.0
Frame rate used to convert the drop frames timecodes to frame numbers: 24.0
*** Converting "temp_2D.xml" to 3D...
Error verifying input PNG "temp_2D_0147.png": Image is monochrome. Histogram: 0,0: (0,0,0,0) #00000000 graya(0,0)
The output stereoscopic PNG image may have been created, but it is not included in the XML file.
Input file: temp_2D.xml
Stereoscopy mode: Side by Side (left view first)
Additional depth: 0
Resize filter: Mitchell
Number of subtitles processed: 816
Conversion of 2D XML/PNG files to 3D using ImageMagick took 103 seconds (00:01:43)
*** 1 ERRORS converting 816 subtitles to 3D!
* Can't convert "00800.track_4608.Eng.sup" to 3D VobSub!
-------------------------------------------------------------------------------
*** Converting "00800.track_4608.Eng.sup" to 2D VobSub. Please wait!
No captions found in "00800.track_4608.Eng.sup" or conversion error. Stream skipped.
-------------------------------------------------------------------------------
Subtitle 147 and 148 are duplicates with bdsup2sub++ (also showing on the raw m2ts file)
Subtitle 147 is blank with BDSup2Sub.jar
http://tempsend.com/3CBEBC55CB
Also is there a way to change some minor settings w/out demuxing everything again?
I'm using v0.70
tebasuna51
16th August 2015, 10:16
@thahandy
I delete your attached image because was empty.
Seems a BDSup2Sub.jar problem, the log at that subtitle is:
#> 147 (00:09:37.919)
WARNING: Palette animation: result may be erratic
#> 148 (00:09:40.296)
Using SubtitleEdit:
147
00:09:37,919 --> 00:09:38,420
No!
148
00:09:38,587 --> 00:09:39,087
No!
149
00:09:40,297 --> 00:09:42,299
I said, no!
Seems BDSup2Sub.jar don't read 147 and skip the 148 duplicated (see time)
r0lZ
16th August 2015, 10:38
I have recently added the check for monochrome (black) subtitles. You can turn it off in the Settings menu if you wish, but at your own risk. Anyway, it seems that that malformed subtitles are not frequent, but they exist. There is no perfect way to avoid that problem, except by simply removing the bad subtitle during the conversion to 3D.
However, BD3D2MK3D should not stop completely, as it did in your case. The error concerns only a single subtitle in the whole stream, and therefore a warning should be sufficient. I will fix that bug immediately. Thanks for having reported it.
I do not recommend using the ++ version, as you can see when you select it in the Settings menu. The main bug is that it cannot process full-size PNGs. They are frequent in Asian films, and it is very dangerous to assume that it will work correctly. Anyway, even if it saves two times the same PNG (instead of a monochrome PNG), that doesn't mean that there are no bugs when ++ tries to process that malformed subtitles. In many cases, it saves a bunch of images, all for the same subtitle, and unfortunately BD3D2MK3D doesn't have a way to know what image is should retain. Therefore the final stream can be terribly bad. Usually, the java version gives much better results, although it has also some bugs.
You can modify an existing project without starting over. Most of the files that you can easily edit start with an underscore (plus tags.xml). For example, if you want to add an external subtitle stream (or, in your case, the 3D subtitle stream correctly processed with BDSup2Sub++), you should edit the _MUX_3D_OPTIONS.txt file and add an entry for the new subtitle. If you don't know the syntax, I suggest to create a project with a short clip, rapid to demux and with a subtitle stream. You can then easily copy the stream definition of the first clip. Be sure to change the file name, the language code and the label if necessary.
You can even do that after having encoded the final video stream with _ENCODE.cmd. To mux the MKV without re-encoding the video stream, just launch _MUX_3D.cmd.
[EDIT] tebasuna51 has replied when I was typing this post. Indeed, he is right. The "palette animation" is probably a bug of the java version. Unfortunately, none of the two BDSup2Sub versions are still developed, and we have to live with their bugs.
tebasuna51
16th August 2015, 10:55
The .xml created by BDSup2Sub seems correct because add the time for the duplicated (too short) 147-148
<Event InTC="00:09:37:23" OutTC="00:09:39:02" Forced="False">
<Graphic Width="70" Height="39" X="865" Y="924">00800.track_4608.Eng_exp_0147.png</Graphic>
</Event>
Maybe you can replace your extracted png empty whit this edited one:
r0lZ
16th August 2015, 11:02
I haven't seen the film, but IMO, the ++ version is right. There are probably really two "No!" repeated rapidly, and hence the two subtitles. (IMO, 0.5 second is not too short to read a short word like this.)
For your information, the error message of BDSup2Sub.jar is exactly this:
WARNING: Problems during RLE decoding of picture OBJ at offset 0x001e2544
Since I can intercept that message, I will probably modify the code to call BDSup2Sub++ automatically if that message is displayed by the java version. That should be sufficient to avoid most problems.
[EDIT]
Oh no! The conversion of the original SUP by BDSup2Sub++ is terrible. Full of errors! For many subtitles, it creates several PNG images, some of them purely black. And there are several <Graphic> definitions for the same subtitle. For example, subtitle # 5 produces temp_2D_0005_0.png (with the correct image of the subtitle) and temp_2D_0005_1.png (same dimensions but totally black). But in the XML, the position and size of the first image is wrong: all values are 0. The second image is correctly referenced... but is black. Therefore, when the image is converted to 3D, BD3D2MK3D skips the first definition and uses only the second one. And the result is a black frame.
There are other problems too. Subtitle 23, for example, is converted in 3 identical (and correct) PNG images: temp_2D_0023.png, temp_2D_0023_0.png and temp_2D_0023_1.png. (Why 3?) But the definition in the XML is totally wrong. BDSup2Sub (both version) can't display that subtitle because temp_2D_0023_2.png doesn't exist.
<Event InTC="00:01:04:22" OutTC="00:01:06:04" Forced="False">
<Graphic Width="0" Height="0" X="0" Y="0">temp_2D_0023_0.png</Graphic>
<Graphic Width="0" Height="0" X="0" Y="0">temp_2D_0023_1.png</Graphic>
<Graphic Width="392" Height="49" X="843" Y="924">temp_2D_0023_2.png</Graphic>
</Event>
Conclusion: IMO, it is still better to use BDSup2Sub.jar, even if some subtitles disappear. At least, it creates an usable subtltle stream.
Perhaps later I'll try to remove the bad entries created by BDSup2Sub++, and change the image to use the good one, but currently I will simply fix the bug of the error and return only a warning when the java version can't decode a subtitle.
r0lZ
16th August 2015, 12:30
OK, I've found a workaround for the workaround!
When BDSup2Sub.jar is used to convert the subtitles to 3D and it has problems decoding some subtitles, BD3D2MK3D launches BDSup2Sub++ to convert the original SUP file. It's the first workaround.
However, if ++ is used to convert the original SUP directly to XML/PNG, there are many problems (described in my previous post). But it can convert the SUP to another SUP without problem, and it stores the correct bitmaps, positions and sizes in the target SUP. Therefore, when that new SUP is converted to XML/PNG, there are no problems any more, and all subtitles are correct. (However, there is only a single "No!" any more. Not sure why.) It's the second workaround.
So, currently, when the java version is selected, BD3D2MK3D uses it to decode the SUP to XML/PNG. If it detects the RLE decoding error message, it deletes the target XML/PNG directory, and converts the original SUP to a temp SUP with ++, and then the temp SUP to XML/PNG, again with ++. Finally, the conversion to 3D is made with ImageMagick as usual, and then the 3D XML is converted to SUP (or VobSub) with BDSup2Sub (java version). That means that 4 conversions are made with BDSup2Sub instead of 2, but at least the result is more or less correct.
If the ++ version is selected by default, there is another test, that detects if some subtitles have been converted in several PNGs, and when it's the case, the conversion is discarded, and the ++ version is used again to convert to the temp SUP, and the temp SUP to XML/PNG. Again, there are no errors and 4 conversions instead of 2. (That workaround was already present in the current version of BD3D2MK3D, and it's why you have not noticed the problem when converting with ++.)
I think it's the best solution, as everything is correct (except perhaps the missing second "No!"). Anyway I can't do a better job.
Note also that currently, there is no check for these bad subtitles when the original SUP is converted to 2D SUP or VobSub (because they are never converted to XML/PNG and I have no way to analyse the bitmaps).
I would like to know what is the BD that has produced that subtitle errors. Is it a Chinese movie? They have often many problems with the subtitles.
I will release a new version soon, with this fix and the fix for the problem of "not enough free disc space" dialog...
r0lZ
16th August 2015, 13:27
OK, here is the fixed version.
The problem of the disc space dialog is certainly fixed.
The workarounds for BDSup2Sub's RLE decoding errors should work, and it works fine with the subtitle stream posted by thahandy, but it is difficult to be sure that it works in all cases.
Anyway, now, the program should not reject a subtitle stream any more just because one or two subtitles have not been correctly decoded.
v0.71 (August 16, 2015)
- Fix: Error after having displayed the "not enough free disc space" warning at end of project creation.
- Workaround for RLE decoding errors wnen converting subtitle files to XML with BDSup2Sub.jar.
- Small cosmetic changes.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
MaistroX
16th August 2015, 15:19
Hi r0lZ
I get the following on Insergent 3D BD when I push "Do it!"
"invalid character "*"
in expression "round (112*201*535*488 / 1024.0..."
invalid character "*"
in expression "round (112*201*535*488 / 1024.0..."
(parsing expression "round (112*201*535*...")
invoked from within
"expr round ($discspace1 / 1024.0 / 1024.0 / 1024.0 * 100.0) / 100.0"
(procedure "GenerateAvs" line 722)
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)"
Any ide:as ? :)
Regards MaistroX
r0lZ
16th August 2015, 15:41
Damn! Again an invalid character in the string returned by the DOS command DIR.
Can you please open a command prompt, then CD to your HDD containing the project, and type DIR.
Then, copy the output here. I'll try to understand what's wrong.
In the meantime, you can simply open the console (with File -> Show Console), and paste this code in the console:
proc GetFreeDiscSpace {} {return 1000000000000}
Then press Enter. You can now close the console if you wish.
That will disable the check for the available disc space, and you should be able to generate the project without problem. But be sure to verify if you have enough disc space manually!
And don't forget to apply the same trick if you close BD3D2MK3D and re-open it. The change is not permanent.
Airmiles
16th August 2015, 19:07
r0IZ, I use CRF 16 all the time, but with very different results in file size. Avatar ended up with 23,85GB, but Lion King ended up with only 5,14GB. With exactly the same settings. Now I know LK is 1:29h and Avatar is 2:42h, but even if you double the GB of LK, you still don't get to 23 GB, so what am I missing here?
I have 6TB of LaCie storage, so I am more worried about the quality of the LK file, then I am about the space that Avatar takes up, but some more explanation would help my future rip decisions.
Hope you can enlighten me on this.
sneaker_ger
16th August 2015, 19:18
CRF is attempting constant quality, not constant bitrate. It is totally normal for different movies to also end up with different file sizes (even if their durations are identical). Some movies are easier to compress than others.
Airmiles
16th August 2015, 19:24
OK, thanks. So LK with 5 GB should still be equal quality compared to the original as Avatar with 23 GB?
By the way, I did not see where BD3D2MK3D shows the estimated file size before ripping. Did I miss a button? Where does it show this?
MaistroX
16th August 2015, 20:50
Hi!
This is what I get from app consol:
"*** Welcome to BD3D2MK3D v0.71
***************************************
*** Opening BD disc I:\...
*** Filtering 157 MPLS files...
*** 4 3D MPLS files loaded.
*** BD disc I:\ opened successfully. 4 3D playlists loaded.
() 1 % dir
invalid command name "dir"
(BD3D2MK3D v0.70) 2 % DIR
invalid command name "DIR"
*** invalid character "*"
in expression "round (71*222*579*200 / 1024.0..."
(BD3D2MK3D v0.70) 3 % DIR
invalid command name "DIR"
(BD3D2MK3D v0.70) 4 % "
And I tryed to get into I: via windows command promt, but cant, all I get is:
"Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Med ensamrätt.
C:\Users\RWDA2011>cd..
C:\Users>cd..
C:\>cd I:
I:\
C:\>cd I:
I:\
C:\>cd I:\
C:\>"
please help! ;)
P.S With BD3D2MK3D v0.66 demux without error msg. works 100%!
P.S.S but with use of "proc GetFreeDiscSpace {} {return 1000000000000}" command in v.070, NO subtitles were added thou I checked them in BD3D2MK3D! :/
"*** Welcome to BD3D2MK3D v0.71
***************************************
*** Opening BD disc I:\...
*** Filtering 157 MPLS files...
*** 4 3D MPLS files loaded.
*** BD disc I:\ opened successfully. 4 3D playlists loaded.
() 1 % dir
invalid command name "dir"
(BD3D2MK3D v0.70) 2 % DIR
invalid command name "DIR"
*** invalid character "*"
in expression "round (71*222*579*200 / 1024.0..."
(BD3D2MK3D v0.70) 3 % DIR
invalid command name "DIR"
(BD3D2MK3D v0.70) 4 % proc GetFreeDiscSpace {} {return 1000000000000}
*** Preview 00010.mpls...
***************************************
*** Opening BD disc I:\...
*** Filtering 157 MPLS files...
*** 4 3D MPLS files loaded.
*** BD disc I:\ opened successfully. 4 3D playlists loaded.
*******************************************************************************
Main job started Sun Aug 16 21:53:06 CEST 2015.
Saving file "00010.demux.meta"...
Saving file "chapters_2D_no_delay.txt"...
Saving file "chapters_2D_no_delay.qpfile"...
Saving file "chapters_3D_delay.txt"...
Saving file "chapters_3D.qpfile"...
-------------------------------------------------------------------------------
*** Demuxing the streams...
Network Optix tsMuxeR. Version 2.6.9. www.networkoptix.com
Decoding H264 stream (track 1): Profile: High@4.1 Resolution: 1920:1080p Frame rate: 23.976
H.264 muxing fps is not set. Get fps from stream. Value: 23.976
Decoding H264 stream (track 2): H.264/MVC Views: 2 Profile: High@4.1 Resolution: 1920:1080p Frame rate: 23.976
MVC muxing fps is not set. Get fps from stream. Value: 23.976
Decoding TRUE-HD stream (track 3): AC3 core+TRUE-HD. Peak bitrate: 7116Kbps (core 640Kbps) Sample Rate: 48KHz Channels: 7.1
Decoding PGS stream (track 4): Resolution: 1920:1080 Frame rate: 23.976
Decoding PGS stream (track 5): Resolution: 1920:1080 Frame rate: 23.976
Decoding PGS stream (track 6): Resolution: 1920:1080 Frame rate: 23.976
TRUE-HD stream (track 3): overlapped frame detected at position 00:51:57,568. Remove frame.
TRUE-HD stream (track 3): overlapped frame detected at position 00:56:48,896. Remove frame.
TRUE-HD stream (track 3): overlapped frame detected at position 01:11:58,336. Remove frame.
Processed 171169 video frames
Processed 171169 video frames
Flushing write buffer
Demux complete.
Demuxing time: 10 min 6 sec
-------------------------------------------------------------------------------
*** Retrieving audio delays from playlist 00010.mpls...
All audio streams have no delay.
-------------------------------------------------------------------------------
*** Extracting 3D-planes from MVC stream...
Extraction of 3D-planes from MVC file with BD3D2MK3D v0.71 (c) r0lZ and MVCPlanes v1.2 (c) 2014 by Nico8583
Input MVC file: "00010.track_4114.mvc"
Output folder: "."
Command: "C:\BD3D2MK3D v0.70\toolset\MVCPlanes.exe" "00010.track_4114.mvc" "."
Searching 3D-Planes ...
Done
Searching and removing empty 3D-Planes...
Plane #00 :
Minimum depth : 0
Maximum depth : 25
Average depth : 6,8
First frame with a defined depth : 989
Last frame with a defined depth : 155028
Number of frames with undefined depth : 17129
Identical planes : None
Plane #01 :
Minimum depth : -3
Maximum depth : 27
Average depth : 6,23
First frame with a defined depth : 989
Last frame with a defined depth : 155103
Number of frames with undefined depth : 17054
Identical planes : None
Plane #02 :
Minimum depth : -2
Maximum depth : 26
Average depth : 6,47
First frame with a defined depth : 986
Last frame with a defined depth : 155019
Number of frames with undefined depth : 17636
Identical planes : None
Empty 3D-Plane #03 removed
Empty 3D-Plane #04 removed
Empty 3D-Plane #05 removed
Empty 3D-Plane #06 removed
Empty 3D-Plane #07 removed
Empty 3D-Plane #08 removed
Empty 3D-Plane #09 removed
Empty 3D-Plane #10 removed
Empty 3D-Plane #11 removed
Empty 3D-Plane #12 removed
Empty 3D-Plane #13 removed
Empty 3D-Plane #14 removed
Empty 3D-Plane #15 removed
Empty 3D-Plane #16 removed
Empty 3D-Plane #17 removed
Empty 3D-Plane #18 removed
Empty 3D-Plane #19 removed
Empty 3D-Plane #20 removed
Empty 3D-Plane #21 removed
Empty 3D-Plane #22 removed
Empty 3D-Plane #23 removed
Empty 3D-Plane #24 removed
Empty 3D-Plane #25 removed
Empty 3D-Plane #26 removed
Empty 3D-Plane #27 removed
Empty 3D-Plane #28 removed
Empty 3D-Plane #29 removed
Empty 3D-Plane #30 removed
Empty 3D-Plane #31 removed
Number of 3D-Planes in MVC stream : 32
Number of 3D-Planes written : 3
Number of frames : 171169
Framerate : 23.976
Extraction took 128 seconds (00:02:08)
Extracted 3 3D-planes with 171169 frames @ 23.976 fps.
-------------------------------------------------------------------------------
*** Converting "00010.track_4608.Eng.sup" to 3D VobSub. Please wait!
*** Converting subtitle file "00010.track_4608.Eng.sup" to 3D SBS using 3D-plane "3D-Plane-00.3dp" and additional depth 4...
Subtitle language: eng (English)
*** Converting subtitle "00010.track_4608.Eng.sup" to "temp_2D.xml"...
> "C:\\ProgramData\\Oracle\\Java\\javapath\\java.exe" -Xmx256m -jar "C:\\BD3D2MK3D v0.70\\toolset\\BDSup2Sub.jar" "00010.track_4608.Eng.sup" -o "00010.track_4608.Eng.3D_2D/temp_2D.xml" --palette-mode keep --minimum-time 1 --language en --convert-fps 24p,24p --move-out-ratio 2.39 --move-y-offset 4
* BDSup2Sub "temp_2D.xml": ERROR: Unrecognized option: --move-out-ratio
ERROR: Unrecognized option: --move-out-ratio
child process exited abnormally
*** BDSup2Sub close error: child process exited abnormally
child process exited abnormally. No captions in subtitle stream?
*** Found 0 captions, including 0 forced captions.
ERROR: Can't convert "00010.track_4608.Eng.sup" to XML/PNG format!
Deleting temp directory "00010.track_4608.Eng.3D_2D".
* Can't convert "00010.track_4608.Eng.sup" to 3D VobSub!
-------------------------------------------------------------------------------
*** Converting "00010.track_4608.Eng.sup" to 2D VobSub. Please wait!
No captions found in "00010.track_4608.Eng.sup" or conversion error. Stream skipped.
-------------------------------------------------------------------------------
* Conversion of the forced captions of stream "00010.track_4608.Eng.sup" skipped,
because there are no forced subtitles in stream.
File "00010.track_4608.Eng_forced.2D.idx" not generated.
-------------------------------------------------------------------------------
*** Converting "00010.track_4609.Eng.sup" to 3D VobSub. Please wait!
*** Converting subtitle file "00010.track_4609.Eng.sup" to 3D SBS using 3D-plane "3D-Plane-01.3dp" and additional depth 4...
Subtitle language: eng (English)
*** Converting subtitle "00010.track_4609.Eng.sup" to "temp_2D.xml"...
> "C:\\ProgramData\\Oracle\\Java\\javapath\\java.exe" -Xmx256m -jar "C:\\BD3D2MK3D v0.70\\toolset\\BDSup2Sub.jar" "00010.track_4609.Eng.sup" -o "00010.track_4609.Eng.3D_2D/temp_2D.xml" --palette-mode keep --minimum-time 1 --language en --convert-fps 24p,24p --move-out-ratio 2.39 --move-y-offset 4
* BDSup2Sub "temp_2D.xml": ERROR: Unrecognized option: --move-out-ratio
ERROR: Unrecognized option: --move-out-ratio
child process exited abnormally
*** BDSup2Sub close error: child process exited abnormally
child process exited abnormally. No captions in subtitle stream?
*** Found 0 captions, including 0 forced captions.
ERROR: Can't convert "00010.track_4609.Eng.sup" to XML/PNG format!
Deleting temp directory "00010.track_4609.Eng.3D_2D".
* Can't convert "00010.track_4609.Eng.sup" to 3D VobSub!
-------------------------------------------------------------------------------
*** Converting "00010.track_4609.Eng.sup" to 2D VobSub. Please wait!
No captions found in "00010.track_4609.Eng.sup" or conversion error. Stream skipped.
-------------------------------------------------------------------------------
* Conversion of the forced captions of stream "00010.track_4609.Eng.sup" skipped,
because there are no forced subtitles in stream.
File "00010.track_4609.Eng_forced.2D.idx" not generated.
-------------------------------------------------------------------------------
*** Converting "00010.track_4610.Spa.sup" to 3D VobSub. Please wait!
*** Converting subtitle file "00010.track_4610.Spa.sup" to 3D SBS using 3D-plane "3D-Plane-02.3dp" and additional depth 4...
Subtitle language: spa (Spanish)
*** Converting subtitle "00010.track_4610.Spa.sup" to "temp_2D.xml"...
> "C:\\ProgramData\\Oracle\\Java\\javapath\\java.exe" -Xmx256m -jar "C:\\BD3D2MK3D v0.70\\toolset\\BDSup2Sub.jar" "00010.track_4610.Spa.sup" -o "00010.track_4610.Spa.3D_2D/temp_2D.xml" --palette-mode keep --minimum-time 1 --language es --convert-fps 24p,24p --move-out-ratio 2.39 --move-y-offset 4
* BDSup2Sub "temp_2D.xml": ERROR: Unrecognized option: --move-out-ratio
ERROR: Unrecognized option: --move-out-ratio
child process exited abnormally
*** BDSup2Sub close error: child process exited abnormally
child process exited abnormally. No captions in subtitle stream?
*** Found 0 captions, including 0 forced captions.
ERROR: Can't convert "00010.track_4610.Spa.sup" to XML/PNG format!
Deleting temp directory "00010.track_4610.Spa.3D_2D".
* Can't convert "00010.track_4610.Spa.sup" to 3D VobSub!
-------------------------------------------------------------------------------
*** Converting "00010.track_4610.Spa.sup" to 2D VobSub. Please wait!
No captions found in "00010.track_4610.Spa.sup" or conversion error. Stream skipped.
-------------------------------------------------------------------------------
* Conversion of the forced captions of stream "00010.track_4610.Spa.sup" skipped,
because there are no forced subtitles in stream.
File "00010.track_4610.Spa_forced.2D.idx" not generated.
-------------------------------------------------------------------------------
*** Generating the avisynth script...
*** Saving "_ENCODE_3D_MOVIE.avs"...
Saving file "_ENCODE_3D_MOVIE.avs"...
*** Generating the batch files...
*** Saving "_ENCODE.cmd"
x264 command:
"C:\BD3D2MK3D v0.70\toolset\avs2yuv.exe" ^
"_ENCODE_3D_MOVIE.avs" -frames 171169 -o - ^
| "C:\BD3D2MK3D v0.70\toolset\x264_x64.exe" ^
--bitrate 10000 --pass 1 --stats "00010.stats" ^
--preset slower --level 4.1 --vbv-bufsize 78125 --vbv-maxrate 62500 ^
--keyint 96 ^
--frame-packing 3 --qpfile chapters_3D.qpfile --frames 171169 --fps 24000/1001 ^
--output "00010.264" --demuxer y4m --stdin y4m -
"C:\BD3D2MK3D v0.70\toolset\avs2yuv.exe" ^
"_ENCODE_3D_MOVIE.avs" -frames 171169 -o - ^
| "C:\BD3D2MK3D v0.70\toolset\x264_x64.exe" ^
--bitrate 10000 --pass 2 --stats "00010.stats" ^
--preset slower --level 4.1 --vbv-bufsize 78125 --vbv-maxrate 62500 ^
--keyint 96 ^
--frame-packing 3 --qpfile chapters_3D.qpfile --frames 171169 --fps 24000/1001 ^
--output "00010.264" --demuxer y4m --stdin y4m -
*** Saving "tags.xml"
> x264_x64.exe --version
x264 0.148.2579 73ae2d1
(libswscale 3.1.101)
(libavformat 56.40.101)
(ffmpegsource 2.17.4.0)
built by Komisar on Jul 31 2015, gcc: 4.8.4 (multilib.generic.Komisar)
x264 configuration: --bit-depth=8 --chroma-format=all
libx264 configuration: --bit-depth=8 --chroma-format=all
x264 license: GPL version 2 or later
libswscale/libavformat/ffmpegsource license: GPL version 2 or later
*** Saving "_MUX_3D.cmd"
*** Saving "_MUX_3D_OPTIONS.txt"
*** Adding attachments...
*** Saving "_MUX_2D.cmd" and "_MUX_2D_OPTIONS.txt"
*** Saving "_POSTPROCESS.cmd"
*** Done. Avisynth script and batch files generated.
-------------------------------------------------------------------------------
Job finished Sun Aug 16 22:05:35 CEST 2015
Done with warnings!
* Can't convert "00010.track_4608.Eng.sup" to 3D VobSub!
* No forced captions in "00010.track_4608.Eng_forced.2D.idx". Stream skipped.
* Can't convert "00010.track_4609.Eng.sup" to 3D VobSub!
* No forced captions in "00010.track_4609.Eng_forced.2D.idx". Stream skipped.
* Can't convert "00010.track_4610.Spa.sup" to 3D VobSub!
* No forced captions in "00010.track_4610.Spa_forced.2D.idx". Stream skipped.
Launch "_ENCODE.cmd" to encode the video (and optionally mux to MKV).
*******************************************************************************
(BD3D2MK3D v0.70) 5 %
"
Damn! Again an invalid character in the string returned by the DOS command DIR.
Can you please open a command prompt, then CD to your HDD containing the project, and type DIR.
Then, copy the output here. I'll try to understand what's wrong.
In the meantime, you can simply open the console (with File -> Show Console), and paste this code in the console:
proc GetFreeDiscSpace {} {return 1000000000000}
Then press Enter. You can now close the console if you wish.
That will disable the check for the available disc space, and you should be able to generate the project without problem. But be sure to verify if you have enough disc space manually!
And don't forget to apply the same trick if you close BD3D2MK3D and re-open it. The change is not permanent.
r0lZ
16th August 2015, 22:12
r0IZ, I use CRF 16 all the time, but with very different results in file size. Avatar ended up with 23,85GB, but Lion King ended up with only 5,14GB. With exactly the same settings. Now I know LK is 1:29h and Avatar is 2:42h, but even if you double the GB of LK, you still don't get to 23 GB, so what am I missing here?
I have 6TB of LaCie storage, so I am more worried about the quality of the LK file, then I am about the space that Avatar takes up, but some more explanation would help my future rip decisions.
Hope you can enlighten me on this.
The difference is that Avatar is a live movie, with many details and fast action scenes. Everything in that film is difficult to compress without losing quality.
In the other hand, the Lion King is traditional animation in the "ligne claire" style, with large areas of flat colour. That's extremely easy to compress, with only a small quality loss. That kind of traditional hand drawn animation is the best example of movies easy to encode with a low bitrate. Especially if the image is clean because it has been released digitally or if the movie has been restored and much of the noise (always difficult to encode) has already been filtered.
Between those two extremes, there is CGI animation (like the Pixar films), also easy to encode because the images are clean and without noise, but a little bit more difficult than traditional animation because there are less large flat areas.
In all cases, encoding in CRF mode gives an equivalent quality, but with very different bitrates.
BTW, it's one of the interests to use CRF instead of 2-pass. If you use the same CRF value for different films, you will always obtain a similar quality (dependent also, of course, of the quality of the source). When you encode in 2-pass, you may give a too low bitrate when you encode Avatar, and end up with a badly encoded movie, and you will almost certainly give a too high bitrate to Lion King, and obtain an excellent quality, but an unnecessarily big file. It's why IMO it is totally wrong to think that you must use a certain bitrate to obtain a good quality. The bitrate to use depends of the movie, and the CRF mode is smart enough to evaluate it for you, intelligently.
Again, IMO, 2-pass should be used only when encoding for a target file size, like when you want to put the MKV on a DVD-R.
And trust your eyes. Can you see badly encoded images in The Lion King (when playing back the film at the normal speed)? No? That means that 5 GB is enough for that movie.
(I have already explained recently in this thread why CRF gives very different bitrates like what you have observed, and why encoding in 2-pass is usually not a good idea. I'm too lazy to search the post now, but it was this summer, and you should find it easily if you need more info.)
[EDIT] I have not noticed page 29 of this thread, so I have typed this long reply. sneaker_ger has explained the same thing in one sentence!
By the way, I did not see where BD3D2MK3D shows the estimated file size before ripping. Did I miss a button? Where does it show this?
When you encode in 2-pass or ABR AND with the option to specify the file size instead of the bitrate, BD3D2MK3D computes the bitrate after the demux operation and the audio and subtitle conversions (because it needs the to know the size of the final audio and subtitle files). It shows you the computed bitrate in the last dialog. The content of that dialog is also printed in the console and copied to the BD3D2MK3D.log file. Of course, you can also see the bitrate in the x264 command in _ENCODE.cmd.
When encoding in CBR mode, the bitrate doesn't need to be computed.
r0lZ
16th August 2015, 22:31
C:\>cd I:
I:\
To change the CD, you must use this:
> CD I:\
> I:
The second command sets the current drive to I:
You can also use:
> CD /D I:\
Where the /D options informs the CD command to change also the current drive.
*** Converting subtitle "00010.track_4608.Eng.sup" to "temp_2D.xml"...
> "C:\\ProgramData\\Oracle\\Java\\javapath\\java.exe" -Xmx256m -jar "C:\\BD3D2MK3D v0.70\\toolset\\BDSup2Sub.jar" "00010.track_4608.Eng.sup" -o "00010.track_4608.Eng.3D_2D/temp_2D.xml" --palette-mode keep --minimum-time 1 --language en --convert-fps 24p,24p --move-out-ratio 2.39 --move-y-offset 4
* BDSup2Sub "temp_2D.xml": ERROR: Unrecognized option: --move-out-ratio
ERROR: Unrecognized option: --move-out-ratio
child process exited abnormally
The error is due to your additional option --move-out-ratio, probably specified in the additional BDSup2Sub options field of tab 2. Obviously, that option doesn't work with the java version.
Also, remember that if you move the subtitles, the depths of each individual subtitle will be wrong. I suggest to remove that option as well as --move-y-offset. They are not necessary and they may kill the good 3D subtitles that BD3D2MK3D generates.
mini-moose
17th August 2015, 11:27
Anyone here using Dune player maybe?
I did a 3D movie for a friend but the subs are showing duplicated on left and right (tried both vobsubs and sup). Maybe he is doing something wrong , or Dune is not capable of displaying them properly.
He has Dune HD Media Player TV-303D.
r0lZ
17th August 2015, 12:42
Unfortunately, currently, it is difficult to watch a converted 3D movie with 3D subtitles and the good depth.
Many players are unable to display correctly the 3D subtitles. They consider them as 2D subtitles, and print them on the two views. As a consequence, you see them in double.
Some software players (like PotPlayer) have an option to display the subtitles before or after the rendering in 3D. You should select before for 3D subtitles, and after for 2D subtitles.
Or you can use any player that can stream the image to your TV. The player should be configured in 2D (and therefore display the two images side by side) and the 3D subtitles must be applied normally (in 2D). Then, configure your TV to convert the streamed input in 3D (SBS or T&B). That will work in all cases.
Of course, the best way to be sure that the 3D subtitles are shown correctly with all 3D players and hardware is to hardcode them on the video. That will ensure that they are correctly displayed in 3D, with the good depth. (If you need to display the subtitles anyway, I strongly recommend to use that option. However, it's not the best choice if you have kept the audio track in the original language of the movie and the audio track in your own language. In that case, you have to be able to turn the subtitles on or off, and you can't hardcode them.)
I can't help more. I don't know the Dune player.
mini-moose
17th August 2015, 13:40
Unfortunately, currently, it is difficult to watch a converted 3D movie with 3D subtitles and the good depth.
Thanks a lot for your informative reply (as always!). I will tell him to
try with potplayer.
MaistroX
17th August 2015, 21:54
Hi!
Worked with last command at last:
"Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation. Med ensamrätt.
C:\Users\RWDA2011>cd..
C:\Users>cd..
C:\>cd I:\
C:\>CD I:\
C:\>CD /D I:\
I:\>DIR
Volymen i enhet I har etiketten INSURGENT
Volymens serienummer är EAFE-42F8
Innehåll i katalogen I:\
2015-06-17 02:31 <KAT> BDMV
2015-06-17 02:31 <KAT> ANY!
2015-06-17 02:31 <KAT> CERTIFICATE
2015-06-17 02:31 148 disc.inf
1 fil(er) 1*728 byte
3 katalog(er) 0 byte ledigt
I:\>"
And turning to the non-java based BDSup2Sub worked fine! :)
Regards MaistroX
To change the CD, you must use this:
> CD I:\
> I:
The second command sets the current drive to I:
You can also use:
> CD /D I:\
Where the /D options informs the CD command to change also the current drive.
The error is due to your additional option --move-out-ratio, probably specified in the additional BDSup2Sub options field of tab 2. Obviously, that option doesn't work with the java version.
Also, remember that if you move the subtitles, the depths of each individual subtitle will be wrong. I suggest to remove that option as well as --move-y-offset. They are not necessary and they may kill the good 3D subtitles that BD3D2MK3D generates.
r0lZ
17th August 2015, 23:09
Worked with last command at last:
C:\>cd I:\
C:\>CD I:\
C:\>CD /D I:\
You forgot to type "I:" alone (without CD and the \) to change the current drive. Anyway. CD /D worked, and it's OK.
1 fil(er) 1*728 byte
3 katalog(er) 0 byte ledigt
I see. So, in your language, 1*728 means 1728. Right?
BTW, what language is it? Something from the North of Europe I guess. Right?
Anyway, I need to replace the current procedure that retrieves the available disc space. It fails with many languages. Thanks for the information.
r0lZ
18th August 2015, 10:01
The problem of illegal characters is now hopefully definitively fixed.
I have also fixed a bug happening when converting the DTS, DTS-HD or DTS-HD-MA audio streams introduced recently. The new DcaDec DTS decoder was not used in all cases. Now, unless you explicitly select the LibAV decoder in the Convert Audio tool, it is always used for all DTS variants (except for DTS-Express).
v0.72 (August 18, 2015)
- Fixed again the problem of illegal characters when retrieving the free disc space on foreign systems.
- Convert audio bug fix: The DcaDec DTS decoder was not used for all DTS, DTSMA or DTSHDMA streams.
- Updated MkvMerge and MkvPropEdit to the latest version (v8.3.0)
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
Wolfy59
20th August 2015, 12:22
Just finish to test the 0.72 release. No more problème with the illegal characters for me r0lZ. Thanks
r0lZ
20th August 2015, 12:34
Thanks for the confirmation. I have re-written completely the original function, and now it should work in all cases, regardless of the language of your Windows.
De_Hollander
21st August 2015, 12:12
what is this?
WARNING: Multiple PDS/ODS definitions: result may be erratic
r0lZ
21st August 2015, 13:19
It's a warning from BDSup2Sub (java and ++ versions). I don't know exactly what it means, but it is very frequent, and seems harmless. At least, I have never noticed any problem when it is displayed. So, don't worry. I think that warning can be safely ignored. (BD3D2MK3D prints it in the log because it prints all lines issued by the external programs, but it doesn't handle that warning in any particular way, and doesn't report it in the final dialog.)
De_Hollander
21st August 2015, 14:40
It's a warning from BDSup2Sub (java and ++ versions). I don't know exactly what it means, but it is very frequent, and seems harmless. At least, I have never noticed any problem when it is displayed. So, don't worry. I think that warning can be safely ignored. (BD3D2MK3D prints it in the log because it prints all lines issued by the external programs, but it doesn't handle that warning in any particular way, and doesn't report it in the final dialog.)
Oké thanks:)
De_Hollander
21st August 2015, 20:20
with Avatar 3D
and a lot of these frames
WARNING: missing end time of frame 59 -> fixed
* Warnings: 3 undefined depths in "3D-Plane-02.3dp" for "00000.track_4610.Deu.sup"!
* Warnings: 8 undefined depths in "3D-Plane-03.3dp" for "00000.track_4611.Ita.sup"!
* Warnings: 3 undefined depths in "3D-Plane-05.3dp" for "00000.track_4613.Tur.sup"!
is this a problem?
r0lZ
21st August 2015, 20:40
That warnings are issued by BD3D2MK3D when it converts the subtitles to 3D. Normally, the depth of each individual subtitle is retrieved from the corresponding 3D-plane. The 3D-Planes are made of single values for each frames of the movie. But the 3D-Planes are sometimes not complete. There are frames without depth definitions (or more precisely, with a depth value of -128, meaning "undefined").
A single subtitle is displayed during a certain number of frames. If all depths of that frames are undefined, there is no way to know the depth for that subtitle. Hence the warning. (When that warning is issued, BD3D2MK3D assumes a depth of 0, and places the subtitle "on the surface of the screen".)
If you want to know exactly what subtitles have caused the warnings for a particular stream, open the temp2D.xml file (in the temp directory of that stream) in a text editor and search for the word "warning". You should find them easily. If you know for sure that the depth must be different than 0, you can edit the depth="0" tag manually and regenerate the 3D stream from the 2D XML with the edited depth tags. (Unfortunately, it is usually very difficult to compute from scratch the depth value to use for a particular subtitle, but you can fix the most obvious problems relatively easily.)
Note that if the 3D-Plane has been correctly created and corresponds really to the subtitle stream, the warning can theoretically be ignored. The subtitle will be placed on the surface of the screen, but it should not hurt. It's almost always the case with good commercial 3DBDs, but there are exceptions like some cheap Asian BDs, with 3D subtitles placed at completely wrong depths, or with lot of undefined depths.
Anyway, when the 3D depth values are wrong or undefined in the 3D-plane, the original BD has the same problem when it is played in a BD player. BD3D2MK3D can't invent the missing 3D depth values, or fix the wrong ones automatically.
De_Hollander
21st August 2015, 21:35
That warnings are issued by BD3D2MK3D when it converts the subtitles to 3D. Normally, the depth of each individual subtitle is retrieved from the corresponding 3D-plane. The 3D-Planes are made of single values for each frames of the movie. But the 3D-Planes are sometimes not complete. There are frames without depth definitions (or more precisely, with a depth value of -128, meaning "undefined").
A single subtitle is displayed during a certain number of frames. If all depths of that frames are undefined, there is no way to know the depth for that subtitle. Hence the warning. (When that warning is issued, BD3D2MK3D assumes a depth of 0, and places the subtitle "on the surface of the screen".)
If you want to know exactly what subtitles have caused the warnings for a particular stream, open the temp2D.xml file (in the temp directory of that stream) in a text editor and search for the word "warning". You should find them easily. If you know for sure that the depth must be different than 0, you can edit the depth="0" tag manually and regenerate the 3D stream from the 2D XML with the edited depth tags. (Unfortunately, it is usually very difficult to compute from scratch the depth value to use for a particular subtitle, but you can fix the most obvious problems relatively easily.)
Note that if the 3D-Plane has been correctly created and corresponds really to the subtitle stream, the warning can theoretically be ignored. The subtitle will be placed on the surface of the screen, but it should not hurt. It's almost always the case with good commercial 3DBDs, but there are exceptions like some cheap Asian BDs, with 3D subtitles placed at completely wrong depths, or with lot of undefined depths.
Anyway, when the 3D depth values are wrong or undefined in the 3D-plane, the original BD has the same problem when it is played in a BD player. BD3D2MK3D can't invent the missing 3D depth values, or fix the wrong ones automatically.Oke thanks.
Not all of the sups haves that problem undefined depths in Avatar, only 3 of them.
Dutch, Fra, Eng haves no problem.
Wolfy59
25th August 2015, 17:18
Is it Important to choose a slow or slower preset in crf mode ?
r0lZ
25th August 2015, 17:43
Well, not really. Slow presets encode slower, but with a better compression, or, for the same compression, a better quality. So, if you have enough time and if disc space is important, you may want to use a slow preset. But take in mind that if you select a slow preset (slower than the default "medium"), the encoder will probably use a higher level automatically. If compatibility is important, you may have to select the Force level 4.1 option, and doing so restrict somewhat the power of the slow presets.
IMO, the default value (preset medium) is very well chosen by the x264 team. It is a good balance between speed, compression ration, quality and compatibility. It's only because I prefer smaller files that I encode usually with the preset Slower (and force level 4.1). I have tried to use also the veryslow and placebo presets, but they are really too slow for my PC, and the benefit is not very important. Sometimes, I use also fast presets (even ultrafast) to do quick tests, when disc space doesn't matter.
Note that in CRF or CQ mode, changing the preset affects mainly the file size, while when you encode in ABR or 2-pass, since the bitrate is fixed, it's the quality that is affected.
Wolfy59
25th August 2015, 19:17
Thanks r0lz. To date, i use the slow preset with forced 4.1 level. By reading you, i think i ll keep like this.
thahandy
26th August 2015, 16:10
[...]
I have already used MkvMerge without problem to do just that (with The Hobbit). It works perfectly and it keeps the audio, subtitles and chapters correctly synchronised in the second part. IMO, MkvMerge in "append mode" is the best solution.
Seems I had some "total frames" issue's with the first disk and ending up with one second (24frames) black frames at the end of the video file (after merging the two files, they are in the middle of the movie where they got merged)
After some "time to fps" calculations and some demux tests, it seems the 00800.mpls file was the issue in my case.
I just edited the _ENCODE and the AVS file to changed the correct frames to process and everything went fine :D
tsdemux
d:\TITANIC 3D Disc 1\00800>T:\TOOLS\BD3D2MK3D\toolset\tsMuxeR.exe 00800.demux.meta "d:/TITANIC 3D Disc 1/00800" (demux.meta using 00800.mpls)
Network Optix tsMuxeR. Version 2.6.9. www.networkoptix.com
Decoding H264 stream (track 1): Profile: High@4.1 Resolution: 1920:1080p Frame rate: 23.976
H.264 muxing fps is not set. Get fps from stream. Value: 23.976
Decoding H264 stream (track 2): H.264/MVC Views: 2 Profile: High@4.1 Resolution: 1920:1080p Frame rate: 23.976
MVC muxing fps is not set. Get fps from stream. Value: 23.976
0.0% complete
Decoding DTS-HD stream (track 3): Bitrate: 1536Kbps core + MLP data.Sample Rate: 48KHz Channels: 5.1 (DTS Master Audio 24bit)
99.9% complete
Processed 155361 video frames <- BD3D2MK3D used this number
Processed 155361 video frames <- BD3D2MK3D used this number
100.0% complete
Flushing write buffer
Demux complete.
Demuxing time: 9 min 21 sec
d:\TITANIC 3D Disc 1\00800>T:\TOOLS\BD3D2MK3D\toolset\tsMuxeR.exe 00800.demux.meta "d:/TITANIC 3D Disc 1/00800" (demux.meta using 00001.m2ts)
Network Optix tsMuxeR. Version 2.6.9. www.networkoptix.com
Decoding H264 stream (track 1): Profile: High@4.1 Resolution: 1920:1080p Frame rate: 23.976
H.264 muxing fps is not set. Get fps from stream. Value: 23.976
0.0% complete
Decoding DTS-HD stream (track 2): Bitrate: 1536Kbps core + MLP data.Sample Rate: 48KHz Channels: 5.1 (DTS Master Audio 24bit)
99.8% complete
Processed 155337 video frames <-- correct frames
100.0% complete
Flushing write buffer
Demux complete.
Demuxing time: 2 min 47 sec
eac3to gave the same result (It was not able to extract the video-stream(s) (not supported) but the audio-stream worked fine. to get frame numbers)
eac3to
t:\DEMUX\BD3D2MK3D\toolset>eac3to G:\BDMV\PLAYLIST\00800.mpls 4: dts.dts
M2TS, 2 video tracks, 7 audio tracks, 10 subtitle tracks, 1:48:00, 24p /1.001
1: Chapters, 32 chapters
2: h264/AVC (left eye), 1080p24 /1.001 (16:9)
3: h264/MVC (right eye), 1080p24 /1.001 (16:9)
[...]
a04 A remaining delay of +1ms could not be fixed.
a04 Creating file "dts.dts"...
Video track 2 contains 155361 frames.
Video track 3 contains 155361 frames.
eac3to processing took 8 minutes, 18 seconds.
Done.
t:\TOOLS\BD3D2MK3D\toolset>eac3to g:\BDMV\STREAM\00001.m2ts 2: dts2.dts
M2TS, 1 video track, 7 audio tracks, 10 subtitle tracks, 1:47:59, 24p /1.001
1: h264/AVC, 1080p24 /1.001 (16:9)
[...]
a02 A remaining delay of +1ms could not be fixed.
a02 Creating file "dts2.dts"...
Video track 1 contains 155337 frames.
eac3to processing took 5 minutes, 55 seconds.
Done.
I assume MVC has something todo with it? Other 3D disks seems to be fine.
No need to fix (I doubt you can). Just info for others to read :)
[...]
Anyway, I need to replace the current procedure that retrieves the available disc space. It fails with many languages. Thanks for the information.
seems "wmic logicaldisk where "DeviceID='C:'" get FreeSpace /format:value" works fine to. (info (http://serverfault.com/questions/68300/check-free-disk-space-using-batch-commands)) I don't know if it works under XP to.
But it seems you found already a solution.
thahandy
26th August 2015, 16:11
For those want to encode a 2D version instead just remuxing the demuxed video file, change the following files:
* edit "_MUX_2D_OPTIONS.txt" and add a new line under "--default-track"
--default-track
0:yes
00800.track_4113.264 (<- not the same for every movie)
to
--default-track
0:yes
#00800.track_4113.264 (<- copy this line, you need it later)
00800_2D.264 (<- output video name)
* save and exit _MUX_2D_OPTIONS.txt
* make a copy of "_ENCODE.cmd" (for example _ENCODE_2D.cmd)
* edit _ENCODE_2D.cmd and change the following line:
--output "00800.264" "_ENCODE_3D_MOVIE.avs"
to
--output "00800_2D.264" "00800.track_4113.264" (<- paste the filename you copied in _MUX_2D_OPTIONS.txt)
and
if exist "_MUX_3D.cmd" cmd /c "_MUX_3D.cmd"
to
if exist "_MUX_2D.cmd" cmd /c "_MUX_2D.cmd"
* remove this part: "--frame-packing 3" (or 4)
* save and exit _ENCODE_2D.cmd
Now run _ENCODE_2D.cmd :D
/edit
[...]
Note that you forgot to remove the "--frame-packing 3" (or 4) argument in _ENCODE.cmd. It sets the frame packing so that the TV should automatically recognise the video as 3D SBS (or T&B).
[...]
Added, thanks!
r0lZ
26th August 2015, 17:06
It's strange, that frame number problem. I have never noticed that.
And BTW BD3D2MK3D demuxes the M2TS with tsMuxeR, as you can see in the demux.meta file. However, it needs to demux the M2TS files when the MPLS contains several M2TS (or SSIF) files (used for multi-angle/seamless branching), because tsMuxeR is unable do demux them if you specify the MPLS. Is it the case of your movie?
Thanks for the disc space trick. It works fine indeed. Currently, I've found a solution with the DIR command, but if it fails again, I'll use your trick.
Thanks also for the method to encode the 2D version. Indeed, the MUX_2D files are made to mux easily the 2D version without re-encoding. I use sometimes a similar trick than yours to mux a re-encoded version with the existing MUX_2D files, but I do not edit the _ENCODE.cmd and the avisynth script to encode it. I prefer to launch the untouched MUX_2D files to create the lossless 2D MKV, and then give it to the Simple x264 Launcher to re-encode it. Then I edit the _MUX_2D_OPTIONS.txt file to change the file name of the h264 file.
Note that you forgot to remove the "--frame-packing 3" (or 4) argument in _ENCODE.cmd. It sets the frame packing so that the TV should automatically recognise the video as 3D SBS (or T&B). Many players or TVs ignore that flag, but if you have, like me, a Samsung TV, it will switch to 3D mode automatically. Not really what you want for the 2D version! Especially because there is no way to force it to play the file normally, in 2D!
@everybody:
If you are interested, I can probably easily generate a _ENCODE_2D.cmd and _MUX_2D_REENCODED.txt files, so that you will not have to edit anything to obtain a 2D version. Let me know if you think that will be useful for you...
Airmiles
30th August 2015, 14:23
Don't we already have handbrake for that?
Although you need to use MakeMKV first, so maybe, this would indeed be a good one-stop-shop-solution.
Now I am thinking of it, yeah, just do it :-)
r0lZ
30th August 2015, 15:20
In fact, almost everything is already in the Project directory, as thahandy has discovered. The necessary files are already demuxed, and there is already a file to mux the 2D MKV. The only thing that is missing is the command to re-encode the 2D video, and a modified MUX_OPTIONS file to mux it to MKV.
I think I'll do it later, but currently I haven't much time, because I'm helping slavanap to debug his work. It's something much more important and valuable for us, including (indirectly) for BD3D2MK3D. I'll let you know when that will be ready...
frank
31st August 2015, 03:59
Latest BD3D2MK3D v0.72 from 18.8.2015 shows old v0.71.
r0lZ
31st August 2015, 08:38
Yep, I have noticed that little problem. I forgot to change the version string. But it's v0.72 anyway.
I'll try to release v0.73 soon just to erase that problem, but currently there is not much new things in v0.73 so I prefer to wait a bit more.
SpasV
1st September 2015, 15:24
Thank you very much r0lZ for sharing your work. It is excellent and very usefull.
Would you, please, make it a bit more attractive by adding a subtitles conversion tool from XML/PNG to Scenarist's .ofs file?
Personally, I prefer remuxing and I've lost the original subtitles' depth in the 3D Blu-ray remuxes I've made.
If not, could you give me the .ofs file format so as I could write such a tool?
I would highly appreciate your help.
Respectfully.
r0lZ
1st September 2015, 16:48
Well, I don't know at all the OFS file format, but according to the BDSup2Sub doc, it exports the XML/PNG files in a way compatible with Scenarist:
Supported Formats
Blu-Ray SUP: import (since 1.0) and export (since 1.6)
Sony BDN XML (as used by Sonic Scenarist HDMV): import and export (since 3.3.0)
HD-DVD SUP: import (since 1.9)
VobSub (SUB/IDX): import (since 3.5.0) and export (since 1.0)
DVD-SUP (SUP/IFO): import and export (since 3.9.0)
[...]
Note that BDSup2Sub will only export 8bit palettized PNGs with transparency (via tRNS tag) for maximum compatibility with Sonic Scenarist HDMV.
[...]
18.04.2009 3.2.0 -> 3.3.0
Changed: added support for importing/exporting Sony BDN XML/PNG format (used by Sonic Scenarist).
Images are automatically cropped on import.
So, it seems that the XML/PNG format is directly compatible with Scenarist, and it should be possible to import directly the XML/PNG file in Scenarist. However, the 3D PNGs are saved by ImageMagick and not directly by BDSup2Sub. If the 3D PMGs cannot be imported, you may have to load the XML/PNG or the final BD SUP stream in BDSup2Sub, and export it again to XML/PNG, to force BDSup2Sub to convert the images to 8bit palettized PNGs with transparency, as it seems that only that precise format is recognised by Scenarist.
I will see if it is possible to save the PNGs with ImageMagick directly to the right format, but it's probably not possible. Anyway, converting the streams manually should not be difficult for you.
I've googled for information about the OFS file format, but I can't find useful info. If you really need your subtitles in that format, you should ask more knowledgeable persons in the Subtitle or Scenarist forums.
SpasV
1st September 2015, 18:40
Thank you r0lZ for answering me.
Scenarist accepts Sony BDN XML format, indeed. But, it accepts Z depth as either a constant for all subtitles or determined for each subtitle in .ofs file which obviously is propitiatory format and that's why it cannot be seen in public.
As I said, I keep 3D Blu-ray movies for myself remultiplexed loosing their original subtitles depth. Just put some constant -2 or -3 - no matter what.
Seeing the tool you use to extract the depth from .mvc I thought there was left only a small step towards making a perfect 3D Blu-ray remux - .ofs format.
Maybe its specification costs some money? It couldn't be secret.
r0lZ
1st September 2015, 19:05
Ah, OK, I understand. You need what I call "3D-plane", but in Scenarist format. ("3D-Plane" is the term used by tsMuxeR, and I have adopted it too, but I don't think it is official.)
I know that an official format exists (with an additional header), but I don't know it exactly, and I don't know if it's that format that is used by Scenarist.
Someone has asked the source files of the MVCPlane.exe (written by Nico) to add that header. I have no more news, but I will try to contact him. Perhaps he has already a modified version with the right header, or he will probably be able to give us the OFS file specs. Anyway, if he is right, indeed the job should be easy. The 3D-Plane is already almost what you need, except that it doesn't have the header.
In the meantime, if someone know where I can find the description of the header, please let me know...
thahandy
2nd September 2015, 00:44
This? Z Depth (http://www.sonycreativesoftware.com/zdepth) -> BDN and OFS Technical Documents (http://www.sonycreativesoftware.com/products/pdf/BDN-OFS-Formats.zip)
r0lZ
2nd September 2015, 08:37
Yeah, it's exactly what I need. Thanks!
But I would like to have also a simple example, comprising a 3D BDN stream with its associated OFS file. (The actual depth values in the OFS file do not matter, and can be constant, as long as they are not 0 or "undefined".) Please be sure to give a stream compatible with a BD3D, at 23.976 fps.
With the description and a concrete example, I will almost certainly be able to generate compatible headers to convert the 3DP files to OFS, and to "attach" the OFS to the XML/PNG file, so that it will be imported automatically when the BDN stream is loaded in Scenarist. Then, I will need also some beta testers to test if everything works as expected (because I don't have Scenarist).
bigotti5
2nd September 2015, 21:51
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.
r0lZ
3rd September 2015, 08:59
Yes, thahandy told me exactly that via PM. However, the OFS file will be very handy for peoples who are re-encoding the original BD to BD25, because in that case the depth offsets are lost during the re-encoding operation.
Anyway, I want to change the current format of the 3D-planes used by BD3D2MK3D to OFS, because that will be more universal, and peoples will be able to use the files generated by BD3D2MK3D with Scenarist if they want.
thahandy
4th September 2015, 14:22
Yes, thahandy told me exactly that via PM.
wut? :D I assume U where pointing to SpasV. I'm just your external google guy posting the specs of OFS :p (I was unable to find samples) I have nothing to do with OFS itself. :rolleyes:
r0lZ
4th September 2015, 14:59
wut? :D I assume U where pointing to SpasV.Oh, yes, sorry.
BTW, I have been able to generate a sample myself, but with a buggy version of 3DTitle. Not sure it is correct, but at least I have a basis to work. I think I'll do a simple program to convert the 3DP files to OFS first, and when it will be sufficiently tested, I'll integrate the OFS file format directly in BD3D2MK3D.
r0lZ
5th September 2015, 09:53
Here is the 3D-Plane to OFS converter: 3DPlane2OFS.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/3DPlane2OFS.7z)
It's a very rudimentary program, with a bad GUI, but it should be sufficient to check if the file format of the generated OFS files is correct and compatible with Scenarist (and other BD authoring programs such as Sony Blu-Print).
According to the OFS file format doc and the only example of OFS file I have, it should work fine, but I'm still not sure that everything is correct. In particular, it seems that generating the OFS file is not sufficient to be able to load it in Scenarist. It is apparently also necessary to add a Stereoscopic field in the XML file, to associate the OFS with the XML/PNG stream. 3DPlane2OFS does that too if you select an existing XML file as output, instead of a new OFS file. In that case, the OFS file is created in the same directory and with the same file name than the XML, and the XML is modified automatically.
You can also save the converted 3D-Plane directly to a new OFS, but in that case the XML is not modified, and I don't know if it is possible to associate the OFS with the subtitle stream manually in Scenarist. Please let me know if it's possible.
Note that the OFS data must have a GUID to uniquely identify it. 3DPlane2OFS generates the GUID randomly, but I'm not sure it has the right format. According to the example I have, it must have this form in the XML: {522551CE-0002-8934-AFA9-7E541327A03D}. But in the OFS file itself, it is saved in binary, but with strange inversions of the different parts. Therefore, I would appreciate if someone could check if the GUID is correct and can be used correctly by Scenarist. I have no idea of how it is possible to check that, but for information, here is the extract of the OFS file format doc:
guid: A 16-byte field that may be used to reference this offset metadata sequence in the
context of many graphics streams in one clip sharing the same offset metadata
sequence. This value may also be used to trace this offset metadata sequence in case
subsequent processing (e.g. import into authoring system) copies and divides it into
many parts. This value is generated upon creation of a new offset metadata sequence.
In case you don't have a BDN XML/PNG stream and a 3D-Plane to test the program and you don't want to process a BD with BD3D2MK3D just to obtain a stream and a 3D-Plane, you can download a sample here: 3DPlane2OFS_sample.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/3DPlane2OFS_sample.7z)
Note that the XML has already been processed by 3DPlane2OFS and contains therefore the "Stereoscopic" fields. It is however possible to process it again. The Stereoscopic fields will simply be replaced, and the OFS file overwritten. You can also delete the OFS file and replace the XML with its backup to start over from scratch.
Note also that the Depth values present in the XML have been added automatically by BD3D2MK3D. They are useless for Scenarist, and it should simply ignore them. The Depth values are not present in the backup of the XML.
I have also some doubts about the format of the depth values. Obviously, they are saved in the OFS exactly like in the BD offset sequences and the 3D-Planes extracted by BD3D2MK3D. Each frame has its own offset value. The offset (or Depth or Parallax value) is stored in bits 0-6 of the byte. Bit 7 is the "direction" of the depth. 0 is toward the spectator and 1 is toward the horizon. Therefore, the valid range of the depth values is 0 to 127, where the "sign" bit indicates the direction. 0 (hex 0x00) is therefore the surface of the screen. It doesn't make sense to specify a depth of 0 with the direction toward the background (hex 0x80, or -0) but that value is used in (almost) all 3D-Planes to represent the "undefined depth". Undefined depth values should be present only when no subtitles are displayed, and it's the case in good 3D-planes. The problem for me is that there is no reference to that 0x80 value in the OFS doc, and I don't know how it is interpreted by the authoring program. It should NEVER convert it to 0, and I would like to be sure that it doesn't do that.
Also, currently, the 3D-Planes saved by BD3D2MK3D begins always at the very first frame of the movie, and therefore I have assumed that the start timecode to store in the OFS is 0:00:00.0, but I don't know if I have to take into account the time code of the video stream, with the preroll. (I don't think so, but who know?)
Please test the OFS and XML files produced by 3DPlane2OFS as far as possible, with Scenarist or any other BD authoring app that supports the OFS files. When I will be sure that it is bug free, I will integrate the conversion to OFS format directly in BD3D2MK3D.
Please check in particular the following points:
- Is it possible to load the modified XML with its attached OFS at the same time?
- If not, is it possible to attach the OFS file to a BDN stream without 3D offset sequence from within the program?
- Can you try to modify slightly the GUID in the XML file, and load it again. Is it still possible to load the OFS at the same time, or does the authoring program trigger an error?
- Are you sure that the right depth values are multiplexed with the MVC stream when the BD is authored? (It should be possible to compare them with the original 3D-Plane if you process the BD with BD3D2MK3D.)
- Can you verify that the "undefined depth values" (0x80) are preserved by the authoring program?
- Can you verify if the time code is correct, or if the offset values have been shifted?
Anyway, thanks for any test you can do.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.