View Full Version : BD3D2MK3D v1.17: Convert 3D BDs or MKV to 3D SBS, T&B or Frame-sequential MKV
BD3D2MK3D is a GUI to convert movies from 3D BDs to 3D MKV video files in Full or Half Side by Side, Top & Bottom or Frame sequential format, encoded in h264 with x264, or in h265 with x265, or with any command-line encoder. Since v0.87, BD3D2MK3D can also accept lossless 3D AVC+MVC files created with MakeMKV as input.
I have written it mainly because it was difficult to do all operations necessary to do the conversion manually, and because the documentation about the method to use was poor and spread over a lot of posts in this long and technical thread: Guide to convert BD 3D to 3D Left+Right Stereoscopic and Anaglyph (http://forum.doom9.org/showthread.php?p=1663794).
My first attempt resulted in BD3D2AVS (http://forum.doom9.org/showthread.php?p=1575870#post1575870), and was based on eac3to (http://forum.doom9.org/showthread.php?t=125966), ldecod and ssifsource. Ldecod was used to decode the dependent view of the stereoscopic input streams. It works well, but it is terribly slow, and is was therefore not a good solution. Luckily, the external tools have evolved, and I wrote a second version of the GUI, called BD3D2MK3D (http://forum.doom9.org/showthread.php?p=1663794#post1663794). The original BD3D2MK3D was mainly based on ssifSource and DirectShowMVCSource, but is now also obsolete.
Starting with v0.30, BD3D2MK3D is based on new tools, much more efficient, like the tsMuxeR update for 3D blu-ray (http://forum.doom9.org/showthread.php?t=168539) and the Intel MVC decoder (https://software.intel.com/en-us/articles/intel-media-software-development-kit-intel-media-sdk) to decode the dependent view, with the help of the avisynth plugin DGMVCSource (http://forum.doom9.org/showthread.php?t=170107&highlight=DGMVCSource) by Donald Graft or FRIMSource (forum.doom9.org/showthread.php?t=169651) by videofan3d. The GUI uses also a lot of other tools. See the Help menu for a list of the most important tools.
As you can see in the original thread, the development of the method and the tools necessary to do the conversion was a collective effort. I wish to thank all contributors.
Currently, BD3D2MK3D is mature enough to have its own thread, and it's why I have created this thread. Please post all questions and bug reports related to BD3D2MK3D here, and all questions about the external tools that my GUI uses in their respective threads or in the original guide thread (http://forum.doom9.org/showthread.php?p=1663794). Thanks!
Features of BD3D2MK3D:
Convert any 3D playlist from a properly decoded blu-ray 3D to a standalone 3D Half-side by side (HSBS) or Half-top & bottom (aka Over/Under or HOU), or to Full-SBS or Full-T&B, or even to Frame Sequential 3D MKV file.
Can also accept as input a 3D-MKV file created with MakeMKV (with the option to include the 3D MVC stream).
Can resize the output to 720p
Can output a 3D stream compatible with 3D-Ready DLP projectors (720p Frame Sequential at 59.94fps).
Can convert the subtitle streams to 3D, using the depth stored in the original BD for each individual subtitles. (The subtitles can also be kept in 2D if you wish.)
Can hardcode (or "burn") a subtitle stream (all or forced captions only) over the video with the right depth for each individual subtitles.
The subtitles can be muxed in the original BD SUP format for an excellent quality or in VobSub (IDX/SUB) format for a better compatibility.
It is even possible, with some manual work and the help of the Tools menu of BD3D2MK3D, to use a subtitle stream coming from another source (such as a SRT downloaded from the internet or a SUP stream from the 2D BD of the same movie) and convert it to 3D with (approximately) the right depth values to mux it within the final MKV or hardcode it to the video. See the mini guide here (http://forum.doom9.org/showthread.php?p=1742601#post1742601).
Can extract the regular 5.1 DTS or AC3 cores of the DTS-HD, DTS-HD-MA, E-AC3 and TrueHD audio streams.
Can convert the audio tracks to AC3 or AAC for a better compatibility or a smaller file size.
The chapter points are automatically preserved in the final MKV file.
Can include tags about the movie (movie title, director, producer, actors, summary, comments, etc...)
It is possible to provide your own image for the icon of the MKV file and the display in a media center, or to retrieve it from the original BD.
Can add some seconds of black at the beginning or end of the video so that the user has some time to configure his 3D TV and to turn his active 3D glasses on before the beginning of the movie.
The encoding to h264 is made with x264 (32 or 64-bit) for an excellent image quality, and the user can select the most important encoding settings, such as the encoding mode (CQ, CRF, ABR or 2-pass), the preset, tune, profile and level. It can also specify manually additional options if he wish. Similarly, x265 can be used to encode in h265 with a much better compression, but with a few limitations. The user can even encode with any command line encoder by providing his own command line.
The correct 3D video mode is automatically defined in the h264 video stream (the "frame-packing"), in the header of the MKV video file (the stereoscopy mode), and optionally in the file name, so that most TVs and 3D players can switch automatically to the right 3D mode when the file is played.
The final MKV file is automatically muxed at the end of the encoding, and there is an option to shutdown the computer when everything is finished.
BD3D2MK3D has also some independent tools, notably powerful tools to convert an external subtitle stream to 3D, using the 3D depth values extracted from the original 3DBD, and optionally the subtitle positions cloned from another subtitle file.
And much more...
Download:
The latest version of BD3D2MK3D can always be downloaded here: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
The obsolete BD3D2AVS based on ldecod can still be downloaded here: BD3D2AVS.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2AVS.7z)
Please note that BD3D2AVS is obsolete. It is still available if you want to try the old conversion methods, but it is no longer developed, and it doesn't contain all features and bug fixes of the latest BD3D2MK3D. Use it at your own risk, and don't ask for help!
Installation:
Pre-required and recommended programs:
BD3D2MK3D requires Windows Vista or greater to work properly. Windows XP is not supported (due to incompatibilities in the Intel MVC decoder).
Avisynth+ (https://github.com/pinterf/AviSynthPlus/releases) or the old classic Avisynth v2.6.0 (https://www.videohelp.com/software/Avisynth) (32-bit) must be properly installed on your computer. (It's a complex program, but you don't need to use it directly. Just install it.) Currently, Avisynth+ 64-bit is recommended.
Since BD3D2MK3D doesn't decrypt the commercial 3DBDs, you need a way to decrypt them. You can use a good BD decrypter (http://www.videohelp.com/software/sections/decrypters-bd-hd-dvd) that can create an ISO on hard disc, such as DVDFab HD Decrypter (https://www.dvdfab.cn/hd-decrypter.htm) or Ideal Blu-Ray Copy (http://www.idealdvdcopy.com/bluray-copy.htm). You can also use AnyDVD HD (https://www.redfox.bz/anydvdhd.html), that decrypts the original BD on the fly. It is also possible to decrypt only the title you want and convert it to lossless 3D-MKV with MakeMKV (http://www.makemkv.com/). (MakeMKV is free while in beta if you use the key provided here (http://www.makemkv.com/forum2/viewtopic.php?f=5&t=1053).)
To convert the subtitles to 3D or to IDX/SUB format, it is highly recommended to install Java (https://www.java.com/en/download/manual.jsp) (32 or 64-bit). (BDSup2Sub++ is also used, but the Java version is still necessary to avoid some bugs of the ++ version.)
BD3D2MK3D can "burn" (hardcode) the 3D subtitles on the video. It's useful if your 3D TV cannot display the 3D subtitles correctly. For the best result, it is recommended to burn the subtitles in BD SUP format. For this, you need to install Microsoft .NET Framework v4 (https://www.microsoft.com/fr-fr/download/details.aspx?id=17718). If it is not installed, the subtitles in the old VobSub (DVD IDX/SUB) format will be used, and the result will be less good.
It is also recommended to install a good video player that can play BD's M2TS and MPLS files and that let you select any audio or subtitle stream. The player is used only for the preview. The free players PotPlayer (http://potplayer.daum.net/) (recommended) or MPC-HC (http://mpc-hc.org/) do the job well, but there are many other good players. Just avoid the Windows Media Player, that doesn't work well at all.
To install BD3D2MK3D, simply extract the content of the 7Z archive to a directory of your choice. BD3D2MK3D saves its settings in its installation directory, and doesn't use the Windows registry. It is therefore highly recommended to install it in a folder where you have full access rights. Do not install it in Program Files or in Program Files (x86). (If you cannot open the 7Z archive, you need a good archiver program such as 7Zip (http://www.7-zip.org/).)
If you wish, you can create a shortcut to BD3D2MK3D.exe in your Start menu (or Start Screen under Windows 8). Or you can simply open the installation folder in Explorer, and double-click BD3D2MK3D.exe to launch the program.
Download latest version: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
V0.40 is the first version released in this thread.
For infos about the older versions, please see the original 3D conversion guide thread (http://forum.doom9.org/showthread.php?p=1663794).
Version history (starting from v0.30, the first version based on DGMVCSource or FRIMSource)
The BD3D2MK3D history can be viewed or downloaded here: history.txt (http://download.videohelp.com/r0lZ/BD3D2AVS/history.txt)
Download latest version: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
frank
13th July 2014, 09:31
During generating project (demuxing) the Abort button doesn't work. It should terminate tsmuxer. You only can kill the process.
It's annoying, because demuxing takes a long time.
r0lZ
13th July 2014, 10:02
OK, I'll have a look. Thanks.
mini-moose
18th July 2014, 10:53
When choosing subtitles format as .sup, I get 2d sup, 3d sup and 2d vobsubs.
Is it possible to get also 3d vobsubs with that option or maybe a 3rd option that will create both? I'd like to mux both it (I prefer .sup but I'd like to share some vids with a friend who can't use them).
An aesthetic/consistency/ocd remark regarding files tagging - on this case I got the next files:
00001.track_4501.Eng.2D.idx
00001.track_4501.Eng.2D.sup
00001.track_4501.Eng.sup (maybe that should get tagged 2D too)
00001.track_4501.Eng.3D.sup
r0lZ
18th July 2014, 14:43
I'll have a look, but I can't promise. The subs conversions is already very complicated, because I have to take into account the hardcoded subs as well (that must be 3D SUP anyway, regardless of the user's options).
If I do it, I'll implement probably the option to mux both VobSub and BD SUP. Do you have a preference for the order? I suppose I'll set the VobSub format first, for compatibility reasons. That means also that the VobSub stream will have the "Default" flag (when applicable).
In the meantime, I suggest to leave the SUP option ticked, and to convert manually to SUB/IDX. You can then modify the _MUX_3D_OPTIONS.txt file to add the VobSub streams. (Just copy the VobSub definition, and modify the file name and the title. Also, take in mind that only a single subtitle stream can have the "Default" flag set.
00001.track_4501.Eng.sup (maybe that should get tagged 2D too)
The 00001.track_4501.Eng.sup file is the original stream, extracted from the BD. It is not tagged with "2D" because the 2D or 3D tag is added only when a conversion to 3D or to VobSub is made.
mini-moose
18th July 2014, 15:10
The subs conversions is already very complicated, because I have to take into account the hardcoded subs as well (that must be 3D SUP anyway, regardless of the user's options).
If I do it, I'll implement probably the option to mux both VobSub and BD SUP. Do you have a preference for the order?
Thanks for considering my request.
I really just want to have a 3d vobsub and 3d Sup created the same time. I remembered you said choosing sup generates vobsub too, and I thought it meant 3d, and choosing vobsub only creates a regular 2D sup (maybe it does 3D too in current version? I didn't try).
Maybe a third option is not something of much demand to worthy adding such an option.
I don't have a preference as to which would be first. Personally I use sup so for me that would be better to be first, someone else might prefer vobsub first, so there's really no way to way to make it one size fits all...unless you add a 4th option ! ;)
The 00001.track_4501.Eng.sup file is the original stream, extracted from the BD. It is not tagged with "2D" because the 2D or 3D tag is added only when a conversion to 3D or to VobSub is made.
Ah, that makes sense. Thanks for clarifying.
frank
19th July 2014, 19:02
3D subtitle processing is excellent! AFAIK BD3D2MK3D is the only tool that 3D subs correctly handles. And very flexible. :)
In some cases (sources max 100 min, not too big for high bitrate) I prefer encoding in the MVC 3D format because of more 2D compatibility with traditional players such as VLC or Android. The source analysis and scripts generated by BD3D2MK3D are also very useful to pipe to FRIM or ROVI TotalCode.
Therefore I have to hardcode subs. To do that we need the full 3D subs separately for the left and right view. BD3D2MK3D only can produce half SBS. Full SBS doesn't work at all.
Can you implement an option to the tools menu generating the separated FHD (1920x1080) subs?
Or is there an easy manual modification of the tools to generate the the streams for SupTitle() input?
r0lZ
19th July 2014, 19:23
You want two independent subtitle streams, with the left and right subtitles with no resize? That should be possible, but I need some time. And no it will not be easy to modify the code to do it yourself. The conversion to 2D is made by the program itself, except the extraction of the 3D planes, made with an external exe (by Nico), but it doesn't need to be modified.
Also, I will implement it as a new tool, or an option in the current tool to convrt the subtitles to 3D. I will not integrate that in the main process, since it produces half-SBS or half-T&B anyway.
frank
21st July 2014, 15:48
I see, it's not so easy.
tsMuxeR cannot handle 3D planes if you rebuild a MVC blu-ray with reendcoded streams. The information remains in the orginal MVC stream. Therfore hardcoding subs is the best way out.
For MVC 3D we only need full-sized subtitle streams. They can be easy integrated with Avisynth script. I need to use Avisynth to slightly resize pictures, because I have a 3D (line) polarized Monitor. The more image height the better the picture.(recommended 2.35 ->2.07...)
r0lZ
22nd July 2014, 09:41
During generating project (demuxing) the Abort button doesn't work. It should terminate tsmuxer. You only can kill the process.
It's annoying, because demuxing takes a long time.
Sorry, but I can't reproduce the problem. For me, the Abort button works as expected.
(Note that it is enabled only during the long demux process. When the demuxing is finisged and the subtitle files are converted to 3D or when the audio strerams are converted to AC3, it is not possible to abort. Anyway IMO, if you have waited during the whole demux process, it's not to abort when the job is almost done.)
Could it be that your antivirus or something in your system prevents BD3D2MK3D to kill the tsMuxeR process? (I have to kill it abruptly because afaik there is no way to tell it to abort gracefully. Some antivirus may block the possibility to kill a process from another process running at the user level, because they consider that as potentially undesirable.)
Anyway, before the process gets killed, you should see this dialogue:
Are you sure you want to abort the current process?
(The avisynth file and batch commands will not be created!)
---------------------------
Yes No
Do you see it?
Someone else has that problem?
[EDIT] Got it! I understand why it doesn't work. To use the kill command, I need a package (called Tclx), and that package is installed by default with the Tcl/Tk programming environment, but is not included with the standalone executable files such as BD3D2MK3D.exe. When I run the exe on my system, it finds the package in my Tcl/Tk installation directory, and everything works fine. But it cannot find it on machine where Tcl/Tk is not installed. As a consequence, when you click the Abort button, the dialog quoted above is not displayed, and you can only hear a bell.
I will include the Tclx package in the Toolset directory and everything will work fine.
Thanks again for the bug report!
r0lZ
22nd July 2014, 19:26
This version should do everything requested in this thread so far.
# v0.41 (July 21, 2014)
# - Tools -> Convert Subtitles to 3D (with 3D-plane) can now generate two full-size subtitle streams.
# - It is now possible to include the subtitles in both VobSub (IDX/SUB) and BD SUP formats.
# - Fix: The Abort button during the demux process did not work.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
r0lZ
23rd July 2014, 07:42
Sorry, I have introduced a bug in v0.41: The conversion of the subtitles to 3D Half-T&B (with 3D planes), from the Tools menu or the normal conversion of a Title, was broken. The subtitles were converted to Half-SBS. Please download the new version (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z).
Thanks to Frank for having reported that bug by PM!
# v0.42 (July 23, 2014)
# - Bug introduced in v0.41: The subtitles that should be converted to Half-T&B were converted to Half-SBS. Thanks Frank!
frank
23rd July 2014, 14:18
Many thanks again. Works perfectly.
You learn something new every day... :D
frank
7th August 2014, 14:29
BD3D2MK3D uses tsMuxeR v2.6.9. (2013)
Latest version is 2.6.12.
Is there any reason to use the older version?
EDIT: Ok, I read the PM, there is a subtitle timcode bug. Is it with SubTitle() too?
r0lZ
7th August 2014, 15:54
Well, I had the intention to describe that bug with all details in the tsMuxeR 3D thread, but in short, v2.6.11 and v2.6.12 have totally wrong subtitle time codes when demuxing some BDs (2D and 3D). The bug happens only (but not always) when there are several parts (M2TS/SSIF files) in the MPLS, and only for the subtitles starting after the end of the first part. With the affected BDs, the time codes of the subsequent subtitles have one hour too much. For example, a subtitle that must appear at 0:10:10.000 has a time code of 1:10:10.000. The versions up to 2.6.9 are not affected by that bug, but the time codes are often slightly wrong (compared to the time codes reported by eac3to). For the example above, the time code could be, for instance, 0:10:10.400. The milliseconds part of the time codes is correct in the two latest versions, but it seems that Roman has introduced a new big bug when he has fixed the ms bug. It is a pity that he doesn't work on tsMuxeR any more. :-(
That bug has been discovered by Nico8583 (http://forum.doom9.org/member.php?u=178136), and he has tested with several 2D and 3D BDs, with similar results. However, many multi-parts BDs (like the Disney BDs) are not affected. I have tested myself with Dragon Gate 3D, and indeed the two latests versions are unusable. Since I can't use eac3to to demux the BD (due to other problems with the subtitles of 3D BDs), and v2.6.11 and v2.6.12 are unusable, I have decided to stick with v2.6.9. AFAIK, the latest versions are not better for the demuxing process. However, if you use tsMuxeR to mux to TS or M2TS, it might be a good idea to use the last version.
BTW, I don't have v2.6.10, and therefore I haven't tested it. Someone has that version?
Is it with SubTitle() too?
Yes, since the demuxed SUP stream is wrong.
frank
7th August 2014, 20:00
Ok, thanks.
The Haali start messages says: This message is shown only once. Wrong, it will display at every program start.
But when does BD3D2MK3D using it? AFAIK directshow is not used.
- Demuxing with tsMuxeR or eac3to - No
After demuxing it works with elementay streams.
- Streaming, piping - No
- MVC decoder DGMVCsource() - No
- Encoding with x264 - No
- Muxing with MKVtoolnix - No.
??
So in every case I can see the progress percentage.
I personally use Haali for years no longer. LAV splitter is the better one (and shark007's DS filter set).
BD3DTOMK3D works on my system (Windows 7 x64) without any splitter very well.
r0lZ
7th August 2014, 22:20
You're right. Haali is not needed any more. I don't know why I haven't removed it. It was used previously in a function that retrieves the number of frames from a specific M2TS. To compute the number of frames, the function created a little avisynth script with DirectShowSource("file.m2ts"). Without the filter, DirectShowSource was unable to return the number of frames. That function was still present in my code, but not used any more. I have just removed it, as well as all references to Haali, and the warning message when it is not installed.
And indeed there was a bug in the warning, that was displayed at every start. Since I have removed that code, I have removed the bug too! ;-)
Thanks!
r0lZ
9th August 2014, 09:51
The main change is the possibility to encode in Full-SBS or Full-T&B. Please note that it is not possible to convert the subtitles to 3D for these Full stereoscopic formats. However, it is possible to hardcode the subtitles in 3D over the video (with the real 3D depth extracted from the 3D-Planes).
# v0.43 (August 9, 2014)
# - Added the possibility to encode in Full-SBS or Full-T&B (without 3D subtitle streams).
# - Tools -> Chapters file converter: Added an option to save a QPFILE for x264 as well.
# - Added a warning to not use tsMuxeR 3D v2.6.11 or v2.6.12 due to the big subtitle timecodes bug.
# - Added more meaningful info in the labels of the streams for MkvMerge.
# - Removed all references to the Haali media splitter DirectShow filter, not needed any more.
# - Added the --disable-track-statistics-tags in the MkvMerge option files because the statistics are wrong and useless.
# - Updated MkvMerge and MkvMerge GUI to the latest version (v7.1.0)
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
Gradius
15th August 2014, 01:33
I'm getting this error:
child process exited abnormally
child process exited abnormally
while executing
"close $fh"
(procedure "Extract3DPlanesMain" line 59)
invoked from within
"Extract3DPlanesMain "[file rootname $mpls].track_4114.mvc" ."
(procedure "GenerateAvs" line 664)
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)
r0lZ
15th August 2014, 09:46
Hum, strange. I can't see any bug in my code in that section.
What is the 3DBD you are trying to convert? And have you selected at least a subtitle stream to mux or to hardcode?
frank
16th August 2014, 09:08
The error message comes from Extract 3D-planes from MVC.
If the MVC is not original, tsMuxer3D showes zerro planes, and there are subs muxed in. Starting Extract 3D-planes will break and show this error message.
I think the issue comes when you want to extract 3d-planes and there is nothing in the MVC stream.
BD3D2MK3D should handle it.
r0lZ
16th August 2014, 09:38
Yes, that was also my conclusion. BD3D2MK3D uses MVCPlanes.exe (by Nico) to extract the 3D-planes from the MVC, and it checks if it returns a non-zero return code when it is launched, but apparently it fails if the exe writes something to stderr. I should have fixed the problem, but I can't easily verify if everything works as expected after the extraction of the planes. Anyway, I will release a new version soon...
frank
19th August 2014, 15:20
I wrote some special characters (german umlauts ä, ö, ü) in the movie title. Then MBD3D2MK3D built the Avisynth script _ENCODE_3D_MOVIE.avs as UTF-8 and not as ANSI file. This has the result that the encoding process terminates immediately, the UTF-8 script is not readable.
That should be handled, movie title ist only used for file name and for tags in the muxing stage.
edit
r0lZ
19th August 2014, 16:26
Hum, I'm not sure the problem comes from the UTF-8 encoding. BD3D2MK3D saves the AVS script in UTF-8 anyway, regardless of the presence of accented characters, and it has always worked.
Anyway, I will do some tests. Can you give me the exact title you have used?
r0lZ
19th August 2014, 22:15
Just finished my test. I have used this title: "test accentué ä ë ï ö ü", and I've put the same string in the Comment field to test the tags.xml file too. Everything went fine. No crash, the directory and file names are correct, as well as the global title (inside the MKV) and the Comment tag.
I think something else has caused the crash. But what? Have you tried again with the same German characters?
IanD
20th August 2014, 08:50
How easy would it be to modify BD3D2MK3D to output a line interlaced field version instead of OU?
I think maybe LG passive TVs are futzing with conversion of OU frames to its native interlaced presentation and softening the image in the process, so I was hoping to be able to create 2D frames containing top left field and bottom right field (or vice versa) of the 3D source, interlaced together so that they could be presented on the TV as-is in 2D mode but get the 3D effect by wearing the glasses. This would mean the least processing of the original source (ie scaling) and hopefully a sharper picture as it would be mapping the fields directly to their corresponding polarising strips without interference.
I do not know the polarizer strip orientations, so it would require options to select whether left or right was top field.
r0lZ
20th August 2014, 09:02
Hum, that should be possible, but I have to be sure that it works before beginning to implement that option. And since I don't have a passive LG, I can't test myself. I'll try to see what modification of the files generated by BD3D2MK3D are necessary, and I'll let you know. Will you be OK to test them yourself?
Sharc
20th August 2014, 09:45
How easy would it be to modify BD3D2MK3D to output a line interlaced field version instead of OU?
I think maybe LG passive TVs are futzing with conversion of OU frames to its native interlaced presentation and softening the image in the process, so I was hoping to be able to create 2D frames containing top left field and bottom right field (or vice versa) of the 3D source, interlaced together so that they could be presented on the TV as-is in 2D mode but get the 3D effect by wearing the glasses. This would mean the least processing of the original source (ie scaling) and hopefully a sharper picture as it would be mapping the fields directly to their corresponding polarising strips without interference.
I do not know the polarizer strip orientations, so it would require options to select whether left or right was top field.
You may want to run some preliminary tests with Stereoscopic Player (http://www.3dtv.at/Downloads/Index_en.aspx)which can output 3D footage as interlaced. Perhaps there is a trial period, I don't know.
Alternatively you could try the free Bino (http://bino3d.org/) which has similar options.
I don't know however how the output is presented at the HDMI (PC) interface to the TV.
r0lZ
20th August 2014, 10:21
@Shark: My PC doesn't have a 3D graphic card, so I suppose that options cannot be used. But thanks anyway.
@IanD:
I have modified the files of a short clip and I think I have something that should work. Can you test the modifications?
Use a short clip to begin (and, optionally, select the UltraFast x264 preset). Use T&B or SBS, that doesn't matter.
When the demux phase is finished, edit the following files.
_ENCODE_3D_MOVIE.avs:
You should replace the following lines:
left = SelectEven(interleaved)
right = SelectOdd(interleaved)
# Build combined Side-by-Side image
StackVertical(...) (or StackHorizontal)
with this:
left = SelectEven(interleaved).SeparateFields().SelectOdd()
right = SelectOdd(interleaved).SeparateFields().SelectEven()
# Build combined Row-interlaced image
Interleave(left, right).Weave()
The code above is for the left view in the top field. To place the right view in the top field, use this:
left = SelectEven(interleaved).SeparateFields().SelectEven()
right = SelectOdd(interleaved).SeparateFields().SelectOdd()
# Build combined Row-interlaced image
Interleave(right, left).Weave()
That should work, but I'm not sure. If you see inverted fields, experiment with the words in red above.
You should also modify _ENCODE.CMD and replace the option "--frame-packing 4" (or 3 for SBS) with "--frame-packing 2".
You should also edit the "3D Video stream" section of the _MUX_3D_OPTIONS.txt file, like this:
# 3D video stream
--track-name
0:3D Row interlaced (x264 CRF 22, preset ultrafast, level 4.1)
--stereo-mode
0:7
--aspect-ratio
0:16/9
--default-duration
0:24000/1001p
--default-track
0:yes
01000_mpls.264
The stereo mode 7 is for the left field on top. Use 6 for the right field on top.
When the edits are finished, encode normally, and watch the movie on your TV. Perhaps you'll see some flickering effects (especially with thin horizontal lines, or in the end credits). Please let me know if it's the case. It is perhaps possible to improve the image quality and avoid the flickering with a resize instead of the SeparateFields().SelectOdd/Even() code.
Let me know if it works fine. If your tests are conclusive, I may add that option in the next version...
Sharc
20th August 2014, 10:51
@Shark: My PC doesn't have a 3D graphic card, so I suppose that options cannot be used.
.....
Hmmm..., I thought that a 3D card is not even needed as the format is "2D interlaced" with field1 = left view and field 2 = right view. But as I mentioned I don't know how the TV is going to deal with it.
But anyway, you have already proposed a modified script for trying.
r0lZ
20th August 2014, 13:33
You need a graphic card that can synchronize the active glasses, or (but I don't know if that exists) a passive 3D monitor with polarized filters on the scanlines of each field. I don't have that. But it is perhaps possible to use a program that can convert the row interlaced stereoscopic movie to anaglyph. It's perhaps sufficient to verify that the fields are in the correct order. But I don't want to install a program that I don't need just for that, and anyway I will not be sure of the result. After all, IanD has requested that new feature; he can do some tests for me. ;-)
IanD
20th August 2014, 14:41
@IanD:
I have modified the files of a short clip and I think I have something that should work. Can you test the modifications?
Use a short clip to begin (and, optionally, select the UltraFast x264 preset). Use T&B or SBS, that doesn't matter.
When the demux phase is finished, edit the following files.
I was going to attempt to do it myself with Avisynth as the process is quite straightforward, however I would need to manually perform the decode process and then the encode process, so I was hoping your program could do it automatically with a few minor modifications. I see that it may be possible to do it through your program.
Unfortunately I don't have a passive 3D TV, but a relative does, however I don't see them very often.
I was mainly looking for a way to create a simple test file that I could use in the future.
I understand what you are saying about the possibility of flickering, but the whole reason for generating an interlaced frame without scaling was to improve sharpness. The T&B I have seen look quite soft compared to SBS, even as 2D presentations, so I think the scaling in the encodes is introducing softness, let alone what the LG is doing to it. I acknowledge the penalty for a sharper image might be inter-line twitter: then again, perhaps the brain can use the right eye view to fill in the gap.
Your interlaced process seems reasonable and I will test it out when I can, but it will probably not be for a while. Thanks for coming up with a solution so quickly.
Maybe someone will have improved the stability and speed of MVC decoding by then.
IanD
20th August 2014, 14:50
You may want to run some preliminary tests with Stereoscopic Player (http://www.3dtv.at/Downloads/Index_en.aspx)which can output 3D footage as interlaced. Perhaps there is a trial period, I don't know.
Alternatively you could try the free Bino (http://bino3d.org/) which has similar options.
I don't know however how the output is presented at the HDMI (PC) interface to the TV.
That's a definite option as it supports ssif directly and appears to output row interlaced, so no transcoding to mkv first.
However it will be more difficult to test without a passive 3D TV to hand, but thanks for the option.
r0lZ
20th August 2014, 15:02
If I understand correctly, you want to encode in the interlaced format without knowing if it works with your future TV? I can't modify BD3D2MK3D without knowing for sure if the modification will be useful, for you and others.
frank
20th August 2014, 17:47
I'm an experienced user of polarized 3D. There is absolutly no need for interlaced frame storage! Storage and output are different things.
The HDMI 1.4a spec includes 3D HSBS and HTAB standard, left eye on top.
Modern polarized monitors and LG TVs use circular polarization. You can keep your head diagonally - no ghosts!
I have a very good 23" polarized 3D Monitor - AOC d2367Ph. It has two HDMI 1.4a inputs.
I'm using softwareplayers on notebook. (ISOs, BD folders, no Cinavia crap...)
PowerDVD 3D 10 or newer recognizes the stereo tabs from mkv file and puts the decoded 3D stream (HSBS, HTAB) automatically to HDMI 1.4a without any problems. :)
Stereoscopic Player can make a line interlaced output from HTAB. The picture is sharper than from PowerDVD but PowerDVD has better (certified) sound decoders.
r0lZ
20th August 2014, 18:04
I agree that storage and output are different things, but if you can store the data exactly the same way than the output will use them, I guess you can have a better quality, because there will be a 1:1 relationship between the medium and the hardware, without any adaptation procedure needed. I don't know if that will make any visible difference, but for the principle, I think that as long as we use a Half-3D packing method, it is better to store the right half at the right position. Or have I missed something?
frank
20th August 2014, 19:11
If you store the 3D content in another way - then other standard devices cannot play it. (TVs, BD players, Android...).
The 3D content must signal the format to the interface - but HDMI 1.4a is the only 3D standard interface. And HDMI 1.4a doesn't know any interlaced 3D frames, only Frame Packing (movie, games) and SBS/TAB (broadcast).
We don't need new mismatches. Wat is going on if you send such interlaced 3D frames to a 2D device?
Half-Packing was a demand from broadcast because of technical reasons (bandwidth, studio and transmitter devices...)
Hardware decoders work fast and properly, but only for standard content as Frame Packing/SBS/TAB. You don't have to store interlaced 3D frames. In addition interlaced encoding needs more bits, as we know from mpeg (jumping mov vectors.)
The HDMI standard doesn't allow interlaced frame storage. 1080i50 are 50 fields 1920x540 per second, field sequential. If you encode a 3D movie in that way then the player does not signal 3D content! 1080i50 means interlaced footage, standard compliant. NTSC 1080i29 has to apply Pull Down to get the frame rate because movies have 23.976...
Example of non-standard:
Most guys cut off black bars but they have never understood how AVC compression works. Black bars have zero information, not much code needed. But hardware decoders fail at resizing such cuts... Only PCs can play it.
r0lZ
20th August 2014, 19:41
I fully agree with (almost) everything. However, the checkerboard, column interlaced and row interlaced 3D packing methods exist (or have existed). They are perhaps (or probably) obsolete now, but they are still supported. Also, I guess IanD wants to play his movies from a HDD directly connected to the TV, without passing through HDMI, but I'm not sure. (I don't know any TV able to play row interlaced material directly.)
Anyway, I think you're globally right. I will probably not implement the row interlaced packing method, unless someone can prove that it's useful. I have posted the modification to do to the scripts above, and if IanD really wants to encode in row-interlaced, he is free to modify the files manally.
And BTW, thanks for your remark about the black bars. It's exactly for that reasons that I have always refused to add a crop feature to BD3D2MK3D.
frank
20th August 2014, 20:35
Sorry I've made a mistake: ANSI not ASCII
BD3D2MK3D saves the AVS script in UTF-8 anyway, regardless of the presence of accented characters
Sorry, no, it stores normally as ANSI in Windows. Tested with your last beta.
If I open the avs and then select file store as... then the opening windows shows
Codierung: ANSI - code: ANSI
not UTF-8 in the botom line.
The error comes if it is UTF-8 code because Avisynth needs ANSI.
I will repeat the test with special characters.
(The movie was How to Train Your Dragon but I wrote Drachenzähmen)
r0lZ
20th August 2014, 23:52
From my code:
SaveFile "_ENCODE_3D_MOVIE.avs" $avs utf-8 auto
And, when I open the file in PSPad, it is (correctly) identified as using code page UTF-8. Nothing is saved in ANSI in BD3D2MK3D, because MS ANSI is a nightmare.
I've just relaunched the encode of my little test clip, after having forced UTF-8 again with PSPad, and re-saved the AVS script, and Avisynth has accepted it without problem.
(The only little problem I'm aware of is related to the output of MkvMerge in the command prompt window. At the end of the muxing process, it displays the name of the output file, and if it contains foreign characters, they are replaced by strange symbols. Like in this example: "The file 'test accentué ä ë ï ö ü 3D-SBS 1080p (Rol).mkv' has been opened for writing." But the file is written to disc with the correct file name. Obviously, it's a bug of mkvmerge.exe, that outputs UTF-8 characters to the Windows console, that supports only OEM code pages. But it's only a cosmetic problem, since everything is OK.)
Are you sure you use a correct version of Avisynth? I use v2.58, build Dec 22 2008 [08:46:51].
IanD
21st August 2014, 07:59
I have posted the modification to do to the scripts above, and if IanD really wants to encode in row-interlaced, he is free to modify the files manally.
That is the solution I was aiming at: a way to modify BD3D2MKV (or any other similar software) to make it easier to create Half Row Interlaced 3D for my own particular uses, instead of using a whole sequence of independent manual steps. I was not expecting the software to necessarily be changed within itself for everyone: this was just to make my job easier if possible.
The reason for doing this is to test whether it is possible to create a sharper image on a relative's LG passive 3D display than using the usual Half T&B approach, because that does look soft compared to Half SBS, even though theoretically it should not.
This is only a test to see whether a better visual result can be achieved with Half 3D encodes than with the standard methods. I appreciate it then becomes a non-standard method, but if Half 3D mkv is being created anyway, it doesn't matter if the encode method is different.
I have been targeting Half 3D mkv encodes as that is likely to be the format of choice for the relative, especially since the passive 3D can not display full 3D Bluray resolution anyway. I think I have already mentioned that compressibility will be reduced using the row interlaced approach. I acknowledge that the non-standard nature of row interlaced means that it will only work with passive TVs in 2D mode but with 3D glasses, so no adjustment of 3D effect is possible, but I'm willing to accept that if it produces a sharper picture without major artifacts. I also appreciate that this will not be an interlaced format but a standard 2D frame mkv, however the left and right eye views will effectively be fields of their original progressive frames. I apologise if I have confused the issue by mentioning interlaced.
At the end of the day, this will just be a test whether a row interlaced approach can produce a sharper image on a passive display compared to the usual Half T&B approach that is currently being used.
I thank forum members for their interesting suggestions so far and I will test them out when I get an opportunity.
r0lZ
21st August 2014, 08:16
OK, it's clear. Please post the results of your tests here. Thanks in advance.
BTW, for the interlaced thing, it you use the modification of the script I have suggested above, you will probably end up with interlaced frames, because Avisynth will consider the output video as interlaced due to the Weave() command. To avoid that and produce true progressive frames, you may need to add AssumeFrameBased() right after the Weave() command.
frank
21st August 2014, 08:53
Strange. I have tested again - same issue.
1. Standard characters in title -> everything ANSI!! Tested with Editor.
_ENCODE.cmd
_ENCODE_3D_MOVIE
_MUX_3D_OPTIONS.txt
chaptes_3D.qpfile
chapters_3D_delay.ogm
2. With ß in title
UTF-8:
_ENCODE.cmd
_ENCODE_3D_MOVIE
MUX_3D_OPTIONS.txt
But ANSI:
chapters_3D.qpfile, chapters_3D_delay.ogm
Encoding started without error in every case. Maybe the error messages last week came from my editions in scripts or absolute pathes with special characters.
BD3D2MK3D is extracted to the user folder.
Stable Avisynth v2.60 from 13/09/18 has never made problems.
I have a suspicion the cause is the localized Windows version.
I used german Win 7 Ultimate x64 on my Dell XPS.
On another NB is german Win 7 Home Premium x64 - but same issues.
Very strange...
The chapter files must be coded in UTF-8. I changed it manually to UTF-8 to insert german chapter names.
frank
21st August 2014, 09:44
@IanD
The reason for doing this is to test whether it is possible to create a sharper image on a relative's LG passive 3D display than using the usual Half T&B approach, because that does look soft compared to Half SBS, even though theoretically it should not.
HTAB is not the cause. You didn't say what player you used.
If it was PowerDVD than you are right, the picture is softer. They stream their HDCP mess trough the whole system, and it needs some time until decoders are selected and the picture is displayed. Furthermore it seams the Half-TAB picture is resized to full size and THEN every second line is selected!
Maybe other players are not better.
Test Stereoscopic Player with HTAB. It is able to output line interlaced 3D from HTAB content to HDMI. You have to setup the player manually. You'll get pictures with full sharpness! I cannot distinguish it from full 3D Frame Packed BD content on my passive display. Every coded screen line is properly displayed. I hope your LG TV operates with the same HDMI 1.4a procedures.
The only thing: Stereoscopic Player uses about 95 % open source (ffmpeg, dshow, MPC-HC...) - and they want money!
Sharc
21st August 2014, 10:07
@IanD
Test Stereoscopic Player with HTAB. It is able to output line interlaced 3D from HTAB content to HDMI. You have to setup the player manually. You'll get pictures with full sharpness! I cannot distinguish it from full 3D Frame Packed BD content on my passive display. Every coded screen line is properly displayed. I hope your LG TV operates with the same HDMI 1.4a procedures.
The only thing: Stereoscopic Player uses about 95 % open source (ffmpeg, dshow, MPC-HC...) - and they want money!
Out of curiousity: Has anyone tried the free Bino? Does it provide the same output to HDMI as the Stereoscopic Player?
Sterescopic Player uses Open Source plus the licensed 3D decoder from CoreAVC AFAIK. At least it decodes Pacific Rim correctly ;-)
r0lZ
21st August 2014, 10:38
1. Standard characters in title -> everything ANSI!! Tested with Editor.
As you know, I save all files explicitly in UTF-8. I'm not a specialist in character encoding, but I think UTS-8 uses standard (ANSI?) 8-bit encoding when it's possible. It encodes only the foreign characters with 16 bits (in 2 bytes). (It's the difference with UTF-16, that encodes all characters in 16-bit.) Perhaps your editor tells you that the files saved by BD3D2MK3D use ANSI encoding instead of UTF-8 when there are no foreign characters, because it doesn't find characters encoded in 16-bit.
Anyway, I'm (almost) totally sure that the problem doesn't come from the character encoding. My native language is French, and I have often used accented characters in the movie titles of my encodings, and I have never had any problem.
Of course, let me know if you can reproduce the crash...
frank
21st August 2014, 16:48
Perhaps your editor tells you that the files saved by BD3D2MK3D use ANSI encoding instead of UTF-8 when there are no foreign characters, because it doesn't find characters encoded in 16-bit.Maybe, damned Windows :angry:
Until now no errors but I don't use foreign characters in the movie path anymore for my tests.
One problem remains: chapter files.
I wrote the word König (king) as a name in chapters_3D-delay.ogm.
After remuxing with _MUX_3D.cmd it shows only "K".
I forced to save the chapters_3D-delay.ogm as UTF-8 with Editor - then after remuxing the name König was right inserted. :rolleyes:
I have no clue what Windows does. Something is different in the file header what brings the Windows Editor messed up.
r0lZ
21st August 2014, 17:11
What editor do you use? Notepad? (Notepad can save in UTF-8, but I think that there is no way to force it to do so.)
For the Chapters file, I must admit that there might be a problem in _MUX_3D_OPTIONS.txt:
--chapter-language
und
--chapter-charset
ASCII
--chapters
chapters_3D_delay.ogm
As you can see, the language is undefined. (If you define chapter names in German, you should modify the value here, but I don't know if it matters. Perhaps there is the possibility to include several chapter files in different languages, and if it's the case, the player should select the one in your language.)
But, more important, the character encoding is defined by default as ASCII (because ASCII is enough for the numbers and the colon I use in the default chapter names). Of course, if your file is encoded in UTF-8, the player will probably stop as soon as it encounters a special character. I will change the charset argument to UTF-8, since the chapter files saved by BD3D2MK3D is compatible with the UTF-8 encoding. It will be possible to edit the Chapter file without having to modify the _MUX_3D_OPTIONS.txt. Of course, you will have to be sure to save in UTF-8 and not ANSI when there is at least a special character in the file.
I will do a test right now, and if it works, I'll do it in the next version...
[EDIT] OK, test done. I have edited the Chapters file, and for the first time, I saw ANSI as the character encoding in PSPad. However, I have verified my code, and it saves the file in UTF-8 format. That confirms that a file saved in UTF-8 but that does NOT contain special characters is equivalent to ANSI.
For that reason, PSPad has saved my edits in ANSI, and indeed the chapter names were truncated at the first special character encountered. Then I have changed the charset in the mux file to UTF-8 (but without changing the chapter file), and the special characters have been displayed by MPC-HC as Chinese characters (I think.) Normal. ANSI with special chars is not UTF-8. So, I have reloaded the chapter file in PSPad and this time I have forced UTF-8. Now, the chapter names appears as they should in MPC-HC. :-)
I did again a test without special characters in the chapters file but with UTF-8 in the mux file, and everything went fine.
So, I have decided to change the ASCII string in the mux file to UTF-8. That works fine, and I prefer UTF-8, a good and well established standard, over ANSI, that exists in several variants (including "Windows ANSI"). But that means that you MUST use an editor that can force UTF-8 when saving the chapter file. If your editor cannot do that, use PSPad (http://www.pspad.com/) (free).
frank
22nd August 2014, 10:06
Ok :)
I use Windows Editor for such simple work. As I said if you load a file and then use "Save as..." the bottom line shows the format. If it recognizes the source file header as UTF-8 then it saves UTF-8 otherwise you can force it to UTF-8 by selecting the UTF-8 format.
frank
22nd August 2014, 10:52
Posted by Sharc:
Has anyone tried the free Bino? Does it provide the same output to HDMI as the Stereoscopic Player? Wow!!! Thanks for the tip.
I have tested Bino and the interlaced output is the same as Stereoscopic player does. Excellent sharp picture on polarized 3D screen. Now I must say Stereoscopic player includes 98 % open source... not recommended for that money.
I tested Windows version with hTAB via HDMI.
Bino detected the input format as hTAB properly! :)
The output format must be selected manually.
Bino's picture appears faster than from PowerDVD. Performance is equal to ffmpeg.
Bino can render subpictures.
Releases for Windows, Linux and Mac OS X.
You can select all the formats IanD wished for his LG 3D TV.
But
- Bino cannot decode MVC 3D (Blu-ray 3D)
- Bino cannot decode MVC 3D from mkv (created by MakeMKV). It automatically switches to 2D play.
Bino is Open Source - so we can help to improve it. :)
Thalyn
22nd August 2014, 19:50
I don't mean to derail the conversation, but a slight curiosity has come up which I'm hoping r0lZ (or someone else) can clarify for me: when you get the 3D planes extracted for the subtitles, how do you determine exactly which one you should be using to process the subs?
Reason I ask is I just picked up Winter Soldier, and the results I'm getting don't match up with PowerDVD. Basically I opened the playlist (.mpls) with tsMuxer and had a look at what the appropriate track's plane was listed as (track 6, plane 6, both starting from 0), then used that to process. It's fairly close on the first sub (hard to tell for sure since the disc tells PDVD to go 2D when paused), matches on the next few, but sub 5 is obviously further separated when viewed through PDVD. Being the stickler that I am, the resulting output is annoying because it's not identical to what I'm expecting - though it's still perfectly watchable.
Curiously, to me anyway, opening the ssif instead via tsMuxer gives a different 3D plane (plane 0). Using the plane suggested there, however, quite clearly shows up incorrect for one of those early subs.
Of course, that all assumes Cyberlink isn't doing something silly. They could be adding to the depth or multiplying it for all I know, and I've actually got the subs correct. Though the same process seemed to work just fine for The Wolverine, giving matching results, and World War Z looked pretty close if it wasn't the same.
r0lZ
22nd August 2014, 20:36
BD3D2MK3D use the plane listed by tsMuxeR for the processed MPLS, unless that plane doesn't exist, is empty or has a fixed depth. In that cases, it uses the second plane with a defined depth, or the first one if there is only one usable plane.
But the difference can perhaps be related to the way the values from the planes are used. BD3D2MK3D extracts the values of all frames during which the subtitle is shown, except the 3 first and the 3 last frames, and it uses the highest depth value. I omit the first and last frames because sometimes a subtitle appears just before a cut and the values for that shot are not necessarily the best ones to use. Anyway, if the subtitle appears "inside" an object during 1, 2 or 3 frames, the brain has not enough time to realize the problem. For the same reason, the 3 last frames are not taken into account either.
Also, perhaps PowerDVD uses another algorithm to determine the final depth value, such as the average of all depth values.
Honestly, I don't know exactly how to compute the right value, because I haven't found any documentation on that subject. I have tried several slightly different methods, and I've kept the one that gives the best results, at least in my opinion. Of course, if someone can give me the exact method to use, I'll be glad to implement it.
Sharc
22nd August 2014, 21:51
Posted by Sharc:
Wow!!! Thanks for the tip.
I have tested Bino and the interlaced output is the same as Stereoscopic player does. Excellent sharp picture on polarized 3D screen. Now I must say Stereoscopic player includes 98 % open source... not recommended for that money.
I tested Windows version with hTAB via HDMI.
Bino detected the input format as hTAB properly! :)
The output format must be selected manually.
Bino's picture appears faster than from PowerDVD. Performance is equal to ffmpeg.
Bino can render subpictures.
Releases for Windows, Linux and Mac OS X.
You can select all the formats IanD wished for his LG 3D TV.
But
- Bino cannot decode MVC 3D (Blu-ray 3D)
- Bino cannot decode MVC 3D from mkv (created by MakeMKV). It automatically switches to 2D play.
Bino is Open Source - so we can help to improve it. :)
Thanks for trying Bino. I assumed it could be a valid choice for IanD's TV, but I had no opportunity to test it myself.
IanD
22nd August 2014, 22:53
Posted by Sharc:
I have tested Bino and the interlaced output is the same as Stereoscopic player does. Excellent sharp picture on polarized 3D screen.
Thanks for the suggestion of Bino, but if it doesn't decode MVC, then it's not much good to me as I don't have an MVC decoder on my PC: I would have to create the mkv anyway and I already have an excellent player otherwise with MPC/LAV.
Out of curiosity, if Bino doesn't decode MVC, how did you play 3D to test it?
Because the 3D TV is remote, my testing requires a standard mkv I can play back through the TV via USB, hence the greater interest in Half Row Interlaced format rather than PC players like Stereoscopic or Bino.
Sharc
22nd August 2014, 23:24
.....Out of curiosity, if Bino doesn't decode MVC, how did you play 3D to test it?...
It accepts various 3D source formats like interleaved, OU, SBS.
MVC sources can be decoded via an avisynth script using DGMVCsource for example.
Thalyn
23rd August 2014, 07:50
Honestly, I don't know exactly how to compute the right value, because I haven't found any documentation on that subject. I have tried several slightly different methods, and I've kept the one that gives the best results, at least in my opinion. Of course, if someone can give me the exact method to use, I'll be glad to implement it.
Works for me. Just wanted to make sure I wasn't doing anything obviously wrong, and I'll take automated-and-possibly-not-but-still-could-be-right-anyway over manually having to split everything myself any day - especially when it comes to movies with hundreds or thousands of lines to sub!
Cheers.
r0lZ
23rd August 2014, 09:53
I don't have Winter Soldier, but if I can buy it, I'll have a look, especially at subtitle #5 of track #6.
You told me that "sub 5 is obviously further separated when viewed through PDVD". That may mean that PDVD doesn't skip the first and last frames when it computes the depth to use. If the Depth values in the 3D-planes for that frames (skipped by BD3D2MK3D but not by PDVD) are higher than the depth of the other frames, PDVD will use the higher values. Have you noticed if that subtitle appears just after or before a cut, or if the depth of the scene changes abruptly at the very beginning or end of the subtitle? If it's the case, we have the explanation. And we can discuss the interest to skip the first and lest frames if you wish...
Do you know that, as explained in various dialogs of BD3D2MK3D, you can modify manually the depth of an individual subtitle by editing the XML file of the temp_2D XML/PNG subtitle saved by BD3D2MK3D during the conversion of the subtitles to 3D? (It's why that temp directory is not deleted by default.)
I have already modified several depths because they were not perfect, and it's relatively easy. You have to figure out the right depth value and it's not always easy, but to determine approximately the depth of the objects during the display of the subtitle, I play the movie in anaglyph mode, and I try to measure the distance along the X axis between the green and red objects. That's the depth of the object. (You can also save a still frame of the T&B or SBS movie and use a paint program to measure the positions of the objects in their respective views. Of course, in SBS mode, that value must be multiplied by 2.)
Usually, I add a few pixels to the measured depth value (to detach the subtitle from the object), then I convert the XML/PNG to 3D, without specifying the 3D-plane file to force the converter to use the <Depth> tags from the XML. It's tedious to do if a lot of subtitles are badly placed, but it's easy if you need to modify only a few subtitles.
Ideally, I would like to do some kind of interactive editor with options to shift any subtitle along the X, Y and Z (depth) axis. But it's too complicated to do for my programming skills, and I doubt that many peoples need such a tool.
Thalyn
24th August 2014, 05:39
I don't have Winter Soldier, but if I can buy it, I'll have a look, especially at subtitle #5 of track #6.
It's not that important. More a curiosity than anything else - but it's not a bad movie if you like the comic book adaptations. If you watch the "Agents of SHIELD" series than it could be worth it, since it shows a lot of what season 1 eluded to.
Alternatively I could just upload the subtitles and the corresponding plane somewhere, so you can have a look at it. So much the better if I can find a tool which actually allows me to screenshot PowerDVD for a reference frame (any thoughts?).
You told me that "sub 5 is obviously further separated when viewed through PDVD". That may mean that PDVD doesn't skip the first and last frames when it computes the depth to use. If the Depth values in the 3D-planes for that frames (skipped by BD3D2MK3D but not by PDVD) are higher than the depth of the other frames, PDVD will use the higher values. Have you noticed if that subtitle appears just after or before a cut, or if the depth of the scene changes abruptly at the very beginning or end of the subtitle? If it's the case, we have the explanation. And we can discuss the interest to skip the first and lest frames if you wish...
I'm not 100% with my movie terminology, but the camera angle definitely abruptly changes shortly before (around half a second) subtitle #5 (starting from 1) comes up. I'm guessing that's the type of "cut" you're referring to. I wouldn't put it past PDVD to be taking the laziest possible approach to figuring out the depth, so it may well be that it's only taking the very first depth value for each sub and never looking at it ever again.
If that is the case, perhaps a user-selectable "ignore window" would be the easiest solution? Have it default to the current value, since it seems that is going to work most of the time, but allow the option to use everything for these fringe cases. Or just ignore Cyberlink completely, of course.
r0lZ
24th August 2014, 07:28
Hum, I don't like the idea to take only the first frame into account. In many cases, the depth value of the first frame is not the highest one, and if we use it blindly, the subtitle may be "inside" an object during a big part of the duration of the subtitle. Imagine, for example, an empty scene with only objects far away from the surface of the screen. The subtitle starts here. Then, a character enters the scene and is largely in front of the screen. The subtitle will be at a completely wrong depth, behind the character. (It's exactly the inverse situation of the case that BD3D2MK3D tries to avoid by skipping the first and last frames.) In my tests, I have often encountered similar cases.
But I agree that an (advanced and somewhat hidden) option to control the number of frames to skip at the beginning and end of the subtitle might be useful. If you set that option to 0, I guess you'll have the same result than PDVD. I will add it in the config file. (You will have to edit it manually, as I don't think I'll add that complex to understand option in the GUI.)
I don't know if it is possible to capture the output of PDVD. I guess it can capture a still image, but I suppose that it will save only the base view. And that the subtitle will not be included. Perhaps you can configure it in anaglyph, and take a screenshot with another program?
[EDIT] I was slightly wrong when I have explained that BD3D2MK3D skips 3 frames at the beginning and end of the subtitle's 3D-plane data. In fact, it skips 5 frames. Not a big difference, as 208 ms is too short for the brain to detect a problem anyway.
Now, I've added the option to change that setting in the config file, but I have modified slightly the logic. The frames to skip are the total number of frames of the subtitle divided by 6, and if that number is greater than the configured maximum margin value, that margin value is used. I had to do that to ensure that the number of remaining frames to take into account is always greater than 0, regardless of the duration of the subtitle and the (possibly high) margin value configured by the user. So, to remove completely the margin, you should set the max margin value to 0, and to skip a sixth f the duration of the subtitle at the beginning and at the end, you should use a very high number of frames, such as 1000. The default value 5 is recommended though.
I will release v0.44 soon...
r0lZ
24th August 2014, 09:05
# v0.44 (August 24, 2014)
# - It is now possible to define all subtitles of a subtitle stream as forced in tab 2.
# - Tools -> Convert subtitle to 3D (with 3D plane): New option "Force all subtitles as forced".
# - When a subtitle stream is converted to 3D or to another format and the "forced" option is enabled, all subtitles will have the forced flag set automatically.
# - When all captions of the BD subtitle stream are forced, the forced flag is now set in the _MUX_**_OPTIONS.txt files.
# - Added the director and date tags (if provided) in the global movie title of the mux options files.
# - Changed the charset of the Chapter files from ASCII to UTF-8 in the _MUX_*D_OPTIONS.txt files.
# You MUST save in UTF-8 format if you edit the chapter names and include special or accented characters.
# - Added the marginFor3DSubs option in the BD3D2MK3D.cfg file to control the number of frames to skip at the beginning and end of each subtitle to compute its 3D depth.
# - Fix: Bug when closing the output of MVCPlanes.exe when there is no 3D-plane in the MVC stream. (Thanks Gradius!)
# - Minor cosmetic changes.
# - Updated x264 to the latest version (v0.142.2453).
The main addition is the possibility to define a whole subtitle stream as forced. It's useful for the (not so rare) BD3Ds that have 2 streams in each language: one with all subtitles, and the other containing only the forced captions. When the "forced" option is set in tab 2, the subtitle stream will be considered as containing only forced subs, and the forced flag will be set to all subtitles during the conversion to 3D, and the conversion to 2D VobSub. (It's the BDSup2Sub option "--force-all set".) Similarly, the forced flag will be set in the _MUX_**_OPTIONS.txt files. A similar option has been added to the Tool -> Convert Subtitles to 3D (with 3D-plane). Use the preview to determine if a subtitle stream contains only forced subs.
The other changes are minor improvements or bug fixes. They include the UTF-8 charset for the Chapters files, and the new option to change the number of frames at the beginning and end of the subtitles, as discussed above. (Be sure to force BD3D2MK3D to save the config file before editing it if you want to change that value.)
As usual, download it here: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
frank
25th August 2014, 09:01
IanD:
..if Bino doesn't decode MVC, how did you play 3D to test it?
Because the 3D TV is remote, my testing requires a standard mkv I can play back through the TV via USB, The standard output of BD3D2MK3D is 3D hSBS or 3D hTAB, not MVC. So I have tested 3D with hTAB.
If you want to play 3D MVC via USB - forget it!
1. USB is definitely not designed for 3D movies (bit rates, sizes, decoders).
2. You have to use the crippled built-in player of the TV. Most of them can not even play MKV properly. No searching, no chapters, stuttering,...
The only way is HDMI and an external player.
If someone finds a way, I am all ears.
r0lZ
25th August 2014, 09:55
About Bino (http://bino3d.org/): Can someone confirm that it supports full-SBS or full-T&B? I can't test it here because I don't have a 3D graphic card.
Also, someone has tested SView (http://sview.ru/en/home)?
Note also that the KMPlayer (http://www.kmplayer.com/) can display SBS or T&B as anaglyph on a standard monitor with a non-3D graphic card. Not very interesting, but I use it sometimes for my tests. (Take care however. Currently, I refuse to do the updates, because that player, excellent in the past, is becoming very bloated with crapware.)
@Frank: I play my half-SBS movies from a HDD connected via USB to my Samsung TV UE40D6500 without major problems. It is true, however, that it cannot display the subtitles embedded in the MKV file, and it displays (badly) only the text subtitles outside of the MKV container. No chapters either. So, it's not a very good solution, but so far it's certainly the best 3D picture I have seen, and I have no stuttering problem. I have tried to play my SBS movie with my LaCie LaCinema (not 3D capable) connected via HDMI, but the resulting picture is not so good (poor contrast and less sharp details), there are stuttering problems, and it is a pain to have to configure the TV in 2D to browse the menus of the LaCinema, and in 3D each time a movie starts, so it's not a good solution IMO. I use it only when it is necessary to display the 3D PGS subtitles.
frank
25th August 2014, 10:46
Due to specs Bino can play full-SBS/full-TAB but I didn't test it. That input formats and more are listed.
Cool, the Samsung built-in player can play hSBS automatically? Unbelievable. Was it not Samsung which used it's own encrypted format for records on USB?
But I'm right about MVC and USB.
I'm looking for LG, because I'm satisfied with polarized 3D. Cheap eyeglasses, bright and sharp picture. And in a distance of >1,5 m you cannot see single lines. But I don't trust the built-in players. My LG beamer plays not even standard MKV properly, and the service is very bad.
Thalyn
25th August 2014, 11:11
I've had Bino using frame sequential input before. I haven't actually tested a full AB/LR but it's got settings for it, so I can only assume it works as well.
Will have a look into sView and report back with my findings.
On the subject of KMPlayer, take a look at PotPlayer. It's written by the original KMPlayer author but without all the excess baggage. That's been my media player of choice for a while now, in tandem with the LAV filters. It supports half and full of both AB and LR, can auto-switch if you name the file appropriately (eg -abq is half AB) and also has a variety of output modes; though sadly it doesn't support sequential input.
*Clarity: AB = Above/Below (Over/Under), LR = Left/Right (Side-by-Side)
r0lZ
25th August 2014, 11:22
@Frank
Yes, the Samsung player can play Half-SBS and Half-T&B. It can even recognize the 3D format automatically if the frame-packing option has been correctly set when the video has been encoded with x264 (and BD3D2MK3D sets that flag). However, it refuses to play full-SBS or full-T&B, and it stretches non-16:9 videos to occupy the full screen (so movies shot in Cinemascope and encoded after having cropped the black borders are stretched vertically). And, as I wrote above, it has terrible limitations for the subtitles and it ignores the chapters.
Yes, Samsung uses its own encryption to record the digital TV channels to a dedicated hard disc (or partition) formatted with the XFS file system (the excellent Silicon Graphics file system, but very difficult to read under Windows). But the Samsung encryption has been cracked, and if you have a rooted TV connected to your LAN, it is easy to decrypt the recordings via FTP. Anyway, the user's hard disc (or partition), with AVI, MKV, or MPEG movies, in 2D or 3D can be formatted in NTFS and of course the movies are not encrypted. Since my TV has 3 USB inputs, I use 2 discs: one for the recordings, and one with my 3D and 2D movies.
My TV can play perfectly all MKVs I have tested so far, but it is sometimes very slow to start the playback (especially the first time the file is opened, because it has to scan the file to generate its 5 thumbnails). Also, it doesn't support all codecs. It doesn't handle h264 level 5 or greater (but it is happy with level 4.1 or 4.2), and it doesn't recognize AAC audio and DTS-HD. (IMO, the impossibility to play AAC is the major codec limitation.) It plays AC3 and DTS 5.1 without problem.
The active 3D glasses are very good but somewhat expensive and heavy. In the past, the Samsung glasses did not have a good reputation because they used infrared signals, not precise enough, but currently they use bluetooth signals and they work very well. However, I must admit that the passive polarized glasses are certainly better. I bought my TV for its excellent 2D quality (much better than LG IMO), and the quality of the 3D was my second criteria. For the 3D, LG is probably a better choice.
r0lZ
25th August 2014, 11:51
@Thalyn
I have tested PotPlayer in the past, but I did not like it much. It was still in an early stage, so I may change my mind now. Thanks for reminding me to check it!
r0lZ
25th August 2014, 12:18
Important bug fix for 3D subtitles
Thalyn has discovered that the BD3D2MK3D method to apply the 3D depth extracted from the 3D-planes was wrong. (See here (http://forum.doom9.org/showthread.php?p=1690724#post1690724).) The depth value extracted from the 3d-plane was correct (and the error was not related to the frames skipped at the beginning or end of the subtitle as suggested here (http://forum.doom9.org/showthread.php?p=1690754#post1690754)), but I have used a wrong method to apply the depth to the original 2D subtitles.
When a subtitle is in front of the screen (with a positive depth value), the subtitle of the left view must be shifted to the right, and the subtitle of the right view must be shifted to the left. It's exactly the opposite when the depth is negative and the subtitle appears behind the screen.
In the previous versions of BD3D2MK3D, I have wrongly assumed that the number of pixels to use for the shift was the absolute value of the depth divided by 2 for each view. With that formula, the difference (in pixels) between the two pixels was exactly the depth value. But that was wrong. The number of pixels to use is the depth value for each view, and the total difference is therefore the depth value multiplied by 2. The effect of the bug was that the subtitles appeared too close to the screen that it should.
With the new version of BD3D2MK3D, the values saved in the <Depth> tags of the temporary 2D XML file are now the depth values from the 3D-planes multiplied by 2, so that the result of the conversion to 3D is now correct. As a consequence, all <Depth> tags are now even numbers (but if you edit them manually, you can use odd depth values, if you need more precision.)
That means that you should redo the conversion of your 3D subtitles if you want correct depths. Sorry for that! Note that you should not convert a XML file with <Depth> tags already inserted by a previous version without using the 3D-plane, as the wrong depth values will be retrieved from the XML and not computed with the right formula.
Thanks to Thalyn for the discovery of that important bug, and for the numerous tests he did to confirm that the current method is the right one! Since I don't have a 3D graphic card, I was unable to do that tests myself (hence the origin of the bug).
(BTW, his tests have also confirmed that PowerDVD has also a bug with the placement of the 3D subtitles, systematically off by 2 pixels.)
# v0.45 (August 25, 2014)
# - Fix: The formula to compute the depth value extracted from the 3D-Planes was wrong. (Thanks Thalyn)
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
r0lZ
25th August 2014, 12:30
Sorry, please wait before downloading v0.45. I have introduced a new bug! I will fix it and upload v0.45 final soon...
[EDIT] Fixed. The download is now valid.
frank
25th August 2014, 12:35
Thank you for your very useful info of devices. :)
For now I'll stick with my AOC d2367Ph monitor; IPS, mat, polarized 3D, 250 cd/m2, 2xHDMI, VGA (only 220 EUR!).
I'm using it 90 % with my Notebook, so I can just read 2 big DIN A4 pages. The second HDMI I can connect with the sat receiver.
r0lZ
25th August 2014, 12:46
OK, bug fixed. You can now download v0.45 (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z).
frank
25th August 2014, 12:49
My reference is Avatar. And I thought the depth was ok...
r0lZ
25th August 2014, 13:05
Yes, I did my tests mainly with the forced subtitles (in the Navi language) of Avatar, and most of them were OK. It's why I have deduced that the method was correct. :-(
I will re-encode Avatar with the new method to see if the result is better.
Thalyn
25th August 2014, 16:21
Unfortunately I don't have Avatar to check it myself, but I am running some more titles tonight with a handful of forced subs which I'll check tomorrow against the originals (using TotalMedia Theatre for reference, due to the aforementioned PowerDVD inaccuracy). If they work out - and I have no reason to doubt that they will - than I'll put it to task on a few movies with subtitles from start to finish. Naturally I won't check all 3000+ lines when I do that but it should still be a good sample size for confidence.
If nothing else, though, I can say that the new formula works perfectly for the forced English subs in both Captain America movies and The Wolverine when comparing the results to a PS3 or TotalMedia Theatre, and the math fits for World War Z (which is currently running so I'll know for sure tomorrow).
frank
25th August 2014, 21:00
Sorry, Avatar test failed!
If you select the forced subs
4610 Subtitle:Deu PGS (3D-plane 2), forced captions onlythen it creates ALL 1465 subs in folder 00800.track_4610.Deu_forced.3D_2D and set it to forced.
Then I used the tool Convert Subtitles.. with forced ticked and it created successfully 88 forced 3D subs BUT in the folder 00800.track_4610.Deu.3D_2D and the file 00800.track_4610.Deu.3D.sup.
r0lZ
25th August 2014, 23:30
Strange. The Convert Subtitles tool uses the same code than the full conversion of a 3D movie. Perhaps I have made a mistake in the calling arguments. I will have a look tomorrow. ..
Anyway, that problem is not related to the fix of the wrong depth. I may have introduced that bug when I have added the stuff to declare all subtitles in the stream as forced.
[EDIT] Oh, yes, I think I understand the problem. It is probably trivial to fix it. But you'll have to wait anyway, I'm too tired to do it now...
Thalyn
26th August 2014, 07:56
Well, last night's tests were a rousing success. And Tai Chi 0/Hero (Mandarin audio) were nice and easy ones to double-check - they had fixed-depth planes. Turns out I'd previously done them with a fixed depth of 6 as a result of PowerDVD's output which, as r0lZ and I discovered, is exactly 2 short of where it should be. v0.45 gave the correct 8 from start to finish. I'll take a look at The Guillotines when these are done but I have no doubts left at all.
Curiously, is the 3D Avatar anything like the collector's 2D version? I've noticed it has a "forced" subtitle track, but the timestamps on that track are completely wrong (or they were when I tried to use it). That meant all the Na'vi subtitles would have been and gone within the first few minutes if I used it. Wound up having to manually scour the full sub track (there's a lot of dialogue in that movie!) and pick out the Na'vi tracks by hand, using the forced track as a counter to make sure I got them all.
I also gave sView a look. It seems very promising - easy enough to set up, albeit a little vague without the instructions, and it gives good results. It is lacking a bit of "polish" though. Just little things, like being able to double-click the window to toggle fullscreen (alt+Enter doesn't even work), chapter support (at least chapters as defined by MP4Box) and it has limited seeking functions. But it works, seems to run nicely and gives pretty good output - at least with a passive screen.
r0lZ
26th August 2014, 08:15
Unfortunately, most Asian movies have 3D-planes with a fixed depth. But it is nice to know that BD3D2MK3D process them correctly. (I'm currently fixing the issue with the forced subs and I will release v0.46 soon...)
I will try Avatar in a moment (to test if the fix for the forced subs works as expected). If I remember correctly, the Navi subs are in the main subtitle streams, but with the forced flag. (I used the French streram, from the French B zone edition). I haven't noticed problems with the timings.
Thanks for your report about sView.
r0lZ
26th August 2014, 10:07
Here is the new version, that should be stable now. At least I hope so! ;-)
The bug with the forced subtitles reported by Frank here (http://forum.doom9.org/showthread.php?p=1691055#post1691055) should be fixed. I have just demuxed Avatar and the forced subtitle stream contains only the forced subtitles. :-) However, I have not made many tests, and there might still be some problems related to the forced subs. Please let me know if you encounter a problem.
Note that the file name of the subtitle stream has the "_forced" extension only when the stream with the label "forced captions only" in tab 2 is demuxed. The "_forced" extension is not added for a regular stream when the user ticks the "forced" option in tab 2. It's not a bug. The "_forced" extension means "containing only the forced subs extracted from a regular stream".
# v0.46 (August 26, 2014)
# - Fix: Bug introduced in v0.44: When demuxing a subtitle stream with forced captions only, all subtitles were demuxed. (Thanks Frank)
# - Rmoved the bell ringing sometimes at the end of the extraction of the 3D-planes from the MVC stream.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
r0lZ
30th August 2014, 08:32
This one is not a bug fix! ;-)
It contains several improvements. Notably, the 3D planes are now saved in the MKV, so that you can redo the 3D conversion of your 2D subtitle streams without having to demux the whole BD again. That may be useful, for example if you need to fix some subtitles with wrong depth values or if you want to include a new subtitle file. Of course, if you want the possibility to convert the 2D streams later, you must select the option to mux them in 2D as well as in 3D (the "both" option in tab 2). Note that the 3D-planes are extracted from the MVC stream only when at least one subtitle stream must be converted to 3D, because it's a relatively long operation. If you have not selected any stream or if you mux them in 2D only, the 3D-planes are not extracted, and, of course, not included in the MKV file.
I have also added a new tool to extract the attachments from the MKV files (because MkvExtractGUI2 has a bug that has never been fixed, and cannot extract the attachments).
There is also another new tool to extract the non-forced subtitles only from a XML subtitle file (in 2D or 3D). I have written it because I have hardcoded the forced subtitles of Avatar on the video, but I wanted to keep also the full stream. Since it doesn't make sense to display the forced subtitles over the hardcoded ones, I needed a way to remove them. Since that may be useful to others too, I have implemented it as a new tool.
The other improvements are minor things. For example, you can now check if a new version has been released, and when it's the case, you have the option to download it.
# v0.47 (August 29, 2014)
# - Added the information about the subtitle streams and their 3D-planes in the 3D-planes.log file.
# - The 3D-Planes files are now saved as a ZIP attachments in the final MKV file.
# - New Tool: Extract Attachments from MKV file. (Requires mkvextract.exe or the MKVToolnix package.)
# - New Tool: Extract Unforced subtitles from XML/PNG. (Handy to hardcode the forced subs and keep the other ones in a muxed stream).
# - Added "Check for update: in the Help menu
# - Tool -> Convert Subtitle to 3D (with 3D plane) requests now the language name when converting a SUP file and the language code is not present in the file name.
# - Added a "?" button in tab 2 to display help on the DTS conversion to AC3 and to check if the ArcSoft DTS Decoder is installed and working properly.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
Thalyn
30th August 2014, 12:07
You might need to put up a bugfix for that one - when it comes up asking to select the language for the resulting generated 3D subtitles I'm having trouble interacting with the new little window. Basically it's not accepting any input aside from moving it around by dragging the title bar, and even while doing that it's behind the window for all the other settings. It seems to be happier the second time around, though, and that includes simply hitting the "Convert subtitles to 3D..." button again and dismissing the error.
On a slightly different note, I've found another curiosity. I've been running through the last of my movies with forced subs and occasionally I'll see a "UndefinedFrameDepths" in the XML. Fairly obvious in function and the number following it indicates the number of frames the subtitle is visible for which don't have a defined depth. Thing is that often seems to return a 0 output, where a 0 isn't necessarily correct when viewed from the original disc. The first two subtitles in Immortals are correctly set to 0, but Cars 2 has a 0 where a 14 should be and John Carter has a 0 where a 10 should be. Setting the margin to 0 only affected Cars.
If you combine that with the behaviour of TotalMedia Theatre, which actually changes the depth while the sub is still displayed, I'm wondering if there's actually some kind of "rolling" depth - each subtitle is displayed at the depth last encountered before it goes up if a new depth wasn't set on the first frame. This would also fit in with most players given they don't even bother displaying a "soft" subtitle in the event you skip the first frame it's displayed, suggesting they don't give two hoots about what happens after that first frame.
To that end, I've uploaded the John Carter forced sub track and corresponding planes file. Sub #30 ("Let Sola have a hatchling.") is the one that gives a 0 from the tool but visual inspection suggests a 10 (or there-abouts) is more appropriate.
https://mega.co.nz/#!c8EiWBhL!8QYi_HspP3CoPNMiTUcSA8jP9MANRHlxRWdypB99nTI
r0lZ
30th August 2014, 12:53
OK, I think I've fixed the bug of the language selection window behind the others. Can you confirm that you had that problem when doing a complete conversion of a BD to 3D (and not when converting a subtitle with the "Convert subtitle to 3D" tool) ? It is strange that you had that dialog when converting a BD. Normally, it is used only when the language is unknown, and when a BD is converted, the language is known, because it is retrieved from the MPLS by tsMuxeR. Therefore, the window should not be opened.
Also, BD3D2MK3D assumes that the language code present in a IDX or XML file is correct and doesn't ask you to confirm it. Therefore, the window should be displayed only for BD SUP conversions. And even in that case, BD3D2MK3D tries to find the language automatically with the file name. For example, with this file name, it assumes French: 00800.track_4609.Fra.sup. And if it doesn't find the ISO language code in the file name, it searches also for the full name of the language (in English only), like in this example: subtitle_French.sup. It's only when all that methods fail that it displays the little dialog.
BTW, that dislog is also used when you click the [...] button in Settings -> Automatic streams selection. In that case, it should work normally. Can you confirm that too?
I will have a look at your subtitles. Normally, a subtitle depth is considered undefined if all depth values in the 3D-planes for the frames corresponding to the "window" have the value 0x80 (or -0 once translated into depth value). Many BDs have 32 3D-planes, but most of them are made of undefined depths only, and are therefore deleted after their extraction, because they are totally useless. Some non-empty 3D-planes have some values with undefined depths, but normally they should be present only in frames without subtitles. When there are defined and undefined frames, BD3D2MK3D uses of course only the defined depths to compute the final depth. Of course, when it finds only undefined depths, it cannot compute the right value, and assumes 0. It is not possible to change the depth of a specific subtitle when it is displayed, therefore BD3D2MK3D uses always the highest valid depth (not counting the undefined -0 values). I wonder why other programs assume a depth of 10 if all depths are undefined. Maybe it takes the last (or next) valid depth encountered in the 3d-plane? Anyway, I'll have a look right now...
r0lZ
30th August 2014, 13:47
OK, no need to reply to my questions in the post above. I have found and fixed the problem. It was happening when using the Tool and (probably) not when processing a whole 3D BD. There was no problem when using the language selection dialog from the Automatic Stream Selection setting dialog. Thanks for having submitted that bug!
I still have to understand what's happening with the wrong depth of the 3D subtitle, and I will release v0.48. In the meantime, I have deleted v0.47. If you want to download BD3D2MK3D, please come back in a moment...
r0lZ
30th August 2014, 14:52
After a quick analyse, I see that the depths of the frames of subtitles #29 and #30 are indeed undefined. There is a lot of undefined values before that frames, and I don't think the player takes its value from the last valid frames. However, soon after the frames of that 2 subtitles, there are some frames with a depth of 7. Now, I must understand why they are used by other programs and not by BD3D2MK3D. That may be because BD3D2MK3D uses non-drop time codes, and the other programs use drop frames. But that's strange. I have closely verified with several BDs, and the cuts in the movies correspond exactly with abrupt changes in the depth values of the 3D planes, so I have supposed that my method is correct. Perhaps there are exceptions.
To easily debug, I have modified the UndefinedFrameDepths tag to display also the frame numbers (as computed currently by BD3D2MK3D). Here is what it displays for subtitles #29 and #30:
<Event InTC="00:34:31:15" OutTC="00:34:32:15" Forced="False">
<Graphic Width="209" Height="54" X="853" Y="822" Depth="0" UndefinedFrameDepths="15, frames=49669 to 49693, window=49674 to 49688">temp_2D_0029.png</Graphic>
</Event>
<Event InTC="00:34:32:20" OutTC="00:34:34:10" Forced="False">
<Graphic Width="658" Height="54" X="629" Y="822" Depth="0" UndefinedFrameDepths="29, frames=49698 to 49736, window=49703 to 49731">temp_2D_0030.png</Graphic>
</Event>
If you examine the 3D-plane with an hex editor, you'll see that the depths are undefined from frame 38750 up to frame 49728. Then the depth is 7 in frames 49729 to 49782 (54 frames), and they are followed by a lot of 4s.
So, I guess that I have to compute that frame numbers using drop time codes. They will probably be correct. But I have to understand when I must use drop time codes and when not. It's probably in the header of the 3D-planes, but currently BD3D2MK3D ignores it. Anyway, that will be a relatively important modification for me, and I think I will release v0.48 immediately, even if that problem is still not fixed.
Damn! I HATE that crazy NTSC frame rates. We are in the 21st century, and continuing to use them for digital HD (and especially forcing the whole world to do the same thing) is probably the most stupid thing the designers of the BD standard have made! It would have been so simple to simply use the film rate of 24fps! It's what most European 2D BDs do, but it's prohibited for the 3D! Unbelievable! :devil:
r0lZ
30th August 2014, 16:17
Well, the short tests I did are not sufficient to be sure of the method to use, so I will have to make numerous tests with my collection of BD3Ds. That will take much time, so I have decided to release immediately the bug fix for the problem of the language selection window introduced in the latest version.
But the problem of the wrong depth values is still NOT fixed. You may want to wait some days if you need to do conversion with 3D subtitles. In the meantime, v0.48 should work fine for the conversions without subtitles or with 2D subtitles only.
# v0.48 (August 30, 2014)
# - Fixed a bug in v0.47b1 with the new language selection dialog appearing beneath the other windows and impossible to use and close.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
Thalyn
31st August 2014, 05:13
While I know accuracy is important, I can't help but feel I should apologise for finding these bizarre exceptions. I don't like creating extra work for people who are already putting in so much effort unless it's absolutely necessary, and no-one can argue you haven't gone above-and-beyond with this tool.
Knowing that the planes are just a basic hex list (I didn't even think to look!) even disproves my theory of a "running" plane, since the last defined value at that point would have been a 2 where my pixel-counting estimates suggest it should be a 5 or 6 - and that previous 2 would then also have been applied to sub #29 which is actually rendered as a 0 (but could be a 1 since I'm verifying with PDVD for now as my TMT is only a trial and I can't always borrow a PS3). Gah! At least it only seems to be 1 out of about 50 subtitles that are actually negatively affected by this. Still means its worth manually checking ones which report the undefined depth just to be sure, and that's still a lot easier than having to do every single one of them by hand.
Plus side, the language selection dialogue worked just fine.
r0lZ
31st August 2014, 09:18
Don't worry. I appreciate your help, and I ask you explicitly to continue to notify me of the discrepancies or bugs you find. Especially with the problems related to the subtitles, that I can't check easily due to my lack of appropriate hardware. Each time I want to check the accuracy of the 3D subtitles generated by BD3D2MK3D, I have to hardcode them on a video, and of course, that means that I have to recompute the whole movie with x264. It's a long operation, and therefore I can't do many tests. For that reason, I need the help of everyone.
Anyway, I should have examined the Depth values in the temp 2D XML files with more attention. The fact that there are some warnings about undefined depths when converting subtitles coming from the original BD is an evidence that something goes wrong. I have just finished to encode Avatar during the night, but this time I've used a frame rate of 24fps instead of 23.976 to translate the timecodes of the subtitle stream to frame numbers. In other words, I have assumed that the subtitle streams (at least the XML streams converted from the original SUP file by BDSup2Sub) use drop frame timecodes. If that assumption is correct, the result should be slightly better than my previous encodings, and the obviously wrong depth of a couple of subtitles (that I have previously attributed to slight authoring errors) should be correct now. I still have to watch the movie, but if it's the case, the fix is probably easy. It is sufficient to modify the frame rate in my code. But I must be sure that the fix works for every movie, and in other words that there is no "hidden" drop frame flag in the header of the 3D planes. As you can see here (http://forum.doom9.org/showthread.php?p=1656564#post1656564), Bigotti5 helped me much to decipher the content of that header, but there are still unknown bits in the header. It is possible that we don't have yet the information necessary to correctly compute the frame numbers if the frame rate to use depends of the BD.
Anyway, first things first. I will watch my last encode of Avatar and if it is convincing, I will release a new beta soon. Then, you will have to test if the 3D subtitles are correct.
BTW, you can already do some tests at 24fps if you wish. Use 3DBD2MK3D to generate the project, but re-generate the 3D subtitle stream(s) with the Convert subtitles to 3D (with 3D-planes) tool. In the tool's dialog, simply change the frame rate from 24/1.001 to 24, and overwrite the original 3D subtitle stream. You can then encode normally (or, if you have already encoded the h264 stream and you don't need to hardcode the subtitles, just launch the _MUX_3D.cmd batch to generate the final MKV). And enjoy the movie, hopefully with good 3D subtitles. :-)
Thalyn
1st September 2014, 06:27
I suppose there is also one other possibility we have to consider: whether tsMuxer is returning the correct plane or not. All the correction in the world won't make a lick of difference if we're using the wrong input data, after all.
On the same note, I'm going to have to look into getting a second opinion for my own tests. Given previous experience we also can't assume that PowerDVD is using the correct plane so I'll need a more permanent option for double-checking the results than a 15-day trial of TMT or a curious brother.
r0lZ
1st September 2014, 09:35
I think tsMuxeR does the job well. Usually, subtitle stream #0 uses the 3D-plane #0, subtitlle #1 use plane #1, and so on. That seems coherent. However, in some BDs, there are several MPLS that references exactly the same M2TS file(s), with the MVC stream (therefore it's a 3D MPLS), and with the same audio and subtitle streams, but without the 3D-planes information, or with a different 3D-plane information. For example, for a movie with 3 subtitle stream, the first MPLS could assign 3D-planes 0, 1 and 2, the second 1, 2 and nothing for the third subtitle stream, and the third MPLS could have all 3D-planes set to "zerro" (sic).
Also, I still don't know what means that "zerro" 3D-plane. It doesn't seem to be 3D-plane #0, and currently BD3D2MK3D treats it as undefined. But since there are also subtitle streams without any indication for the 3D-plane, there must be a difference. I suppose that when tsMuxeR shows nothing, that means that the info is missing from the MPLS, and when it shows "zerro", that means that it has found the info. The question is, why is it decoding that info to "zerro"?
When there are several MPLS referencing the same 3D content, BD3D2MK3D displays by default only one MPLS. (You can force it to display all 3D MPLS with the "Show all 3D playlists" button in tab 1.) And it tries to show the MPLS with the "best" 3D-planes description: the first one with all subtitles with a 3D-plane. (The "zerro" info being assimilated to "missing".)
Note also that on some 3DBDs, there are also subtitle streams in the M2TS file of the dependent view (MVC). They are often exact copies of the streams present in the AVC, and I wonder what is the benefit to include the same streams twice. Note that eac3to does not show that "secondary" subtitle streams, but it fails when trying to demux the main streams, because that additional streams have the same ID than the corresponding streams in the AVC. Therefore, it mixes two streams together, and issues a lot of error messages about overlapping timecodes. The resulting demuxed streams are unusable. (tsMuxeR 3D doesn't have that problem.)
Sometimes, like in Avatar, there is only one additional stream in the MVC, and it is a full-size image (without transparency) with a text telling something like "Put your 3D-glasses now" during the whole duration of the movie. I don't understand why they need that subtitle in the main movie. IMO, that message should be displayed only before the movie begins. Anyway, that subtitle has no 3D-plane information, and I guess it's normal, since it is totally opaque.
I have seen also sometimes movies with only 1 subtitle stream, but there are 2 non-empty 3D-planes in the MVC. The first one (#0) has a fixed depth, and 3D-plane #1 has valid depth values. The subtitle stream is correctly associated with 3D-plane #1. I wonder why the authoring program has created that useless 3D-plane #0, but anyway, the info of tsMuxeR is correct.
So, in short, I think we can trust tsMuxeR, but I would like to understand why it displays "zerro" sometimes, and I'm not totally sure that the logic used by BD3D2MK3D to determine the "best" MPLS to show in the case of several identical playlists is correct, although, as far as I know, it is always coherent.
Thalyn
2nd September 2014, 08:29
That all being the case, I think I have a new hypothesis as to what's happening; again using John Carter as reference.
I'm wondering if there's some kind of plane "hierarchy" where those frames defined as 0x80 (effectively nothing) actually use a different plane to source their information from. Using TMT to double-check for the correct offsets I have determined that subs 29 and 30 of track 10 have depths of 1 and 6 respectively. Using the frame numbers from your earlier post the assigned plane 7 has those locations as entirely 0x80, but if I check the other files I find a 1 and 6 present at what appears to be an appropriate location in plane 1 (no other planes have these values nearby). Plane 1 is used for subtitle track 9, which is the one right before the one I'm using.
In saying that, the frame numbers don't exactly match up - the movie frame is before the offset I'm checking by 52 frames. I'm taken to believe there's actually a small delay at the beginning of most streams used in video to allow for syncing which could explain the offset. My napkin math doesn't quite match up with your tool either so there's obviously a discrepancy I'm not taking into consideration, so that could be expected (napkin math puts the difference at 63-64 frames depending on rounding). The 0x06 entries start at offset 49743 in the plane file while TMT shows sub #29 changing depth at the very end.
The question is whether this hierarchy is simply a case of "If not found, use previous track's plane (and keep going back as necessary)" or "If not found, use pre-designated plane" - answering which would require more knowledge of how the MPLS structure works than I have. I'm inclined to believe it's simply a "previous track" deal myself but I have nothing over a gut feeling to back that up. Both seem wasteful since 0x80 takes as much storage space as the correct value, unless the planes are compressed using a system like RLE8 in which case it would be slightly more storage efficient.
This may also be what's indicated by a "zerro" plane - one which simply references another in its entirety, in the event it doesn't actually mean "all zeros". Though why it isn't just assigned to the other plane directly is again confusing.
Unrelated, I don't recommend TMT for 3D playback. At least, not if you have a passive screen - it produces the same aliasing I observed when simply taking alternating scanlines for each stream, yielding a watchable-but-slightly-unpleasant result.
*ed: A simpler but possibly still correct way for these 0x80 subs to get a depth could be just a simple plane "stack". JC, for example, has 10 subtitle tracks with the one I'm wanting to use conveniently being the last. To get the final depths it could just load all the depths starting from the first subtitle track and ending with the requested one, overwriting the depths as it goes with 0x80 meaning "keep the existing value". As such it would load (in order) plane 8, 0, 5, 9, 2, 3, 6, 4, 1 and then 7. It seems wasteful and inconvenient, but so is having undefined depths to begin with.
r0lZ
2nd September 2014, 11:14
Hum, interesting theory, but I don't think it is correct, because the method is unnecessarily convoluted. Also, if your theory is correct, that means that subtitle track #0, usually associated with 3D-plane #0, will have only a single plane to retrieve its depth values, but subtitle stream #1 will have 3D-planes 1 and 0, and so on up to subtitle stream #31, that will have the possibility to find its depth values within 32 different 3D-planes. That's obviously unfair for the first streams (usually the most important ones). OK, you suggest other methods, but again there is no evidence that something like that is supposed to happen, and if it's the case, we have no way to determine the correct order anyway. But I'll remember the idea. When converting a subtitle that does not comes from the original BD (for example when it's a SUP converted from a SRT downloaded from the internet), it might be a good idea to use several planes to avoid undefined depths. I may implement that idea later, but for the present, I want to solve the problem of the original subtitles first.
In fact, I don't think your theory is correct mainly because I did some new tests and modified my code accordingly, and I think now that everything works as expected. It is still necessary to confirm that the new code works in all cases, but I'm confident.
I have written a new function to analyse the content of the 3D-planes, and output the "shots" in human readable form. That means that for all series of identical depth values, it outputs the frame number corresponding to the start of the series, the depth value, and the number of frames with that depth value, before the next "cut". My idea was that normally, the depth values within the 3D-plane must change abruptly when there is a cut in the movie (and the two shots have different depths). I have then compared the frames of the beginnings of the shots with the shots of a little bonus video from T.S. Spivet. My theory is certainly correct, because the frame numbers of the changes are similar in the 3D-planes and in the clip. However, the changes in the 3D-planes comes systematically 3 frames before the cut in the movie. I don't understand why, and I still have to verify if similar discrepancies exists with other 3DBDs. But the important thing is that the shift is identical at the beginning of the clip, and near its end. That proves simply that there is a 1:1 relationship between the depth of the shots of the movie and the 3D-planes, and that there is really 1 byte per frame in the 3D-plane. It's not something new, but it's a confirmation that we are correct up to that point.
So, I have decided to modify the output of the temp 2D XML file produced when a 2D stream is converted to 3D. In addition to the <Depth> tag (and the optional <UndefinedFrameDepth> tag), I have added a <Debug> field with the start and end frame number of the subtitle (as computed by BD3D2MK3D), the start and end frame of the "window", and the content of the 3D-plane within the window in human readable form. Then, I have played an AVS script with the movie and the original SUP stream, frame by frame with AvsPmod, and I have verified if the subtitles appear and disappear exactly at the frame numbers printed in the <Debug> field of the XML (and I have tried to determine if the depth value is also logical, although I have not measured precisely). That test confirms that the method used until now to compute the frame numbers WAS WRONG. The problem is that in the XML and IDX files, the start and end times of the subtitles are expressed in timecodes and not in frame numbers. Since I need the frame numbers to retrieve the depth from the 3D-plane, it is necessary to convert them. The conversion used the real frame rate (23.976, or more precisely, 24/1.001). My error was to assume that like in the DVDs, the frame rate to use was the "non-drop timecodes". As a consequence, the conversions to frame numbers were wrong, and the error was important, mainly near the end of the movie. I have of course tested with "drop timecodes" (and assumed therefore a frame rate of 24fps) and with that method, all frame numbers printed in the XML match exactly the frame numbers I saw when I have played the AVS. Also, all subtitles of the short movie I have used to test have now perfectly defined values, and one and only one depth. I'm almost sure that all problems came from that error.
Note that computing the frame numbers at 24fps is NOT the same thing as converting the whole subtitle stream at 24fps. The conversion of the subtitle must still be made at 23.976, but the computation of the depth values from the subtitle's timecodes must be done at 24fps. It is therefore not sufficient to overwrite the original 3D subs with a new conversion made with the conversion tool at 24fps, as I suggested earlier.
I have also encoded Avatar with all French subtitles hardcoded on the video, but I have not watched it yet. IMO, the result will be perfect, and that will confirm that the new method is correct.
The last annoying thing is that shift of 3 frames I have noticed with the cuts in the 3D-planes. Since that 3 frames are less than the default value for the "window" (5 pixels), it has no visible consequence. But if the shift is greater than 5 frames in some BDs, I will have to understand why that happens, and how to fix the problem. But I think that it's probably a minor authoring bug, or perhaps a deliberate shift, because I have noticed also that no subtitle appear directly after a cut in the movie. There is always at least 3 frames between the cut and the appearance of the subtitle. Same thing before the cut. The subtitles end always at least 3 frames before the cut. So even with a window of 0, the shift has no consequence. It remains that that shift is difficult to understand and somewhat annoying. I will therefore do some new tests (and watch Avatar) before releasing the new version, just to be sure. Then we will have to verify if the new method works in all times, and that there is no "drop vs. non-drop" flag hidden somewhere in the header of the 3D-planes. That means that it will still be necessary to verify carefully the conversions of the subtitles to 3D. It's why I will not remove the debug code from the next versions, so that everybody will be able to use the tools to verify...
Thalyn
2nd September 2014, 16:45
I'll definitely defer to your wisdom regarding my theory. I'm nowhere near as experienced with all of this as you are - I'm just a bit of a math nut who can find patterns (sometimes where there isn't even meant to be one to find).
The 3 frame shift does actually make sense of what I've been seeing in TMT, however. A lot of times the subtitle will suddenly adjust depth just before it stops being displayed (another thing which makes it less-than-desirable for 3D playback) - and that jump corresponds to the depth of the following subtitle. Presumably that also corresponds with a scene cut but I can't actually say I've paid that much attention to it. Because they don't seem to like frame-by-frame viewing I've never been able to get an accurate count of exactly how long that shift lasts but 3 frames isn't outside the realm of possibility. Sadly, I've no way to determine whether any have ever been over 5 because it really is just a fraction of a second, plus it is a little jarring to watch.
I look forward to testing the results of your new methods. A couple of titles have given me slightly off results so far, soI've got a baseline to test against.
r0lZ
2nd September 2014, 17:31
You can preview a MKV movie frame by frame with a simple avisynth script:
FFMpegSource2("movie.mkv")
Info()
The FFMpeg avisynth plugin must be properly installed, and the script takes ages to start the first time because ffmpeg has to scan the whole MKV file to generate its ffindex file. But when it has started, you can accurately play the movie frame by frame and see the frame number in the info. I use the AvsPmod (http://forum.doom9.org/showthread.php?t=153248) GUI to play the script and I use exclusively the cursor keys, or I type timecodes or frame numbers for "big jumps". That works pretty well. (However, you cannot seek with the 3D scripts generated by BD3D2MK3D due to the lack of the seek support in the current MVC decoders, so you have to do your tests with the encoded MKV, or with the 2D M2TS.)
In my latest tests (after the fix explained above), I have never seen "cuts" inside the depth values corresponding to a particular subtitle. So, maybe your test is biased by the bug of the current version, or you have a movie with a larger shift than the 5 frames of the default "window". Anyway, I guess that problem will be solved with the new version...
r0lZ
10th September 2014, 10:47
Finally, the fix for the 3D-planes bug is here. It was difficult to fix it, because in addition to the wrong frame rate used previously when converting the timecodes of the subtitles to frame numbers (23.976 fps non-drop frames instead of 24 fps drop frames timecodes), Thalyn has discovered a big bug in the output of tsMuxeR. I have had to implement a workaround for that bug, and that was not easy, difficult to test, and somewhat tedious. But this version should work well and has been extensively tested by Thalyn and myself.
The problem of tsMuxeR is that it retrieves the streams in the M2TS (or SSIF) files rather than in the MPLS file. That's normal for a demuxer, because the MPLS does not always lists all streams present in the M2TS files. But the drawback is that tsMuxeR shows the streams in the order of their IDs, and not in the order of the MPLS. In the other hand, all players shows the audio and subtitle streams as they are in the MPLS, and not necessarily in the order of their IDs. It was therefore difficult for the user to check what streams he wants to include in the MKV with the preview, since the streams are not necessarily presented in the same order. But that's not the main problem.
As you know, tsMuxeR shows also the number of the 3D-plane associated with a specific stream. To properly convert the subtitles to 3D, the right 3D-plane must be used. But the 3D-plane numbers are stored in the MPLS file, in the order of the MPLS, and not in the order of the IDs. Hence the tsMuxeR bug. It assigns the 3D-planes sequentially to the streams, but since the streams are not in the order of the MPLS, the corresponding 3D-planes are sometimes completely wrong!
Currently, BD3D2MK3D uses a workaround to restore the audio and subtitle streams in their correct order and to re-assign the 3D-planes to the right subtitle streams. I have the intention to write myself a complete parser of MPLS files, but I need some time and the info needed is difficult to get (hence this thread (http://forum.doom9.org/showthread.php?t=171140)). Since I wanted to quickly fix the 3D-plane bug, I have preferred to implement a temporary workaround. I will do the parsing myself in a forthcoming version.
Luckily, with the previous versions, the 3D-planes are usually correctly assigned to the subtitle streams, because the order of the subtitle streams in the MPLS is often equal to the order of the IDs. But unfortunately it's not always the case. So, if you have created 3D subtitles with a previous version of BD3D2MK3D, it may have used a wrong 3D-plane, and the depths of the subtitles can be more or less wrong. You may want to verify if the subtitles are correct with the new version, and convert them again if needed.
To see if a subtitle had a wrong 3D-plane with an old version, open the BD in the new version, select the playlist, and examine the list of subtitle streams in tab 1. You will see strings like "Stream #0", "Stream #1", "Stream #2", "Stream #3"... That numbers correspond to the order of the IDs, used by tsMuxeR. If the MPLS file lists the streams in a different order, that streams will be presented in a non-increasing order, such as "Stream #0", "Stream #2", "Stream #1", "Stream #3"... In this example, the streams #0 and #3 have not moved, and they had therefore the correct 3D-plane with the previous versions of BD3D2MK3D. You don't need to re-convert them. But as you can see, streams #1 and #2 have been inverted, and therefore the 3D-planes were wrong in the previous versions. You should therefore verify them, and if the depths of the subtitles are obviously incorrect, you should re-convert them to 3D with the correct 3D-plane. Sorry for that!
Here is a concrete example. This is what you can see when you select 00004.mpls of the 3DBD The Smurfs:
Streams of 00004.mpls, 1:42:43, 16 chapters, 00002+00003.ssif :
Video : MPEG4/ISO/AVC (Profile: High@4.1 Resolution: 1920:1080p Frame rate: 23.976)
Video : MPEG4/ISO/MVC (H.264/MVC Views: 2 Profile: High@4.1 Resolution: 1920:1080p Frame rate: 23.976 3d-pg-planes: 32)
Audio : Eng DTS-HD (Bitrate: 1536Kbps core + MLP data.Sample Rate: 48KHz Channels: 5.1 (DTS Master Audio))
Audio : Eng AC3 (Bitrate: 448Kbps Sample Rate: 48KHz Channels: 5.1)
Audio : Fra AC3 (Bitrate: 448Kbps Sample Rate: 48KHz Channels: 5.1)
Audio : Nld AC3 (Bitrate: 448Kbps Sample Rate: 48KHz Channels: 5.1)
Audio : Nld AC3 (Bitrate: 448Kbps Sample Rate: 48KHz Channels: 5.1)
Audio : Ita AC3 (Bitrate: 448Kbps Sample Rate: 48KHz Channels: 5.1)
Audio : Eng AC3 (Bitrate: 192Kbps Sample Rate: 48KHz Channels: 2)
Audio : Eng AC3 (Bitrate: 192Kbps Sample Rate: 48KHz Channels: 2)
Subtitle: Eng PGS (Stream #0 3d-plane: 0)
Subtitle: Eng PGS (Stream #1 3d-plane: 1)
Subtitle: Ara PGS (Stream #5 3d-plane: 3)
Subtitle: Nld PGS (Stream #4 3d-plane: 14)
Subtitle: Fra PGS (Stream #2 3d-plane: 11)
Subtitle: Hin PGS (Stream #6 3d-plane: 4)
Subtitle: Ita PGS (Stream #3 3d-plane: 2)
Subtitle: Eng PGS (Stream #7 Resolution: 1920:1080 Frame rate: 23.976 3d-plane: 5)
Subtitle: Ara PGS (Stream #11 Resolution: 1920:1080 Frame rate: 23.976 3d-plane: 6)
Subtitle: Nld PGS (Stream #10 Resolution: 1920:1080 Frame rate: 23.976 3d-plane: 13)
Subtitle: Fra PGS (Stream #8 Resolution: 1920:1080 Frame rate: 23.976 3d-plane: 12)
Subtitle: Ita PGS (Stream #9 Resolution: 1920:1080 Frame rate: 23.976 3d-plane: 15)
Subtitle: Eng PGS (Stream #12 Resolution: 1920:1080 Frame rate: 23.976 3d-plane: 7)
Subtitle: Ara PGS (Stream #16 Resolution: 1920:1080 Frame rate: 23.976 3d-plane: 9)
Subtitle: Nld PGS (Stream #15 Resolution: 1920:1080 Frame rate: 23.976 3d-plane: 16)
Subtitle: Fra PGS (Stream #13 Resolution: 1920:1080 Frame rate: 23.976 3d-plane: 10)
Subtitle: Ita PGS (Stream #14 Resolution: 1920:1080 Frame rate: 23.976 3d-plane: 8)
The streams in red have moved, and therefore the 3D-plane numbers ware wrong in the previous versions.
Note that in addition to the different order, tsMuxeR shows also always all streams physically present in the M2TS/SSIF files. However, sometimes, a stream is skipped in the MPLS file, because, for various reasons, the author of the BD doesn't want it to be accessible to the users. When it's the case, that stream cannot have a 3D-plane, because the 3D-planes are defined only for the streams really present in the MPLS. Since it is possible to demux it anyway, currently BD3D2MK3D continues to list it, but it is rejected to the end of the list, it has no 3D-plane and I've added the stream 'Phantom track!', to let the users know that that stream is not officially present in the MPLS. If you decide to demux it anyway, BD3D2MK3D will pick an existing and valid 3D-plane, but without guarantee that it's the right 3D-plane to use. If you want to demux that track anyway, it might be a good idea to click the "Show all 3D playlists" button, and see if there is another MPLS that uses that track "officially". (A good example of this are the Japanese audio and subtitle tracks of 300: Rise of an Empire. In the main movie MPLS, the 2 Japanese tracks are phantom tracks, but there is an additional MPLS file with the English and Japanese languages only.)
Big thanks to Thalyn for having discovered that bugs in my code and in tsMuxeR, and for having tested numerous betas!
In addition to the fix for the wrong frame rate and wrong 3D-plane numbers, the new version fixes also some other minor bugs, improves some things and adds a new hidden debug option (useful mainly for me and the beta-testers). I'm too lazy to describe that points in details, but here is the change log:
# v0.49 (September 10, 2014)
# - Fix: Changed the frame rate when converting the time codes of the subtitle files from 23.976 to 24 (drop frames timecodes).
# - Fix for a tsMuxeR bug: The order of the audio and subtitle tracks is not always correct. The order is now restored.
# - Fix for a tsMuxeR bug: When the order of the subtitle streams is wrong, the 3D-plane numbers were assigned to the wrong streams!
# - Added the number of changes of depth value in the stats about the 3D-planes data.
# - Fix: Tool -> Convert subtitles to 3D (with 3D planes): It was impossible to convert only the forced subtitles when the input format was XML/PNG.
# - Improved the detection of the language from the filename when processing a BD SUP file from the Tools menu.
# - Tool -> Find dependent-view (MVC) file(s): Improved method to detect the M2TS of the MVC streams
# - In tab 1, you can now copy the content of the two lists to the clipboard by right-clicking the listbox.
# - Added the hidden option "debug" in the config file to run the program in debug mode.
# - Added Debug -> 3D-plane debug info, to display the content of a 3D-plane file in human readable form.
# - Added Debug -> Show tsMuxeR/eac3to's MPLS info, to show the unmodified output of tsMuxeR or eac3to for the current MPLS.
Please download the new version (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z) and don't use the older versions any more!
r0lZ
10th September 2014, 11:12
Here is a list of the 3D BDs affected by the 3D-planes bug of tsMuxeR, discovered so far by Thalyn, Nico and me. If you discover other examples, please let us know.
300: Rise of an Empire (Has also a "phantom" Japanese subtitle track) (Only some editions)
Despicable Me
Dredd
Frankenweenie
Ghost Rider 2 (Has also a "phantom" English subtitle track)
Gravity
John Carter (Only some editions)
Need For Speed
Pacific Rim
Rio
Sanctum
The Great Gatsby
The Smurfs
Thor II (Only some editions)
Wolverine
There are much more BDs with the audio tracks presented in the wrong order, but since that was not the cause of bugs with the previous versions, I don't list them here.
I will check my 3DBD collection to see if I can find more examples, and I will add them in this post...
Marty
22nd September 2014, 02:30
Hi all,
i am a newbie in using bd3d2mk3d soft and solves the problem. After click on Convert subtitles to 3D, pop up error window, i atach this
14374
Edit: im using Win7-64 bit, Java 32-bit i have installed
r0lZ
22nd September 2014, 06:50
Welcome to the Doom9 forums, Marty.
I don't know the cause of this error. Are you sure that you have the latest version of java? (32-bit is OK.)
Try to use the C++ version of BDSup2Sub, and see if it helps. (Change the version to use with the Settings menu. I don't recommend yo use the ++ version, but in this case, maybe there will be a better error message, or it will work just fine.)
What is the source of the subtitle you are converting? I see it's an XML file. I guess you have converted another stream to XML first. What program did you use to do that conversion, and what was the format of the original stream?
I suppose that the error can be caused by something odd in the source XML file, like a malformed string. Have you manually modified it before converting it?
Can you send me the "Titanic 3D.xml" file as well as the 3D-plane file, and, if you still have it, the "temp.3D_left.xml"? (You'll find my email address at the bottom of the PgcEdit home page (http://download.videohelp.com/r0lZ/pgcedit/#contact).)
Marty
22nd September 2014, 12:02
Thx for quick reaction.
Yes i have latest version of 32-bit Java. I converted .srt subtitles in 3D subtitler.
I progressed by this video guide - https://www.youtube.com/watch?v=vuBhJ0yVTOM
r0lZ
22nd September 2014, 13:50
I didn't know that guide. Thanks for the link.
I received the files, and I will have a look...
r0lZ
22nd September 2014, 14:05
Oops! I see. There is a big bug when converting subtitles to full-SBS or full-T&B. I will release a fix very soon.
Thanks for the bug report!
Marty
22nd September 2014, 14:18
So the problem is not in my pc? How come the guy in the youtube video does it work?
r0lZ
22nd September 2014, 14:21
OK, here is the fix for the bug discovered by Marty. That terrible bug was in my code, and not in BDSup2Sub.jar.
This version fixes also a couple of minor bugs, including a bug introduced in the previous version, but happening only in extremely rare circumstances. (In fact, I think there is no 3D BD with a title that can trigger that bug, unless you click on Show All 3D Playlists and you select a playlist beginning with a multi-angle MPLS, and the title has the tsMuxeR bug with the wrong angle numbers, and you convert at least a subtitle file to 3D. That should not happen often! Anyway, it's fixed now.)
I have also updated the MkvMerge binaries to the latest version.
# v0.50 (September 22, 2014)
# - Converting subtitles to 3D full-SBS or full-T&B with 3D-planes was broken. Thanks Marty!
# - Minor bug fixed: The 3D-planes were not correctly checked in MPLS files bedinning by a multi-angle video file.
# - Fix: Tools -> Find dependent view MPLS Files was broken for multi-angle playlists.
# - The errors and warnings should now appear in red in the console.
# - Updated MkvMerge and the MkvMerge GUI to the latest version (v7.2.0)
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
I am currently working to the MPLS parser, to be able to avoid tsMuxeR to analyse the content of the BD. This version is therefore probably the latest one using tsMuxeR to parse the MPLS files. I will need some time to integrate my parser in BD3D2MK3D, and I may introduce new bugs, so I hope this version is (almost) bug free.
r0lZ
22nd September 2014, 14:25
So the problem is not in my pc? How come the guy in the youtube video does it work?
Don't worrk, the bug was in my code. I have recently modified radically the way the 3D conversion happens, because Thalyn has discovered an important bug in tsMuxeR. When I have modified the code that produces the two (left and right) XML files for the conversion to full-SBS or full-T&B, I have introduced the bug. Since personally I use only half-SBS, I have not checked that part of my code carefully enough.
I guess the guide used an earlier version, or they explain how to create half-SBS or half-T&B, and that conversion worked fine.
Please try v0.50. It should be fine, but I have tested it only roughly.
Marty
22nd September 2014, 19:11
So it was really quick fix, now it's working without any problems, thx :)
I apologize in advance for bad English, I use google translator.
Got a question about the functionality of your program. Perhaps what I write will make sense :)
I'll give an example - I have a 3D BD Iso with English subtitles but I need to get there Czech subtitles. So through your program extracted English 3D planes and I will make him a Czech subtitles with right offset from the original English subtitles.
Is this possible? If so, it would be possible to give some guidance for beginners? The procedure I used a video from youtube (I posted above) did not work as I expected.
Thx for your work
r0lZ
22nd September 2014, 20:12
Well, I don't know what you want to do exactly. If I have correctly understood the youtube guide, they use the conversion to 3D only to test if there are warning for undefined depth values, and they generate a 2D SUP file to incorporate it in the original BD. BD3D2MK3D is not made for that purpose, but it can help if you want to convert your 3D BD to SBS or T&B and use external subtitles, not present in the original BD.
Note that the guide has several errors. For example, it extracts the 3D-planes directly from the M2TS file. That may work, but it's very risky. The tool used to extract the 3D-planes has been designed to extract them from the MVC elementary stream, and that's much more simple. Therefore, you should demux the MVC stream first. Anyway, I repeat that creating 3D subtitles to remux them in the BD doesn't make sense.
The procedure to create a SBS or T&B MKV with additional subtitles is relatively simple. Follow the normal procedure to create the SBS movie. You should select any subtitle stream, but it will be replaced by your own subtitles later, so the selection doesn't matter much. However, for best results, I suggest to select the language that is the closest to the language of your subtitles, in the hope that the positions, widths and durations of the original subtitles will be similar to yours.
When BD3D2MK3D will have finished its work, you should convert your downloaded SRT file to a 2D SUP file. (You can do that with 3D-subtitler in 2D mode, as explained in the guide. Try to put the subtitles at approximately the same location in the screen than the original subtitles.) Then, use Tools -> Convert Subtitles to 3D (with 3D-Planes). Load your SUP file, and any valid 3D-plane, to create a 3D SUP or IDX/SUB file. Of course, you must use the same SBS or T&B mode than the mode you have used to convert the movie. (Normally, you should leave the Additional Depth to 0. I don't know why they set it to 6 in the guide.)
When you have your 3D SUP or IDX/SUB file, you should modify the _MUX_3D_OPTIONS.txt file to replace the original English subtitle with your file. That's easy. Just modify the file name, the language code and, it it's necessary, the label.
Finally, encode and mux the movie by double-clicking _Encode.cmd. Wait for a while and watch the movie to verify if the subtitles are at the correct depths.
Unfortunately, a specific 3D-plane is made for a specific subtitle stream, and if your subtitle file has different characteristics than the original SUP (such as different positions of the subtitles on screen, different widths of the strings, or, more importantly, different timings), the result might not be satisfactory. You can verify if there are many warnings in the log file (as explained in the guide), and if it's the case, try to convert your subtitles again with a different 3D-plane. Anyway, the presence of absence of warnings in the log is just an indication. You cannot be sure that the depths will be correct even when there are no warnings. The only way to do it perfectly is by trials and errors. Note also that you can manually edit the depth tags in the temp 2D XML file if you need to modify the depth of a few subtitles. (Or you can modify the depths of all subtitles at once with the Additional Depth parameter.) Anyway, when you think that your modifications should be OK, you have to convert the subtitles to 3D again. If you use another 3D-plane, use the same procedure than the first time. If you have only edited the Depth values in the XML file, you should convert the XML (and not the original SUP), and NOT specify a 3D-plane (leave that field blank). That way, the subtitles will be converted with the depths values already present in the XML file. (The Additional Depth can always be modified if you wish, and that value is never saved in the XML file, but normally it's not necessary.)
To remux the final MKV with your newly created subtitles without computing the h264 stream again, just double-click the _MUX_3D.cmd file.
Now, if you want to add your subtitles in the original BD, the procedure is totally different, and unfortunately you don't have the same possibilities. You should simply convert the SRT to 2D SUP, and remux it with an existing 3D plane. Again, it is important to select the best one, and that's not easy. If the result is not good, the only thing you can do is to try with another 3D-plane. (If I have understood the guide correctly, they use the conversion of the subtitles to 3D only to examine the number of warnings. That may be useful to help select the best 3D-plane for your subtitle stream, but remember that the absence of warnings is not a guarantee that the result will be perfect.)
Good luck!
r0lZ
28th September 2014, 08:57
Yet another bug fixed.
# v0.51 (September 28, 2014)
# - Bug: The AVS script was wrong in full-SBS or full-T&B and without subtitle to hardcode.
BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
CRFOnly
17th October 2014, 07:13
Ive been a doom9 lurker for years, but I finally registered just to post here.
First of all I have to say thank you very much for coding this. Ive been looking for a reliable and powerful 3d ripper for more than a year. I didn't want to use dvdfab because I honestly think its garbage. This software is the perfect balance of power and ease-to-use.
I tried a couple encodes using my usual encoding settings for 2d encoding and i must say the result is perfect. Ive come across some problems tho, but fixed them myself. Ill post still in case someone read. I'm using Nvidia 3dVision with PowerDVD14. I found out that if i manually mux with the last mkvmerge, PowerDVD will recognize subtitles but wont make them work (even if i activate them manually). Weird thing is if I use your muxer (which is actually mkvmerge from the command line) everything works great. I dont get it but its certainly not a problem from your wonderful software.
I also found out that the 3d subtitle maker always make sup file without any problem but if i ask it to make 2d subtitles as well, it wont make them in .sup half of the time.
I'm not sure why this is happening... Im mostly using foreign subtitles and most of the time your software take the complete movie sub and extract only forced subs from it, works great in 3d but fail in 2d.
Apart from that, its perfection, Thanks again. I would like to request a feature in the software, the hability to see the source file sizes (example subtitles sizes). When i see multiple subtitles files with the same languages, im trying to pick the forced one (which is lower in size). Just saying if you cant i understand.
Thanks and keep up the good work!
r0lZ
17th October 2014, 09:35
Thanks for your kind words, and welcome to the Doom9 forums!
I found out that if i manually mux with the last mkvmerge, PowerDVD will recognize subtitles but wont make them work (even if i activate them manually). Weird thing is if I use your muxer (which is actually mkvmerge from the command line) everything works great.:eek: That's really strange. Especially given the fact that BD3D2MK3D includes normally the last version of mkvmerge.
Have you tried to use the same parameters than BD3D2MK3D ? You can find them in the _MUX_3D_OPTIONS.txt file. For example, BD3D2MK3D adds the global option --disable-track-statistics-tags anyway. Without that options, small stat files are muxed with all video, audio and subtitle files. Maybe these stat files confuse PowerDVD.
I also found out that the 3d subtitle maker always make sup file without any problem but if i ask it to make 2d subtitles as well, it wont make them in .sup half of the time.
I'm not sure why this is happening... Im mostly using foreign subtitles and most of the time your software take the complete movie sub and extract only forced subs from it, works great in 3d but fail in 2d.Hum, I will have a look. Personally, I use only VobSub format (for compatibility reasons) and therefore I don't verify often how the SUP files are created.
Note that when you don't explicitly ask to extract the forced subtitles only from a stream, there is no need to create a 2D SUP file. The original SUP demuxed from the BD IS the 2D SUP file. So, I assume that the bug happens only when you select a "forced captions only" stream in tab 2. Right?
I would like to request a feature in the software, the hability to see the source file sizes (example subtitles sizes). When i see multiple subtitles files with the same languages, im trying to pick the forced one (which is lower in size). Just saying if you cant i understand.
I understand, but I can't do that easily. The problem is that the stream must be demuxed to know its file size. Or, at least, the whole original M2TS file must be analysed to compute the size of their streams, and in both cases, it's a very long process.
There are several ways to examine the subtitles and decide what streams you need to keep.
You can use the preview to play the subtitle you want to examine. You need a player that displays the available subtitle streams in the same order than in the MPLS file (and therefore than in BD3D2MK3D), but it's usually the case. (You can force BD3D2MK3D to use a specific player with Settings -> Player for Preview.)
If there are several streams that can be what you want, you can also tick them all, and let BD3D2MK3D demux them. You'll see their file size and you can examine their content with BDSup2Sub. Finally, it is easy to remove the streams you don't want by editing the _MUX_3D_OPTIONS.txt file.
Final note: I like your pseudo. CRFOnly is my philosophy too! ;-)
CRFOnly
17th October 2014, 20:02
Yeah there is something mkvmerge put in the default command line PowerDVD doesnt like for sure. It isnt related with --disable-track-statistics-tags because ive been using this line way before i used your software. Hopefully ive done enough mkvmerge from the commandline to be able to do stuff using it.
I actually already edited _MUX_3D_OPTIONS.txt for my needs. Because honestly the default one you provide put too much useless attachments in the mkv. So i simply only keep video/audio/subs/chapters and name the tracks the way i want. Everything works great. I assume PowerDVD have the same problem with all my older muxs, but i never actually use PowerDVD except to read 3D content.
Another wierd thing PowerDVD do is not actually apply 3d on the 3d subtitles. So you see the 2 subs in the screen when the movie roll and the image is still in real 3d. Thats why im keeping 2d subs as well.
About the subtitles problems, Its happening only if the selected subtitle is the full and i tick the forced checkbox (because i want forced subs). So the software extract the subs (which is full version) then detect the forced captions and make a 3d sub out of it (which is good) but doesnt do the same to make 2d forced subs.
Thats why i wanted the ability to be able to see subtitles size, so i can select forced subs (most of the time they in a separate track for french) and then let the program do his thing without any problem. Sure thing BDINFO can detect this so its not a big deal after all.
So yeah the problem occur only if there is no separate subtitle track, sometimes it means there is just no forced sub at all. But ive seen 3 cases already that actually have many forced subs and just dont work for 2d.
About my request its not a problem if its not easy to do, i know many ways to see if the subs are forced or not already, its just many more steps to do that could be implemented :P
Keep up the good work!
r0lZ
18th October 2014, 11:17
I think that attaching the two (little) CMD and AVS files with the MKV is important as a documentation, because you can always verify what has been made with the original streams and how the video has been encoded. It's not essential, but sometimes useful, and that takes very little place on disc. Now, BD3D2MK3D includes also the 3D-planes (if at least a stream has been converted to 3D), because they can be useful if, later, you want to add a subtitle in another language. You can build good 3D subtitles only if you have the original 3D planes. They are zipped, and due to their nature, the ZIP file is extremely small, so again the benefit can be big for just a little disc space.
Unfortunately, most 3D players ignore the 3D subtitles. It's a pity, but afaik only BD3D2MK3D can generate them with the right depth extracted from the 3D-plane, and therefore I understand that they are not supported by many players. The 3D subtitles are useful mainly if you use a 2D player to send its output via HDMI to a 3D TV. In that case, the 3D subs are absolutely mandatory. With some luck, the player will display them without resizing or moving them, and they will be perfectly displayed in 3D. If you want to see them in perfect 3D regardless of the player you use, I recommend to hardcode them on the video.
I have already found and fixed the subtitle bug, but I still need some time to test my modifications. (I have rewritten a large part of the subtitle handling code, and I may have introduced new bugs.) Indeed, the forced subtitles were not always generated in 2D, depending of the format and other options. At least that bug is fixed, but I have still not verified if forcing the forced flag (by ticking the "forced" checkbox on a "full" stream) works as expected. I will verify that and I'll release a new version...
Sorry, I will not implement a way to display the subtitle stream sizes. It's too much work, and more importantly, that will slow down the display of the informations too much. But usually, when the forced subtitles are in their own stream, then there are several streams in the same language (French in your example). So, you can usually assume that the forced captions are in the "forced captions only" pseudo-stream when there is only a single French stream, and tick it. (Your selection will be ignored anyway if there are no forced captions in that stream.) I agree that when there are several French streams, that may be because there are different versions or a a director's comments track, but that's easy to detect using the preview. And, as you know, editing the mux options file is easy, so when you really don't know what to do, you can tick all French streams, and then remove the streams you don't need.
frank
19th October 2014, 10:09
BD3D2MK3D v0.51 encodes Edge of Tomorrow properly with base view = right eye.
Basicly I encode BD compliant, so I use PGS sups.
If you convert that sup subtitles to 3D via Tools you have to tick LEFT view first, otherwise the views are mismatched in the generated 3D sup (HTAB) - that's a (new?) bug.
r0lZ
19th October 2014, 10:46
That's not a bug. The conversion of subtitles to 3D is totally independent of the source format of the video. The fact that Edge of Tomorrow BD has the base view = right eye is therefore irrelevant. The option in the Tool must be set to Left view first, unless your SBS or T&B file has the right view first. (Normally, it is not possible to produce a 3D file with the right view first with BD3D2MK3D, because it sets always the left view first regardless of the order of the views in the original BD, but if you want to generate 3D subtitles for a SBS or T&B movie that has not been encoded by BD3D2MK3D, it may have the views inverted, and you may need to use that option.)
frank
19th October 2014, 14:26
Oh, I see, that option controls the output view. Many thanks. :)
CaBleman
20th October 2014, 13:26
'lo there,
I've been using BD3D2MK3D on a WIN 7 machine for a while and was quite happy with 0.42
I installed Avisynth 2.58 on a Windows 8.1 with all recent updates (also the .NET ones) and tried BD3D2MK3D 0.51 with different 3D BD ISOs. THe result is awlways the same.
After demuxing, all files seem to be there, in sizes which make sense.
But the encoding step would produce MKVs which have a black/blank video part in the end.
I tried a couple of things, examined the command lines, ran the commands manually - there are no specific error message, if any at all...
Non 3D chain with BluRip works fine BTW.
Any idea or guidance where to inspect further?
thx & bye,
CaBleman
r0lZ
20th October 2014, 14:58
Hi, welcome to the Doom9 forums.
I have never encountered that kind of problem, so I don't know how to help.
If your output movie is blank, I can only suspect something wrong with your Avisynth installation.
I suggest to install AvsPMod (http://forum.doom9.org/showthread.php?t=153248). It's an avisynth script editor. Open the _ENCODE_3D_MOVIE.avs file in AvsPMod, and click the up arrow in the bottom left corner of the main window to launch the rendering. You should see the first frame of the movie (usually black). Use the right cursor key on your keyboard to play the next frames. After some frames, you should see the video beginning to play.
In AvsPMod, you can also click the Play (right arrow) button to launch the preview of all frames, but that button doesn't work always well.
Do NOT use the seek bar or the input field to jump directly to a specific frame, as the MVC decoder doesn't support seeking, and will hang. If that happens, close AvsPMod and relaunch it.
(Note also that the script may not work in AvsPMod if you have selected the option to hardcode subtitles on the video, because AvsPMod may not find the subtitle decoder plugin. So, test without hardcoded subtitles.)
You can also test avisynth by loading the "Test_Avisynth_Installation.avs" script in the "toolset" folder of BD3D2MK3D.
If the script doesn't work, try to use the other MVC decoder. (Change it with Settings -> MVC Decoder.)
If you can see the video in AvsPMod, that means that avisynth is working correctly, and I don't understand why you obtain blank frames. Otherwise, try to re-install avisynth. (And be sure to install the 32-bit version.) You may also have to remove the additional plugins from the Avisynth plugins folder, if you have installed special plugins manually.
r0lZ
20th October 2014, 15:19
Oh, I see, that option controls the output view. Many thanks. :)
Yes. I have modified the title of the frame with that option from "Stereoscopy" to "Output stereoscopy format". It should be more obvious that the "left/right view first" setting is not related to the order of the views in the original BD.
CaBleman
20th October 2014, 22:58
Hi r0lZ,
thank for the quick reply and for the welcome!
I had tried the Avisynth re-install already, with 2.58 and 2.6 (32 bit).
I assume that Avisynth in general was working because it also belongs in the toolchain of another transcoding tool, called BluRip, which works fine on the same machine.
So I did the tests with AvsPMod you mentioned. Your test script works fine, and when I put _ENCODE_3D_MOVIE.avs of the failing project and start the rendering, all frames are black.
Is there any way I could check the demuxed video parts (the .264 and the .mvc) each by itself with another tool (like vlc, but which file ending to use?)?
And yes, I tried the other encoder option called FRIMSource - in that case I get an error message like this:
---
Encoding _ENCODE_3D_MOVIE.avs
Movie: xxx
Encoding started 20.10.2014 23:46:02,45
C:\xxx\xxx\xxx\xxx\00xxx_mpls>"D:\xxx\xxx\BD3D2MK3D\toolset\avs2yuv.exe" "_ENCODE_3D_MOVIE.avs" -frames 198357 -o - | "D:\xxx\xxx\BD3D2MK3D\toolset\x264_x64.exe" --crf 20 --preset slow --tune film --profile high --level 4.1 --keyint 96 --no-fast-pskip --b-adapt 2 --ref 4 --frame-packing 3 --qpfile chapters_3D.qpfile --output "00800_mpls.264" --frames 198357 --demuxer y4m --stdin y4m -
error: ERROR: unknown error (-1), ..\frim_decode\src\pipeline_decode.cpp (1115)
ERROR: Decoding error.
(_ENCODE_3D_MOVIE.avs, line 32)
x264 [error]: could not open input file `-'
Encoding finished 20.10.2014 23:46:02,58
---
I'm pretty clueless.
I don't have Windows Media Player installed, though (never used it in the past, so why not avoid it totally).
Are there some codecs missing perhaps? Would trying to install ffdshow make any sense?
But, for example, the "XBox video app" in Win8 plays e.g. M2TS just fine...
Thanks for listening,
CaBleman
r0lZ
20th October 2014, 23:22
Normally, you don't need additional codecs.
Unfortunately, the FRIM error message "unknown error" doesn't help much!
To test if the main view of the movie has been extracted normally, you can simply launch _MUX_2D.cmd. It builds a (big) 2D MKV with the h264 stream demuxed from the BD, without re-encoding. I'm pretty sure that will work fine.
Try also to untick the 64bit option in the last tab of BD3D2MK3D. That will remove avs2yuv.exe from the x264 command, and maybe that will be sufficient.
If that doesn't work, try also to copy the libmfxsw32.dll from the toolset directory to a directory in your PATH (such as C:\Windows\SYSWOW64).
I see also this: But the encoding step would produce MKVs which have a black/blank video part in the end.
What do you mean exactly with "in the end"? Do you mean that the movie itself is encoded correctly, but there is an additional black part after it? If it's the case, could it be because you have used the option "Add N seconds of black at the end of the video" in tab 4?
CaBleman
21st October 2014, 17:20
Thank you again r0lZ for all the hints!
First of all, with "in the end" I meant "after all, when the process is finished". Not the "add black" option...
Here are the outcomes of your suggested changes / trials:
- The 2D Mux worked fine, indeed. But this only proves that the .264 video part had been demuxed correctly, right? What about the .mvc part? How could I check this one?
- I removed the 64bit option for x264 usage; the resulting removal of avs2yuv.exe from the command line exposed another error message:
---
"x:\xxx\xxx\BD3D2MK3D\toolset\x264.exe" --crf 20 --preset slow --tune film --profile high --level 4.1 --keyint 96 --no-fast-pskip --b-adapt 2 --ref 4 --frame-packing 3 --qpfile chapters_3D.qpfile --output "xxx.264" "_ENCODE_3D_MOVIE.avs"
avs [info]: 1920x1080p 0:0 @ 24000/1001 fps (cfr)
Return on error: error code -1, pipeline_decode.cpp 799
Return on error: error code 1, sample_decode.cpp 66
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZ
CNT BMI2
---
- Copying libmfxsw32.dll into a folder in the system path did not make a difference, unfortunately.
What now? What else could I test?
Thx & bye,
CaBleman
r0lZ
21st October 2014, 18:15
Yes, the 2D mux proves only that the demux of the AVC stream worked fine. But I guess that the MVC stream is fine also. I don't think that it is possible to test the MVC stream without decoding it, and it's exactly that that doesn't work.
Last suggestion: try to re-download the latest version of BD3D2MK3D. Perhaps one of your files is corrupt. But I don't think that will help.
Unfortunately, I don't know what else should be tested now. According to the two error messages, it's probably something wrong with the Intel decoder (libmfxsw32.dll), but I don't know what. I have sent two PMs to knowledgeable peoples, in the hope that they will be able to help. I hope so!
CaBleman
21st October 2014, 21:09
r0lZ,
I found the "culprit" causing the hiccup on my system.
At least with DGMVCSource it was the hw=0 option in the function call within the AVS script:
interleaved = DGMVCSource("xxx.track_xxx.264", "xxx.track_xxx.mvc", view = 0, frames = 198357, hw = 0)
The value 0 means "auto" and on my system it chooses hardware acceleration. So if I leave that on 0 or put it to 2, the following happens:
When the enconding starts, 3-5 seconds go by before something actually happens.
It then starts with the usual approx. 14fps and then accelerates quickly up to 90fps (wow, would be good to have for real;).
All this with the result of the black video.
It is only when I put it to 1 and enforce pure software based decoding, that the frame serving works the way it should...
You may very well be right that this is caused by the Intel 3D (decoder?) lib, since I operate a Haswell Refesh processor (Core I5 4590S), which is quite new. May be caused by other libs/components as well...
Hopefully this is a helpful clue to you or your knowledgable people; maybe "we" have to find a newer version of that lib?
If you or someone else needs any more info on my system, let me know...
Anyway, would it be asked too much to have an option (tickboxes or dropdown) in the last tab for this parameter?
Otherwise people with machines like mine have to wait for the demuxing and then amend the AVS script to run the transcoding... please think about it ;)
Thanks again for taking care and providing BD3D2MK3D!
Bye,
CaBleman
r0lZ
21st October 2014, 23:36
Hey, great news. Thanks for letting us know.
Sure, I'll add an option to control that flag. I have assumed that setting it to "auto" should work in all cases, but assumptions are always dangerous!
r0lZ
23rd October 2014, 11:28
Levels and profiles changes
I have learned recently many things about the x264 encoding, and I have modified BD3D2MK3D accordingly. The x264 options are therefore much more simple than in the old versions of BD3D2MK3D. The Profile field has been removed, because usually the High profile is selected automatically (except when encoding with the ultrafast preset, where Baseline is used). If you really want to select another profile, you should type "--profile X" in the additional options field, but that should never be necessary.
Similarly, in the previous versions, it was possible to select any level, but due to the HD picture size (1080p), only levels 4.0 and up are useful. Usually, it is recommended to set the level to "do not force", so that x264 can select the level automatically, according to the preset you have selected. However, when encoding with a slow preset, you will probably end up with level 4.1 or 4.2. If that levels are too high for your target hardware, you may need to force level 4.0 or 4.1. (Personally, I recommend level 4.1, because it's the highest level compatible with most hardware players.) Note also that if you encode in Full-SBS or Full-T&B, levels 5.0 or more are mandatory. Since it doesn't make much sense to force a level higher than 5.0 (because you will mainly only limit the compatibility with more hardware players), BD3D2MK3D has implemented the levels 4.0 to 5.0 only. Again, if you want to force a level greater than 5.0, you can do it manually in the additional options field, but the casual user should never need to do that.
Note that forcing a specific level requires also to add the --vbv-bufsize and --vbv-maxrate options, to force x264 to use a buffer size and a maximum bitrate compatible with the specified level. BD3D2MK3D adds these options automatically when a level is forced, and it assumes that profile High (or baseline for the Ultrafast preset) are used. BD3D2MK3D doesn't specify them when the level is not forced. (These options, and some other options, are also used if you tick the "BD compatible" option.) So, if you want to use your own profile or specify a level with a different buffer size or bitrate, you must select "do not force", and enter the requires options manually in the additional options field.
That may seem complicated, but in fact it's much simpler than before. When you encode in Half-SBS or Half-T&B, you should select force level 4.0 or 4.1 to be sure to be compatible with most hardware players. For a slightly better compression but a less good compatibility, you should select "do not force" or level 4.2. When you encode in Full-SBS or Full-T&B, you should select level 5.0 for the best compatibility (but your file will be incompatible with most hardware players anyway), or "do not force" to let x264 decide. You cannot use level 4.*, and if a 4.* level is selected, a warning will be displayed, and you will have to fix the problem.
Note also that the level and profile settings that may have been saved with previous versions of BD3D2MK3D are lost. Don't forget to verify the new Level setting if you want to force a specific level.
Hardware acceleration of the MVC decoder
There is a big bug in the Intel MVC decoder, reported in the few posts above by CaBleman. It appears that the decoder crashes (or produces only black frames) when you have some recent models of the Intel processors, that support theoretically the hardware acceleration. It might therefore be necessary to force the decoder to turn off the hardware acceleration. For that reason, I have added the Settings -> MVC Decoder -> Hardware Acceleration menu. If previous versions of BD3D2MK3D worked fine for you, you should leave that option to its default value "Auto". If you experience crashes, you should try to set it to Disabled. (It should never be necessary to use the Enabled option.) Thanks CaBleman for the bug report, your finding and your tests!
New Tool to convert external subtitles to 3D
With Tools -> Convert Subtitles to 3D (with 3D-Plane), it is possible to convert a subtitle stream from another source to 3D and use the right depth values extracted from the 3D-plane. However, that was not always sufficient to produce the correct subtitles, because often a 3D subtitle must be placed at a precise position in the scene, where there is nothing in the foreground, so that it doesn't enter in objects or characters in the foreground of the scene. Unfortunately, usually the external subtitle file has not been designed with that locations, and the subtitle may therefore enter in objects, It's why I have added a new tool: "Clone Subtitles positions from another file". With that tool, you can use one of the subtitle file extracted from the original 3DBD as a "guide" to place the subtitles of your external stream approximately at the right positions. (It is not always possible to place correctly all subtitles of a specific stream, but the result is usually much better after having used that tool.)
So, in summary, to generate correct 3D subtitles from, say, a SRT file downloaded from the internet, you should do this:
Use BD3D2MK3D to generate a project AND tick at least one subtitle stream in tab 2 (or select a stream to hardcode in tab 4). That stream will serve as the "guide" and will be replaced with your own subtitles later.
Convert the external subtitle to IDX/SUB format. (I recommend to use SubtitleEdit (http://www.nikse.dk/SubtitleEdit/)'s Export to BDN xml/png).
Use the new "Clone Subtitles positions from another file" tool to move the subtitles of the new XML/PNG stream to their correct position extracted from the "guide" XML file that has been created automatically by BD3D2MK3D during the preparation of the project.
Use Convert Subtitles to 3D (with 3D-Plane) to convert the new XML to 3D using the 3D-plane that is associated with the "guide" stream, and output to BD SUP or VobSub format.
Edit the _MUX_2D_OPTIONS.txt file to replace the guide file with your new SUP or IDX file. (If you want to hardcode the file, you must edit _ENCODE_3D_MOVIE.avs.)
Other changes
I have also fixed the bug reported by CRFOnly, with the 2D subtitle streams not generated. I have modified a large part of my code, and I hope I haven't introduced new bugs.
There are also some other minor changes.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
# v0.52 (October 23, 2014)
# - Modified the x264 encoding options: Profile has been removed.
# - Level is now used also to limit the bitrate peaks and the decoding buffer size and is now minimum 4.0, as it should for 1080p.
# - Added a help button next to the "Level" field to explain why it may be useful to use that option.
# - Added the Settings -> MVC Decoder -> Hardware Acceleration menu to force the decoder to use the hardware or software acceleration.
# - New Tool "Clone Subtitles positions from another file", useful to add another subtitle file to the final MKV.
# - Fix: The forced 2D subtitle SUP stream was not included in the mux. Thanks CRFOnly!
# - Minor cosmetic changes.
frank
23rd October 2014, 17:32
After building the project BD3D2MK3D 0.52 ends with an error message:
can't read "subsfilename": no such variable
while executing
"file extension $subsfilename"
(procedure "GenerateAvs" line 1814)
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)
Console:
*** Saving "_ENCODE.cmd"
x264 command:
"C:\Users\Chef\BD3D2MK3D\toolset\avs2yuv.exe" ^
"_ENCODE_3D_MOVIE.avs" -frames 178660 -o - ^
| "C:\Users\Chef\BD3D2MK3D\toolset\x264_x64.exe" ^
--crf 18 --preset medium ^
--bluray-compat --profile high --level 4.1 --open-gop --keyint 24 --slices 4 ^
--colormatrix bt709 --colorprim bt709 --transfer bt709 --b-pyramid strict ^
--vbv-bufsize 30000 --vbv-maxrate 40000 --aud ^
--frame-packing 4 --qpfile chapters_3D.qpfile ^
--output "00799_mpls.264" --frames 178660 --demuxer y4m --stdin y4m -
*** Saving "tags.xml"
*** Saving "_MUX_3D.cmd"
*** Saving "_MUX_3D_OPTIONS.txt"
*** Saving "_MUX_2D.cmd" and "_MUX_2D_OPTIONS.txt"
*** can't read "subsfilename": no such variable
() 1 %
___________
frank
System: Win 7 x64
r0lZ
23rd October 2014, 19:15
Damn! It's a stupid bug. I think it happens only when there are several subtitle streams to decode and the option to mux the 2D files is ticked in tab 2. Anyway, I have fixed the bug. Or at least I think so. I haven't enough time to test it. Please do it.
Thanks for the bug report!
# v0.53 (October 23, 2014)
# - Last minute bug fix: Problem when adding the 2D subtitle streams to the _MUX_*D_OPTIONS.txt files
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
frank
24th October 2014, 07:54
There were several subs, and I ticked the forced captions only option. Encoding to Half T&B, nothing with 2D.
I will test again.
frank
24th October 2014, 09:23
Successfully done with v0.53!! :)
:thanks:
r0lZ
24th October 2014, 10:40
OK, thanks for the confirmation. :-)
Bryce2
25th October 2014, 20:40
Hi! r0lZ
I have a query about x264 encoder options and how these are incorporated inside "BD3D2MK3D's Options & Go!" panel, and with that in mind, I would like to make a suggestion. My query is why you don't implement a option like "MeGUI - Encoder settings - Config" panel or something similar so the user could apply his own custom settings with ease and with more control on x264 options, without the necessity to wright by hand all the additional parameters someone wants to experiment with?
(Sorry for my terrible English - not my native language as you can imagine)
PS.
With encoding options like :
Mode: CRF (10)
Preset: slower
Additional options: --keyint 240 --min-keyint 24 --merange 64
my memory is up to 94%-96% in use. Any idea why this happens?
My PC:
AMD FX-8350 Vishera (8 Core - core speed 4026.3 MHz)
16GB DDR3
Thanks for the time you spend to make our life easier!
r0lZ
25th October 2014, 21:54
Well, I believe that my program must be accessible to everybody. I don't want to make it too difficult to understand and use. There is already a lot of options, some not obvious for a beginner. Also, x264 has excellent presets and tune options, that should be sufficient for most users. Adding all settings in a GUI is theoretically possible, but that will only be much confusing for most users. And take in mind that BD3D2MK3D sets some options automatically for you (such as --frame-packing, or the --vbv-* options if you select a specific level). It is difficult to have to disable that options in the GUI if the user selects a level, and enable them otherwise. And I don't want to encourage peoples to tick one or two options without knowing exactly what is their usage, just to check if the result will be good. Usually, that kind of experiment leads to bad images, slow encodes or bad compression. In short, I have opted for a GUI as simple as possible, but with the possibility for advanced users to specify additional options manually, if they know what they are doing.
Anyway, if you want to use the same set of options every time you use BD3D2MK3D, you can just type them once, and then use Settings -> Save Settings Now to save them permanently. (Just be sure to disable the Save Settings On Exit option, as otherwise your default options will be overwritten if you change them for a specific movie.) All options are saved, including everything that you can select via the GUI and the content of the "Additional options" field, but of course nothing directly related to the current movie, such as its title and tags. IIRC, only the global Shutdown Computer option is not saved (because it is too dangerous).
Honestly, I don't know why x264 may need almost 16GB of memory with your settings. It may be caused by the --merange parameter, but I'm not sure. I'm not at all a specialist of the x264 encoder. I can only tell you that I have only 4GB of mem, and x264 has never needed more than approximately 2GB to encode my movies (without --merange 64). You should ask your question in a forum about x264.
Don't worry for your "terrible" English. It is perfectly understandable, and anyway, English is not my native language either.
Bryce2
25th October 2014, 23:34
Thanks my friend for the quick reply. I perfectly understand what you mean, but I just thought that it would be easier for some of us to have more options for x264 to play with! Anyway ..thanks again for such a nice program. it makes a-lot easier to re-encode a original 3D bluray disc than before (manual way).
Can I ask for a "IMDB-id" & "TMDB-id" field and a "Genres" field in the "Title & tags" panel. I think it is important for a movie tag. (my opinion).
I have also a last question for the "Title & tags" panel. How do you put 2 different locations. I tried it for the movie "Upside Down" and it didn't work. the movie was made in Canada & France ..so I put FR, CA and it gave me an error.
PS.
Can we have a crop option in the "Options and Go" panel?
Thanks a-million!!!!!
r0lZ
26th October 2014, 09:10
BD3D2MK3D uses only some of the official Matroska tags (http://matroska.org/technical/specs/tagging/index.html) and, as far as I know, there is nothing to specify IMDB or TMDB IDs. You may want to use the COMMENT field to store them. There is a GENRE tag in the official Matroska list, but afaik it is used only for music (in MKA files). For the location, BD3D2MK3D uses the COMPOSITION_LOCATION official tag, and unfortunately, it is impossible to define two locations at the same time.
I can perhaps add one or two new tags, but they have to be official. Consult the list and make concrete suggestions if you wish...
For the crop, it's NO! Certainly not! Never! It is an extremely bad idea to crop a 3D movie. A 3D movie MUST be encoded with the 16:9 aspect ratio. Dot.
Most (if not all) 3D TVs require the 16:9 ar, and when the black bars have been cropped, they display the movie stretched vertically, or, in some case, they give up completely. It's already a very good reason to avoid cropping the 3D movies.
I know that some devices, and most software players can display non-16:9 3D movies correctly, but they add black borders in real time anyway, and since the black borders are very easy to encode, the gain in file size when cropping them is minimal, and negligible in regard to the numerous drawbacks. Don't forget that it's not because you watch your movies currently with a player that supports the cropped borders that you will never buy a TV or another device that requires full 16:9.
Furthermore, it is impossible to display correctly the 3D subtitles on a movie that has been cropped, because in addition to the depths of the subtitles, their exact positions on screen are very important too. Since the SubRip and BD SUP subtitle formats are made for a specific video format (in our case, 1080p full 16:9), the positions of the subtitles along the Y axis is lost if you have cropped the black borders, and the 3D effect of the subtitles is ruined. (Unfortunately, many software players reposition the subtitles in the bottom center of the screen anyway, and it's mainly because they have to adapt them to cropped movie. I hope that the authors of the 3D players will understand that it is important to display the 3D subtitles as they are, without modification. But first, we need to stop cropping our 3D movies.)
Bryce2
26th October 2014, 11:01
Mainly I asked if it was possible from you to add a extra field for "IMDB-id" & "Genres" in the "Title and Tags" panel taking as a paradigm the mkv tagger utility MatroskaTagger (http://forum.team-mediaportal.com/threads/mkvtagger-edit-tags-mkv-tags-incl-mp-tvseries-thetvdb-com-themoviedb-musicvideos.116870/) from Team MediaPortal (http://www.team-mediaportal.com/) as they have already added these fields in their program, thus avoiding me from using two different apps to properly (as to my opinion) tag a MKV movie file.
(Sorry for bringing you a headache with all my questions & requirements)
Maybe I ask too much or perhaps I'm wrong ..or maybe I will consult the list and make concrete suggestions in the near future...
(If you haven't kill me before I do this!!!) .Xa! Xa! Xi! Xi!
:thanks:
Bryce2
26th October 2014, 14:40
As for the IMDB-id & Genres tag fields, they are already implemented inside MKVTagger (MatroskaTagger) (http://forum.team-mediaportal.com/threads/mkvtagger-edit-tags-mkv-tags-incl-mp-tvseries-thetvdb-com-themoviedb-musicvideos.116870)"" from "Team MediaPortal", and that's the reason that I asked for this addition in the Title and tags panel, thus avoiding me from using 2 different tools for the same job.
(sorry for giving you a headache with so many questions and requests)
mini-moose
28th October 2014, 09:24
I'm doing a 3d encode for a friend with the latest version. He wanted it 2-pass for whatever reason. I've set the video bitrate to around 9k and I got the next warning:
Video bitrate is too high for h264 level 4.1. It has been forced to 56250 kbps. The final file size may be smaller than expected.
that's 6 times what I set it to initially...
I've edited the encode batch file so that's not an issue. But is it some bug or maybe I did something wrong? I didn't encounter that in previous versions.
r0lZ
28th October 2014, 10:25
Yes, it's something I have added to the latest version. If you force a specific level (such as 4.1 in your example), the maximum bitrate allowed for that level is now specified automatically in the command line (with the --vbv-maxrate argument). For level 4.1 (and profile high, the default), the maximum bitrate is 62500 kbps. Since the average bitrate specified by the user must be smaller than the maximum, BD3D2MK3D verifies if it is correct, and if it's not the case, it changes it to an acceptable value (90% of the maximum bitrate).
But if you have specified 9k, (I guess you mean 9000 kbps, right?) then your bitrate is largely below the limit, and BD3D2MK3D should not have displayed that warning. Obviously, there is something wrong. I will have a look. Thanks for the bug report.
mini-moose
28th October 2014, 10:41
Yes, it's something I have added to the latest version...
But if you have specified 9k, (I guess you mean 9000 kbps, right?) then your bitrate is largely below the limit, and BD3D2MK3D should not have displayed that warning. Obviously, there is something wrong...
Yes, 9000 kbps.
thanks.
r0lZ
28th October 2014, 10:43
Confirmed. There was a terrible bug in 2-pass and ABR modes. Sorry. It is fixed in v0.54. Thanks again.
# v0.54 (October 28, 2014)
# - Bug in 2-pass and ABR modes: the bitrate was forced to the maximum.
# - Minor cosmetic changes
Donwload: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
mini-moose
28th October 2014, 10:47
Confirmed. There was a terrible bug in 2-pass and ABR modes. Sorry. It is fixed in v0.54. Thanks again.
Great. Thanks r0lZ.
frank
28th October 2014, 16:40
Hi r0lZ!
I welcome your opinion to the settings of BD3D2MK3D. Keep it on! Beginners forget often IT IS 3D for TV!!!
I prefer the BD compliant settings. It worked on ALL devices properly in excellent quality.
(I also hate cropping, keyint=250...) As hardware specialist I only can say: TV chipsets and acceleration are developed for standard sizes: 1080 / 720... And HDMI is based on standards.
frank
2nd November 2014, 11:26
Currently ALL Intel SDK based MVC 3D decoders have a serious issue, they show blockiness in some movies.
(The Avengers after 12 sec, Pacific Rim...)
After a lot of tests: Here my results.
BD3D2MK3D can decode it properly using DirectShowMVCSource(), based on CoreAVC (used in Stereoscopic Player).
So DirectShowMVCSource() is NOT obsolete. We need it for that cases until Intel has corrected the bugs.
The only disadvantage: you have to mount the BD/ISO.
_______
Howto
The old BD3D2MK3D v0.23 includes a folder named \toolset\stereoplayer.exe\ with all necessary files.
1. Download BD3D2MK3D v0.23 (link on the first page of this thread) and paste the \stereoplayer.exe folder into \toolset of the current BD3D2MK3D installation.
Required content of \stereoplayer.exe\
avs2yuv.exe (copy of toolset)
x264.exe (copy of toolset)
DirectShowMVCSource.dll
CoreAVCDecoder.dll
MPEGSplitter.dll
2. Update CoreAVC DLLs
Download and install latest Stereoscopic Player and replace CoreAVCDecoder.dll and MPEGSplitter.dll in \stereoplayer.exe with the newer versions. You cannot use newer stf.dll for SBS and TAB anymore (crash). But it is not necessary with the scripts of BD3D2MK3D.
3. Start BD3D2MK3D and generate scripts and files.
4. Edit _ENCODE.cmd
set path=...\BD3D2MK3D\toolset\stereoplayer.exe;...\BD3D2MK3D\toolset;%path%
Remove the absolute path from avs2yuv.exe or x264.exe. Then the start goes from \stereoplayer.exe.
5. Edit _ENCODE_3D_MOVIE.avs
LoadPlugin("...\BD3D2MK3D0\toolset\stereoplayer.exe\DirectShowMVCSource.dll")
# Load main video without newer stf.dll otherwise CRASH!!!
# E = drive letter of BD/ISO, framecount = number of frames
# Example: Pacific Rim
left = DirectShowMVCSource("E:\BDMV\STREAM\SSIF\00098.ssif", seek=false, seekzero=true, framecount=188857, decodeleft=true)
right = DirectShowMVCSource("E:\BDMV\STREAM\SSIF\00098.ssif", seek=false, seekzero=true, framecount=188857)
# For Half SBS
StackHorizontal(HorizontalReduceBy2(left), HorizontalReduceBy2(right))
6. Mount the BD to get access to ssif
The demuxed streams .x264 and .mvc cannot be used because DirectShowMVCSource() cannot read it.
7. Start x264 encoding with _ENCODE.cmd
DirectShowMVCSource() works properly but the speed is slow - about 9-14 fps (no HW acceleration).
_______
So I ask to add again the the stereoplayer.exe folder with DirectShowMVCSource.dll. Users can download Stereoscopic Player themselves for dll updates.
On the other hand you can remove the support for FRIM, based on the same Intel DLLs. DGMVCSource() worked more stable on my systems.
r0lZ, what do you think?
r0lZ
2nd November 2014, 14:14
I have noticed the bugs in the latest versions of the Intel DLL, and it's why I have not included that versions with BD3D2MK3D. But afaik, the libmfxsw32.dll distributed with BD3D2MK3D (libmfxsw32.dll v5.14.4.28, released april 28, 2014) works fine with all movies. At least, I have never had any problem. There is one well known exception though: Pacific Rim has one or two little glitches, I don't think it's the same bug than the one you describe.
I don't think I'll add the support for DirectShowMVCSource, because it works in a very different way than the current filters based on the Intel lib. I don't want to have to handle two very different methods in the same program. Anyway, if you really want to encode with DirectShowMVCSource, you can use the old BD3D2MK3D v0.23. And if you want to use the current BD3D2MK3D, just be sure to NOT update the intel lib with the bugged version. If, for any version, you are forced to update it, for example because it is updated automatically when you install the Intel drivers, you should switch to software mode in BD3D2MK3D. (It's why I have added the Settings -> MVC Decoder -> Hardware Acceleration option in the latest versions of BD3D2MK3D.) In SW mode, the program should use the library provided with the package, and not the one installed elsewhere with the Intel drivers.
Also, I don't want to remove the FRIMSource decoder. It is also based on the Intel lib, that's right, and therefore it has the same problems than DGMVCSource, but it is very easy to use the version you prefer. By default, it's DGMVCSource, but you can change it if you wish. (For me, supporting the two Source filters is very easy, because they work almost identically, and I have just to modify the LoadPlugin and Source commands in the AVS script.)
Of course, I may change my mind if someone can demonstrate that the current methods fail anyway, even when libmfxsw32.dll v5.14.4.28 is used.
frank
2nd November 2014, 18:42
Maybe it's hardware dependent. I use I7 Core-i with Sandy and Ivy Bridge, no Haswell.
I have tested all updates of Intel DLLs until April 2014 - but no luck, the glitches in the movies remained there. With software decoding too. :mad:
Intel drivers of the Media SDK are not stable when transcoding to MVC 3D (FRIM). I had crashes and crashes again, often had to reboot to free memory. Then I gave up.
AFAIK professional software such as rovi TotalCode doesn't use the Media SDK and works well.
We are left with only the use of x264 -> BD3D2MK3D.
So I will test again, especially with libmfxsw32.dll v5.14.4.28.
jdobbs
2nd November 2014, 18:56
Are you still having the same issue with software encoding and decoding? I've never had an issue with FRIM when using software for both.
r0lZ
3rd November 2014, 10:57
I have tested all updates of Intel DLLs until April 2014 - but no luck, the glitches in the movies remained there. With software decoding too. :mad:
Can you describe the glitches you have noticed? In Pacific Rim, there are a few bad frames in the whole movie when using libmfxsw32.dll v5.14.4.28. Maybe there is a similar problem with The Avengers. I don't know, because I have not encoded that BD yet.
In the other hand, the problem I have noticed with most recent versions of libmfxsw32.dll is totally different. With many (or perhaps all) movies, the MVC stream cannot be properly decoded at all. All frames (except a few black frames at the beginning of the movie) are bad. And it's not small glitches near the borders, but the whole picture that is totally bad. I think we can live with the "Pacific Rim problem", because it occurs in very rare occasions, but of course, the new decoders cannot be used at all.
I don't have a suitable hardware, so I can't test the hardware library, but I know that recent versions have problems too. After a discussion via PM with an user, it seems that switching to software mode and using v5.14.4.28 is sufficient to solve them.
Of course, I still hope that Intel will fix the bugs rapidly...
frank
6th November 2014, 14:05
The pictures show the damaged location at 1:06:16 in Pacific Rim, reencoded to hTAB.
Intel software decoding (libmfxsw32.dll from BD3D2MK3D 0.54).
Hardware: Asus Notebook Intel Core I7-3517U (Ivy bridge)
OS: Windows 7 x64
http://thumbnails110.imagebam.com/36261/4216a4362609187.jpg (http://www.imagebam.com/image/4216a4362609187) Frame 95327
24 frames lost
http://thumbnails109.imagebam.com/36261/9507d3362609189.jpg (http://www.imagebam.com/image/9507d3362609189) Frame 95352
http://thumbnails109.imagebam.com/36261/a32ace362609192.jpg (http://www.imagebam.com/image/a32ace362609192) Frame 95353
...
http://thumbnails111.imagebam.com/36261/71456b362609207.jpg (http://www.imagebam.com/image/71456b362609207) Frame 95356, last damaged
The frame numbers are from reference. There are 24 lost frames (GOP) in the reencoded stream! After that point the sound is not in sync.
Sorry r0lZ, that's no glitch, that's a heavy bug in my eyes.
Very annoying is that the MVC decoder doesn't allow any seek to a location (Virtualdub) for testing. So you have to read/encode until the bad location. Very time consuming.
@jdobbs
Yes, same errors. The decoder is the culprit.
Sure, you have other hardware. I use a notebook.
r0lZ
6th November 2014, 14:28
I know that there is a problem with Pacific Rim, but afaik, it's the ONLY BD that BD3D2MK3D cannot decode properly. And during my tests, I have not noticed any audio sync problem, but I may be wrong. Anyway, I don't want to revert to the old method just for one BD (because that will require a big rewrite of the program, DirectShowMVCSource has also its pitfalls, it is much more difficult to maintain for me, and much slower for the peoples lucky enough to have the Intel hardware decoder).
BTW, I have just finished to encode The Avengers (with libmfxsw32.dll v5.14.4.28). I haven't had enough time and courage to watch it completely (I hate that stupid super-hero films!) but there is obviously no decoding problem around 0:00:12 or in the first half of the film. That confirms that libmfxsw32.dll v5.14.4.28 works usually well. The exception of Pacific Rim is strange, and difficult to understand, but that single exception is not sufficient to motive me to rewrite BD3D2MK3D completely. Sorry.
mini-moose
7th November 2014, 12:24
Maybe this was brought up before so apologies in advance...
Can the tool handle merging multi discs? For example extended versions of The Hobbit 3D are spread on 2-discs.
I'd rather have them as one long video and not two separate
vids. I assume I can append with mkvmerge but I'd rather just encode those as one if there's such a possibility.
thanks
r0lZ
7th November 2014, 13:45
No, sorry, BD3D2MK3D cannot do that. As you have suggested, Mkvmerge's append mode is the solution. Just be sure to use exactly the same encoding parameters when you encode the two parts.
CaBleman
8th November 2014, 11:39
'lo there,
I'd like to ask you, r0lZ, to add an option for how to append the file name postfix, e.g. as options "space", "underline" or "dash". People have different systems to name their files and some of the postprocessing tools / media DBs etc. do not support or stumble over spaces in file names (I know that it should not be that way). I use underline "_" in all my filenames and is it is a bit annoying that I have to rename them after the final muxing with BD3D2MK3D (sometimes I forget that, too). If I'm not mistaken, your program used an underscore before - you have probably changed it in between? It if not too much effort, please think about about reverting that or putting in an option - highly appreciated!
Another thing that I have observed is a significant black gap between the two sides for one movie (Cloudy... 2), impacting the auto-regocnition of Sony TV for 3D content. After manually setting the TV to 3D it works fine, but has anybody else encountered such a gap?
Cheers,
CaBleman
r0lZ
8th November 2014, 14:29
Adding an option to replace the spaces with a dash, an underscore or a dot should be feasible. But no, BD3D2MK3D has never used the underscore. A space is a space, and should be left as it is. We are in the 21th century, and the 8.3 file names without spaces are a thing of the past. IMO, if you have a player or TV that doesn't support the spaces in file names, you should return it to the store for malfunction! But don't worry, I'll try to do what you want. BTW, it will replace ALL spaces in the whole file name with the selected character, not just the last space before the "postfix". Is it OK?
The gaps between the two views of a movie depend of the original BD, and are not due to BD3D2MK3D. I can't remove them. And anyway, a good player should recognise the 3D format automatically with the frame-packing flag in the video stream, or with the stereoscopy option of the MKV container. They are added automatically by BD3D2MK3D anyway, and there is absolutely no need to analyse the image to discover that the file is a 3D movie. (However, I agree that that analysis may be useful for movies badly encoded with programs that do not set these options properly, as it's the case with most 3D movies posted on the internet.) Again, if your player doesn't recognise the 3D format, you should return it to the store! ;-)
CaBleman
8th November 2014, 14:51
Hey r0lZ,
thx for the quick reply. The spaces can become a problem in scripting, especially with my Synology NAS; and maybe it was only on the folder level
but at some point I decided it was safest to use the Underscore throughout all file names. Yet I totally agree with you that it shouldn't have to be that way.
Thanks for offering the option, and yes, globally in the file name is fine.
The auto recognition via analysis fails on a fairly new Sony 3D TV, but the player I use is an old Popcorn Hour C200,
which does not interpret any 3D flags and may not even send this information to the TV.
That's where SBS comes in handy: the player does not need to know ;)
I know the gap is not BD3D2MK3D's responsibility - it was just the first time for me and I wanted to know more about it... thanks again!
Bye,
CaBleman
CRFOnly
10th November 2014, 08:10
I just came back here to see there is a new version of the program (havent tested yet but it's a matter of time hehe).
I'm glad you fixed the 2d sup forced subtitle problem, it was the only thing i didnt liked. Now everything is perfect, even better than when i started using your software. You did an error in my nickname in the changeslog but honestly i dont care much, the important thing is its fixed and this software rock. Ima probably try it really soon and come back at you.
Keep rocking!
r0lZ
14th November 2014, 12:53
Here is the new version, with the possibility to replace the spaces in the file names as requested above, and a new tool to verify the MKV files (useful if you have sometimes some MKV files that are not correctly muxed due to USB problems).
Enjoy!
# v0.55 (November 14, 2014)
# - Added the Settings -> Output File Name menu, with the possibilities to replace the spaces with another character and to specify the extension.
# - Added Tools -> Verify MKV File to verify if the specified file has been correctly muxed.
# - When converting a subtitle stream to 3D, the Depth tag is added anyway in the temp 2D XML file, even if no 3D-plane has been provided.
# - Bug fix: The Arcsoft DTS decoder was not used to convert DTS to AC3 during the main process, even when it is available.
# - Minor cosmetic changes.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
RipFan
29th November 2014, 16:19
Thanks a lot for all your work on this, i really appreciate:thanks:
How can i change some settings like: deblock, subme, me_range, vbv-bufsize and vbv maxrate?
What can i write in: "Additional options" that can be assumed?
The "language" it's the same that we read in media info, for example?
Like this one: --deblock=1:-2:-2 --me_range=64 --subme 10 --vbv-bufsize 48000 --vbv-maxrate 40000
Since there's no options to change in x264 parameters directely, i'm asking this here to you or to someone who may help.
I'd like to be abble to change some final results like those settings above.
If there's no chance at all it's ok anyaway, this a great tool.
Congrats for all your work on this man.
Cheers.
Note: If my english is bad, i'm sorry:rolleyes:
r0lZ
29th November 2014, 16:55
I really appreciate your appreciation! ;-)
And your English is not bad; don't worry. Mine is probably worse.
You can write any x264 parameter in the "additional options" field, except those that are already defined by BD3D2MK3D. You can easily discover what parameters BD3D2MK3D sets for you just by trying a conversion of a short clip without additional parameters. Load the _ENCODE.cmd file in a text editor to examine the x264 parameters that have been added automatically to the command line.
Deblock, subme and me_range are never set directly by BD3D2MK3D. You can therefore define them yourself.
The vbv-bufsize and vbv-maxrate parameters are set accordingly to your level setting. For example, if you select level 4.1, BD3D2MK3D adds automatically --vbv-bufsize 78125 --vbv-maxrate 62500 to be compatible with the selected level (assuming profile high). If you want to specify other vbv params, then you should NOT specify the level. (Use "do not force"). In that case, the level, the profile and the vbv parameters are up to you.
The preset, the encoding mode and the CRF/CQ/bitrate value are always set according to your selection.
The frame-packing is also defined, depending of the selected SBS or T&B mode.
A default qpfile is also defined, to force an I frame at the beginning of each chapter. (It's necessary to avoid problems when seeking from chapter to chapter with some players.)
Other parameters are automatically set, of course: --output and --frames. (You can overwrite --frames if you wish to encode only the beginning of the movie to do a quick test: just specify it in the additional parameters field, and BD3D2MK3D will skip its automatic setting.)
Note that you can save your default settings with Settings -> Save Settings Now. (You should not tick Save Settings on Exit, as otherwise they will be overwritten each time you change them.)
The language is not defined by an x264 setting, but by the muxing options of mkvmerge. It is automatically retrieved from the original BD. (You can change it if you wish by editing the _MUX_3D_OPTIONS.txt file.) And yes, it's the language that will be displayed by any player, or by MediaInfo. No language code is associated with the video stream (that is undefined by default).
RipFan
29th November 2014, 17:32
Thank you for your quick response:)
Now i'll be able to choose some settings myself.
Thanks for all and good luck for your projects and for your life too;)
Best regards
r0lZ
29th November 2014, 17:42
Thanks.
Have fun watching 3D movies! :-)
BTW, I forgot to explain that if you tick the "BD compatible" option, a bunch of options are specified automatically. But I suppose that you don't want to encode for a BD.
RipFan
30th November 2014, 15:09
Thanks for the additional info:thanks:
bottom
21st December 2014, 20:08
Hi
first of all:
Thanks, it's really a fabulous software!!!
Here are some minor things i noticed:
- The subtitle resize filter is selected/displayed as "lanczos3" in the GUI,
but the log-file always says: "Resize filter: Mitchell"
- Subtitle creation:
If "Both" (IDX and SUP) and "3D first, then 2D" are selected,
the resulting batch file ("Mux3D") often didn't match the subtitle files/streams that were actually created:
(forced subtitle files were missing completely,
filenames of 2D streams were missing the "2D" string, ...)
- There seem to be updates available for some of the tools:
tsMuxeR, mkvmerge, x264
(yes I know: 'newer', doesn't always mean 'better'!)
- There are some movies, where Left and Right View seem to be swapped.
The problem is already on the BluRay itself!!!
...but can this be handled / fixed by BD3D2MK3D somehow?
(Using "FRIMDecode" and the commandline option "-swaplr"
I could manually (and laboriously) create a working SBS video stream)
Thanks again!
bottom
r0lZ
21st December 2014, 21:03
Hi
first of all:
Thanks, it's really a fabulous software!!!
Thanks!
Here are some minor things i noticed:
- The subtitle resize filter is selected/displayed as "lanczos3" in the GUI,
but the log-file always says: "Resize filter: Mitchell"
I have to verify, but there are 2 methods to convert the subtitles to 3D. The simplest one uses the filter defined in the Settings menu, and is based on suppe3d, itself using BDSup2Sub for some conversions and the resize. That method cannot generate the subtitles with the correct depth, and is therefore not used any more during the main process. It is still present in the Tools menu, because it is faster and easier than the other method, and still good if you want to convert a subtitle file downloaded from the internet and you don't have a 3D-plane.
The second method is based on ImageMagick, and it uses the 3D-planes to generate 3D subtitles with the correct depth. It's the conversion used during the main process. The resize is made with ImageMagick itself, during the conversion to 3D, and BDSup2Sub is used only to convert the 3D XML/PNG files to SUP or SUB, but not for the resize. The filters are therefore different. The default resize filter for that method is Mitchell. You can change it if you use the GUI from the Tools menu, but currently, it is not possible to modify it when the conversion of the subtitles to 3D is made during the main process. I'll add an option to control that setting too, but IMO Mitchell is excellent for the subtitles (probably better than Lanczos; Read the ImageMagick doc about the resize filters if you are not convinced. Anyway, don't be too picky for the quality of the subtitles. They are just subtitles after all!)
- Subtitle creation:
If "Both" (IDX and SUP) and "3D first, then 2D" are selected,
the resulting batch file ("Mux3D") often didn't match the subtitle files/streams that were actually created:
(forced subtitle files were missing completely,
filenames of 2D streams were missing the "2D" string, ...)
Strange. I have verified that part recently, and I didn't find any problem. I'll have a look anyway, but you can perhaps help me. Can you provide a concrete example (with the list of streams that have been selected and their options or a screenshot of tab 2, and the resulting file names of the created subtitle files, as well as the MUX_3D_OPTIONS.txt file)? Thanks.
- There seem to be updates available for some of the tools:
tsMuxeR, mkvmerge, x264
(yes I know: 'newer', doesn't always mean 'better'!)
I just did the update of MkvMerge yesterday. The next version will be up to date.
I will probably never update tsMuxeR 3D any more, because its development has ended, and the latest versions are full of bugs. AFAIK, the version currently distributed with BD3D2MK3D is the best one. You can try to replace that version with a more recent one, but do it at your own risk!
I have to verify for x264...
- There are some movies, where Left and Right View seem to be swapped.
The problem is already on the BluRay itself!!!
...but can this be handled / fixed by BD3D2MK3D somehow?
(Using "FRIMDecode" and the commandline option "-swaplr"
I could manually (and laboriously) create a working SBS video stream)
Well, if the blu-ray can't display the views in the correct order, then BD3D2MK3D cannot do it either. It trust the flag in the playlist.
However, if you need to swap the views manually, it's easy: open the _ENCODE_3D_MOVIE.avs file in a text editor, and locate these lines:
left = SelectEven(interleaved)
right = SelectOdd(interleaved)
And just swap the "left" and "right" words:
right = SelectEven(interleaved)
left = SelectOdd(interleaved)
That will work regardless of the MVC decoder used.
I can't do much more. Adding an option in the GUI to control the inversion of the views will be more confusing than useful.
Thanks for your bug report.
bottom
22nd December 2014, 02:29
Hi
thanks for the fast reply!
1) subtitle resize filter:
Actually I don't care which filter is used as long as it's the one that the developer suggests. I just noticed that „Mitchell“ is printed out several times into BD3D2MK3D.log while „lanczos“ never shows up. Still the results look really good!
2) Creation of idx AND sup fails:
Don't know the best way yet how to supply you with my screenshot/log-files, but I think the behaviour can be reproduced quite easily:
On the 2nd tab I additionally always check/select the “forced” streams. The problem I described happens exactly for those streams for which no forced subtitles exist (which seems to be the case quite often).
So in my example at the end of demuxing there's the message:
* No forced captions in "00037.track_4608.Deu_forced.2D.idx". Skipped.
And when trying to mux (using '_MUX_3D.cmd') there's the message:
Warning: '00037.track_4608.Deu.3D.sub': A track with the ID 0 was requested but not found in the file. The corresponding option will be ignored.
Warning: '00037.track_4608.Deu.2D.sub': A track with the ID 0 was requested but not found in the file. The corresponding option will be ignored.
The problems are:
a) There's no file name “00037.track_4608.Deu.3D.sub”
According to the “_MUX_3D_OPTIONS” this should be a “0:German 3D (BD SUP)” track!?
In my understanding the entry should be “00037.track_4608.Deu.3D.sup”. This file exists/was created but is never referenced from anywhere inside the batch file.
(Actually I edited the options-file according by changing “sub” to “sup” and the result looked good)
b) Same is for the missing file “00037.track_4608.Deu.2D.sub”
“_MUX_3D_OPTIONS” states it as “0:German 2D (BD SUP)”
Here the file available is “00037.track_4608.Deu.sup”.
Renaming “Deu.2D.sub” to “Deu.sup” in the options-file seemed to do the trick.
3) updated tools:
Nice to hear, thanks!
I can confirm that x264 r2491 (x64) worked fine for me, but I haven't checked the latest release r2525 yet.
4) swap left/right view:
This is of course no problem/bug of the software!
And the solution you provided is perfect
Thanks!
bottom
r0lZ
22nd December 2014, 12:33
OK, thanks for the explanation about the subtitle problem. I think I'll be able to fix the bug easily now.
Of course, as you have probably guessed, the warning * No forced captions in "00037.track_4608.Deu_forced.2D.idx". Skipped. is normal in most cases. The problem is that BD3D2MK3D can't know if there are forced subtitles in a particular stream without demuxing it first. Since demuxing a stream is very time consuming, I prefer to leave the option to extract the forced subs anyway, and issue the warning when that option has been ticked and the stream has been demuxed and analysed and it appears that there are no forced subtitles in the stream. When it's the case, the forced subtitles are simply skipped, and of course not included in the MUX file.
Anyway, that should not produce the bug you have described. Apparently, the bug is caused by a wrong file extension, and that should be easy to fix. I'll do it right now...
Where do you download your versions of x264? There are many builds/mods available, and I must admit that I don't know what build is the better one for BD3D2MK3D. Usually, I get the Komisar version (http://komisar.gin.by/), but I don't know if it is updated regularly and it it is the best one. Plus, I find the site very confusing. Do you have another suggestion?
bottom
22nd December 2014, 12:58
Thanks (again)!
i'm no expert!
I just check for updates here:
http://www.videohelp.com/tools/x264-Encoder
using the links from there I usually download (the non-10bit) binaries from here:
http://download.videolan.org/x264/binaries/
but videohelp also links to the page you mentioned... and yes, it's kind of confusing!
the "clear" builds on the upper left should be fine
but i have no idea if any of the patches (lower right)
that are built into the "kMod" versions could be useful (or 'dangerous') for BD3D2MK3D ...
bottom
r0lZ
22nd December 2014, 13:30
OK, thanks.
I've just fixed the bug of the wrong .sup filename extension. It was caused by a stupid typo, and indeed, it happens only when "both" (VobSub + BD SUP) is selected in tab 2. Thanks again for submitting that important bug.
I will now finalize the new version and I'll release it as soon as possible, probably still today...
r0lZ
22nd December 2014, 15:13
OK, I've finished the new version. BTW, the latest Komisar build of x264 is dated from yesterday! It cannot be more up to date.
I haven't tested the new version of BD3D2MK3D much, and especially the new x264, but I have fixed all problems reported by bottom above. (Funny, "bottom above" sounds strange) ;)
Thanks again.
r0lZ
22nd December 2014, 15:52
# v0.56 (December 22, 2014)
# - Added tab 4: Cover Art to define the images to mux and use as cover art and thumbnails. (To view them under Windows, install Media Preview or Icaros.)
# - Added Tool -> Add Current Cover Art to MKV File to add the cover art currently defined in tab 4 to any existing MKV file.
# - Added Settings -> Output File Name -> Top & Bottom String to use TAB or TB instead of T&B in the file name.
# - Added Settings -> Output File Name -> 3D Format Extension to add automatically the -lrq, -abq, -lr or -ab extension to the filename so that Bino, PotPlayer, KMPlayer... can recognize the 3D format automatically.
# - Added Tools -> Remove subtitles present in another stream (to remove forced subs in a forced-only stream).
# - Added Settings -> 3D Subtitles Resize Filter -> For Method Using ImageMagick (With 3D-Planes) to define the filter to use during the main process. (Default: Mitchell)
# - Bug fix: Wrong .SUB instead of .SUP extension in _MUX_*D_OPTIONS.txt files when "both" (IDX/SUB and BD SUP) is selected in tab 2 (Thanks bottom!)
# - Updated x264 to the latest version (v0.144.2525)
# - Updated MkvMerge to the latest version (v7.0.4 'Circles')
# - Added MkvPropEdit (v7.0.4 'Circles') in the Tools folder, necessary for the new Add Current Cover Art to MKV File tool.
As you can see, it's not only a bug fix release. I have also added a tab to define the cover art if you wish to include a preview image and/or thumbnail for your MKV file, as well as a tool to add a new cover art to any existing MKV/MK3D or MKA file. Note that the MKV/MKA formats are not recognised automatically by Windows, so if you want to see the cover art or thumbnails in the Windows Explorer, you have to install BabelSoft's Media Preview (http://babelsoft.net/products.htm) or Shark007's Icaros (http://shark007.net/tools.html). Both are free. I prefer Media Preview, because Icaros requires some additional codecs to work with MKV files, but Icaros seems to be somewhat more powerful.
There is also a tool to remove all subtitles of a 2D or 3D XML/PNG subtitle stream that are present in another XML/PNG stream. That tool is similar to the existing "Extract unforced subtitles from XML/PNG" tool, but it works when the forced subtitles are authored in a specific stream. It is useful if you want to hardcode the 3D forced subtitles on the video AND you want to include the normal subtitles as a stream that can be turned on or off AND there are two subtitle streams in the original BD: one with all subtitles and another one with the forced subtitles only. With the new tool, you can remove the forced subtitles from the complete stream, and include the resulting subtitle stream in the final MKV instead of the original one. Without that tool, the forced subtitles were displayed twice: once because they are hardcoded on the video, and once because they are present in the subtitle stream.
Please note that the forced subtitles are NOT removed automatically during the main process when the forced subtitles are hardcoded on the video. If you want to remove them, you have to use the new tool and convert the resulting XML/PNG stream to 2D or 3D SUP or SUB, and either overwrite the original SUP or SUB file with the new one, or edit the _MUX_3D_OPTIONS.txt file to change the file name of the subtitle stream.
Another useful change is the possibility to include a new extension to the file name, that is used by some 3D players to recognize automatically the 3D format of the file. For example, PotPlayer, Bino and KMPlayer are unable to recognise the 3D format with the existing MKV Stereoscopy tag or with the x264 frame-packing flag and they ignore completely the .MK3D extension, but they can enable the right 3D mode automatically if you add the special string "-lrq" (for Half-SBS) or "-abq" (for Half-T&B) or -lr and -ab (for Full-SBS or Full-T&B) just before the .mkv file extension, like in "Movie Title-lrq.mkv". The new BD3D2MK3D adds now that extension automatically, but you can remove it if you wish with the new "Settings -> Output Filename -> 3D Format Extension" option.
Currently, I have implemented that option for PotPlayer, KMPlayer and Bino only. If you know other extensions that work for other software or hardware players, please let me know. I'll add them too. For example, I have read that some models of Samsung 3D TVs can use similar extensions, but my TV can't, and I haven't found the doc about that possibility. So, if you have such a TV, please let me know what its doc says about the automatic recognition of the 3D formats. Thanks in advance!
Download latest version: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
Enjoy!
mini-moose
1st January 2015, 12:10
the latest Komisar build of x264 is dated from yesterday! It cannot be more up to date.
I haven't tested the new version of BD3D2MK3D much, and especially the new x264
komisar builds are updated regularly. Usuaully within 24h after a new binary has been compiled (with latest changes) by VLC.
the new revisions usually contain what seem to me like minor improvements/fixes mostly, I can't really understand most of the stuff mentioned in the changelogs:). The latest rev has a new/additional aq mode though.
At any rate they should work just as well as the previous version, unless they have some bug that would usually result in a fixed revision soon after.
r0lZ
1st January 2015, 12:21
Thanks for the precision. Do you know what is that new aq mode? Should I implement it? Where can I find a description of how it works, its usage and its parameters?
Sharc
1st January 2015, 16:27
....... Do you know what is that new aq mode? Should I implement it? Where can I find a description of how it works, its usage and its parameters?
Little info perhaps here (http://forum.doom9.org/showpost.php?p=1703357&postcount=2044) .
I understand that it refers to aq mode 3 i.e. "auto-variance AQ with bias to dark scenes" which has so far been experimental only. I didn't try this mode yet.
mini-moose
3rd January 2015, 10:31
I understand that it refers to aq mode 3 i.e. "auto-variance AQ with bias to dark scenes" which has so far been experimental only.
Yes, that's it. I guess it might be recommended for darker movies or at least for people who split a movie encode into lots of smaller segments with each having it's own settings. I didn't try it yet either.
x264 help doesn't give a lot more info:
--aq-mode <integer> AQ method [1]
- 0: Disabled
- 1: Variance AQ (complexity mask)
- 2: Auto-variance AQ
- 3: Auto-variance AQ with bias to dark scenes
r0lZ
3rd January 2015, 10:54
OK, thanks. It seems to be a too complex option to be put in the GUI of BD3D2MK3D. Knowledgeable persons can use it anyway if they want so by typing it in the "Additional options" field.
well076
11th January 2015, 22:03
Hi.
I pushed Do it! button and program started demux process. After demuxing then the program convert subtitles I have some errors. (win7x64,last java x32 and avisynth installed) I choose all subtitle types and formats (with bdsup2sup.jar in settings) but always getting these errors. If I ignore this errors program start encoding and then muxing. Muxed mkv (movie Avatar custom blu-ray 3d) look great but I don’t have subtitles. Please help. Thanks.
Screenshots and logs are in archive and download here (https://yadi.sk/d/K04sYDfgdmuVm).
p.s. What x264 encoder options I have choose for the best (like remux) quality of the movie (I played with CRF 15-23 mode,medium,none. With CRF 15 I have big file size, next time try 17-18)?
r0lZ
12th January 2015, 11:47
Hi, and welcome to the Doom9 forums.
It seems that the subtitle streams of your BD contain errors. I can't tell exactly what's wrong, because the error messages are coming from BDSup2Sub.jar, and not from BD3D2MK3D itself, but if I understand correctly, BDSup2Sub hangs because there is (at least) one subtitle that is referenced but missing in the original SUP file. I have never seen that kind of error, but I can have a look if you send me the two original SUP files. You can also contact the author of BDSup2Sub.jar if you wish. He should understand the error messages better than me. Anyway, something is wrong with your BD. Are you sure it has been correctly ripped to ISO and that it doesn't contain read-errors? (BTW, have you already converted successfully other BDs with subtitles? If you have the same problem with all BDs, that could mean that BdSup2Sub or Java are badly installed.)
I have also seen in your screenshot that you wonder what is the usage of the "Hardcode Subtitle on Video" option in the last tab. If you select a subtitle stream in that field, it will be "hardcoded on the video". That means that the subtitle stream will not be muxed with the video and audio streams, but "burnt" physically "in" the video image when the 3D-T&B video stream will be encoded by x264. That has advantages and drawbacks. The advantage is that you can be sure that the 3D subtitles will be displayed exactly where they should, at the correct position and with the correct depth relatively to the surface of the screen. Most players (especially hardware players) do not support the 3D subtitles streams at all, or they move or resize them, and the depth effect is either lost or wrong. For these players, the only way to have correct 3D subtitles is to hardcode them. The drawback of the hardcode method is that you cannot turn the subtitles on or off. They are definitively in the video stream, and cannot be modified. Therefore, I suggest to use that function for movies you want to watch anyway in their original languages with Russian 3D subtitles. For the other movies, it might also be a good idea to hardcode the forced subtitles only, so that you can watch the movie with the Russian audio and see the translation of the words spoken or written in other languages with the correct 3D effect. (You can do that, for example, with the forced subtitles of Avatar, containing the translations of the sentences spoken in the Navi language.)
I have no definitive answer for your question about the CRF value. There is no "best quality", except perhaps CRF 0, because with CRF 0, your encode will be lossless, but of course, the file size will be extremely big. CRF 15 is indeed a very low value. Some peoples encode with low values such as CRF 17, but IMO that produces still too big files. The default (CRF 23) is IMO a good compromise between quality and file size. Usually, that produces files between 3 and 10 GB, depending of the duration and complexity of the movie. I prefer to use a lower value (around 20) for movie where the quality of the image is very important, but CRF 23 is OK for most movies. I have read somewhere that the file size is multiplied by approx 2 when you lower the CRF value by 3. I have never tried to verify if it's correct, but if it's true, that means that the video stream computed at CRF 20 should be approx twice as big as the stream computed with the default value 23. It's why I think that using values under 20 is somewhat exaggerated. Similarly, using CRF values greater than 26 can degrade the video quality too much. IMO, values between 19 and 26 should be used most of the time, but of course, it's my opinion only.
Note also that you can reduce the file size without changing the CRF value if you select a slower preset. Presets veryslow and placebo are too slow for me, but I like the preset Slower. Note however that using a pseset slower than the default "medium" changes the level automatically. Since most hardware players do not support levels 5.0 or higher, you may need to force level 4.1 (or 4.2) if you use a slow preset.
You can also compress better the "classic cartoon" movies, with large areas of flat colors (not CGI animation!) if you select the Animation tune. But selecting the Film tune has the opposite effect. It makes the image sharper, but that increases the file size.
Personally, I use almost always preset slower, tune none and level 4.1. The CRF depends of the movie, but it is usually between 20 and 23.
Nico8583
12th January 2015, 19:35
@well076 : Personally I allways use CRF 18, preset Slower, level 4.1 and tune film, even for animation. File size is important but I prefer to keep better quality than size, so I think CRF 18 is the good compromise if you want to keep your movie as collection ;)
well076
13th January 2015, 00:35
Hi, and welcome to the Doom9 forums.
It seems that the subtitle...
Big thanks for your detailed response and bd3d2mk3d tool. I dont converted other BDs but I will try.
@well076 : Personally I allways use CRF 18, preset Slower, level 4.1 and tune film, even for animation. File size is important but I prefer to keep better quality than size, so I think CRF 18 is the good compromise if you want to keep your movie as collection ;)
Thanks. Next time i`ll try with your preset.
frank
18th January 2015, 18:21
BD3D2MK3D v0.56
# - Added Settings -> Output File Name -> Top & Bottom String to use TAB or TB instead of T&B in the file name.
# - Added Settings -> Output File Name -> 3D Format Extension to add automatically the -lrq, -abq, -lr or -ab :thanks: Very useful!!!
But I think 3D-abq or 3D-lrq is sufficient in the file name. No need for SBS and TAB when these extensions are used.
Can you remove the time stamps from chapter names? It is ugly and very annoying because most players show the time stamps in addition. I suggest 2 digits as chapter names like 01, 02, 03,... Then we can easily edit and expand the chapter names, if necessary.
And... the extension .ogm is the extension of .ogg media files not of simple chapter text files. OGM is a container format that can store video, audio and subtitle streams. Not common for editors, better would be .txt. The freeware tool Chaptergrabber only recognizes .txt. This is a very important tool for chapter grabbing and converting (ANSI <-> UTF8, 25 <->23.976, timeshift etc).
mkvToolnix uses .txt properly for simple chapter text files.
Now I only use PotPlayer because it has the lowest cpu load and can show scene pictures at chapter marks.
r0lZ
18th January 2015, 18:39
I agree that -abq and T&B are redundant, but IMO T&B (or TB) is more understandable than -abq. BTW, IMO, 1080p is somewhat useless too, since normally all 3D movies are encoded in 1080p. IMO, the resolution should be added only when it is NOT 1080p.
Anyway, I plan to implement a new method to build automatically the file name with anything that can be useful, based on a template provided by the user. Something like "%title (%director, %date) 3D-%stereoscopy 1080p (%author)%binoext.mkv" by default to generate a file name similar to the current one. It will be easy to change the output format if you wish. I'll try to do it soon...
I may add an option to use "NN - time" or only "NN" for the chapter names. My hardware players do not add the times and I like to have it automatically added in the chapter names.
I have already noticed the discrepancy of the .ogm extension. I have used it originally because MkvExtractGUI2 uses that extension when it exports a chapter file, but I know now that it's not the correct extension. I will replace it with .txt. Thanks for the remainder!
r0lZ
1st February 2015, 09:49
OK, finally, here is the new version. I have totally rewritten from scratch the part that opens the 3DBD and parses the MPLS files to display the available streams. Previously, that part was made with tsMuxeR, but it was necessary to launch it for all playlists (2D and 3D) of the BD. That was very slow, and there are a lot of bugs in the streams reported by tsMuxeR, so eac3to was used to verify the tsMuxeR output, and I had to write several workarounds for several bugs (like, for example, the bug of the wrong 3D-planes assignments to the subtitle streams). Now, I use my own MPLS parser. It is much much more rapid, and hopefully it has less bugs. The user should not notice major differences, except that the BD is now opened almost instantly. Also, previously, tsMuxeR displayed all streams present in the M2TS (or SSIF) file(s), regardless of the streams referenced in the MPLS file. (That was at the origin of the 3D-planes bug, and after having implemented the workaround, the additional streams were labelled "phantom track" in the BD3D2MK3D GUI.) Now, BD3D2MK3D displays only the streams really referenced in the playlists (without any phantom track). As a consequence, with some BDs, the same movie (with the same angle) can appear several times, with different streams. This is the most notable difference with the previous versions.
Please note that the change described above has many consequences on the internal code, because I have used a more suitable way to store the information internally than the somewhat complex tsMuxeR output. That means that I have had to modify the code in many parts of the program, to adapt it to the new structure. It is therefore possible that new bugs have been introduced, although I've spent much time in verifying everything. Of course, if you find a bug, please report it in this thread. Anyway, use this version with care.
There are also a lot of other changes, most of them minor. They include changes to the way the final file name is built (suggested by Frank above), some new options in several tools and in the settings, and minor bug fixes.
# v0.57 (February 1, 2015)
# - Huge change: BD3D2MK3D uses now its own MPLS parser instead of TsMuxeR 3D. Way faster and less bugs!
# - Opening a BD3D is now very fast.
# - Changes in the global label and the streams labels within the MKV container.
# - A lot of minor changes.
# - Better errors handling in case of damaged input files or ISO.
# - Tool -> Convert Audio File to AC3: Added an option to speed up or slow down the audio to adapt it to another frame rate.
# - Changed the extension of the subtitle files from .ogm to .txt.
# - Added Settings -> Chapter Names -> Include chapter times (enabled by default)
# - Added Settings -> Output file name -> Do not add "1080p" (disabled by default)
# - Added Settings -> Output file name -> Do not add "SBS" or "T&B" (disabled by default)
# - "3D" is now added in the output file name only if it is not present in the movie title or when Do not add "SBS" or "T&B" is not ticked
# - When a XML subtitle file is created, the file is now patched with the correct frame rate (instead of the BDSup2Sub default 25 fps)
# - Bug fix: The Add Current Cover Art to MKV File tool was unable to delete an existing cover art attachment before adding the new one
# - Updated MkvMerge and MkvPropEdit to the latest version (v7.5.0 'Glass Culture')
# - Updated Avs2yuv to the latest version (v 0.24bm3)
As usual, download the latest version here: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
r0lZ
11th February 2015, 11:02
It's mainly a release to fix two bugs introduced in the previous version. Please download it, as these bugs are relatively important (although they have some bad effects only on some rare BDs).
# v0.58 (February 11, 2015)
# - Convert Subtitles tools: Better detection of the language from the filename when converting a BD SUP stream.
# - Workaround for a bug in some subtitle files that contain only full-width subpics, normally impossible to convert to 3D.
# - Bug introduced in v0.57: The conversion of the subtitle streams was aborted without notice if the 3D-planes were missing.
# - Bug introduced in v0.57: Some chapter times were wrong with some (rare) BDs, notably Dragon Gate 3D.
# - Added the possibility to use Pistacho's MVCSource (only available if BDtoAVCHD is installed). It works fine with Pacific Rim and Dragon Gate.
# - Updated mkvmerge, mmg and mkvpropedit to the latest version (v7.6.0 'Garden of Dreams')
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
zaphodalive
17th February 2015, 02:43
Hi, I used to use DVDFab for encoding my 3D blurays but switched to your tool so as to get depth on the subtitles (DVDFab didn't support any subtitle depth). I prefer to burn-in subtitles as I've had numerous issues with players using external or muxed subtitle streams.
I trialed BD3D2MK3D with my Thor 2 bluray and everything worked out perfectly except that the subtitles are out of sync, trailing the video by about 1.5-2 seconds. Any thoughts on why this might have happened? It didn't happen when encoding with DVDFab, and I know it's not much information to go by but if you have any suggestions that would be great.
I'll try to encode another film with subtitles and see if the issue occurs again or if it's specific to the Thor 2 bluray.
Appreciate the effort that's gone into this tool, thanks.
r0lZ
17th February 2015, 10:35
Welcome to the Doom9 forums and thanks for your kind words, zaphodalive.
I have never had any subtitle sync issue, and I don't know what could be causing that problem. Have you created the MKV with BD3D2MK3D itself, or have you muxed the streams yourself? Normally, there should be no subtitle delay in the original BD, but of course, if you have used a non-zero number of seconds of black at the beginning of the video (in the last tab), that delay must be taken into account for the mux. BD3D2MK3D takes care of that automatically, but you have to add the delay yourself if you use the MkvMerge GUI.
If you still have the project files, can you send me the _ENCODE_3D_MOVIE.avs, _MUX_3D_OPTIONS.txt and the BD3D2MK3D.log files (to pgcedit dot g m a i l dot com)? I'll have a look, but I can't promise to find something wrong. Also, what version of BDSup2Sub did you use? (See in the Settings -> BDSup2Sub menu.)
Last question: I'm not really fan of the Marvell movies, and I don't know exactly what movie is Thor 2. Is it Thor, The Dark World? If it's the case, I have that BD here, and I'll try to encode it with hardcoded subtitles. What version of that BD did you have? Sold in which country? And what subtitle stream (language) have you hardcoded?
r0lZ
17th February 2015, 11:00
Wait! Forget my previous post. I've just verified with my BD, and indeed, some subtitle streams have a one second delay (exactly 1001 ms). I did not know that a delay was possible in the subtitle streams, and therefore there is a bug in BD3D2MK3D. I will fix it as soon as possible. It's easy to do for the muxed subtitle streams, but less easy for the hardcoded subs. I may need some time...
In the meantime, to sync the muxed subs properly, you can edit the _MUX_3D_OPTIONS.txt file and add 1001 to the "sync" value of the affected subtitle stream. Then, simply launch the _MUX_3D.cmd file to remux the final MKV file. Unfortunately, it's not as simple for the subtitles hardcoded over the video, as afaik there is no way to specify a sync offset with the SupTitle command of the avisynth script. I'll try to find a solution and will explain it here...
Thanks for your message. You have found an important bug!
zaphodalive
17th February 2015, 11:25
Hey
It was indeed 'Thor - The Dark World', but I have also tested with 'Teenage Mutant Ninja Turtles' which was also out of sync. I graphed the times in Excel and it appears that there is a linear variation through the films, e.g.:
- 1m25s - minimal variation (Thor - The Dark World)
- 12m - 0.8s variation (Teenage Mutant Ninja Turtles)
- 33m - 1.9s variation (Thor - The Dark World)
- 1h15m - 4.5s variation (Thor - The Dark World)
These times were very roughly recorded, but based on how close they appear to be to a linear variation I suspect the framerate of the subtitles is different from the framerate of the video... in fact with a rough run through the calculator is looks like it could even be the difference between 23.976fps and 24fps.
It certainly doesn't seem to be a fixed 1001ms variation in my encode as the variation gets larger through the video file. Hope that helps track the issue down.
r0lZ
17th February 2015, 11:51
OK, apparently, there is also a problem with drop vs non-drop frame timecodes. Damn! It's even more difficult than I thought. But thanks again.
Here is the MediaInfo output about the subtitle streams for Thor 2. As you can see, the subtitle streams have a delay of 1001 ms. But all audio streams have no delay.
General
Complete name : G:\BDMV\PLAYLIST\00800.mpls
Format : Blu-ray Playlist
File size : 1.04 KiB
Duration : 1h 52mn
Overall bit rate mode : Variable
Overall bit rate : 1 bps
[...]
Text #1
ID : 4608 (0x1200)
Menu ID : 1 (0x1)
Format : PGS
Codec ID : 144
Duration : 834ms
Delay relative to video : 1s 1ms
Language : English
Source : 00939.m2ts
Text #2
ID : 4609 (0x1201)
Menu ID : 1 (0x1)
Format : PGS
Codec ID : 144
Duration : 834ms
Delay relative to video : 1s 1ms
Language : French
Source : 00939.m2ts
Text #3
ID : 4610 (0x1202)
Menu ID : 1 (0x1)
Format : PGS
Codec ID : 144
Duration : 834ms
Delay relative to video : 1s 1ms
Language : Spanish
Source : 00939.m2ts
Text #4
ID : 4611 (0x1203)
Menu ID : 1 (0x1)
Format : PGS
Codec ID : 144
Duration : 834ms
Delay relative to video : 1s 1ms
Language : Portuguese
Source : 00939.m2ts
Text #5
ID : 4612 (0x1204)
Menu ID : 1 (0x1)
Format : PGS
Codec ID : 144
Duration : 834ms
Delay relative to video : 1s 1ms
Language : English
Source : 00939.m2ts
Text #6
ID : 4613 (0x1205)
Menu ID : 1 (0x1)
Format : PGS
Codec ID : 144
Duration : 834ms
Delay relative to video : 1s 1ms
Language : French
Source : 00939.m2ts
Text #7
ID : 4614 (0x1206)
Menu ID : 1 (0x1)
Format : PGS
Codec ID : 144
Duration : 834ms
Delay relative to video : 1s 1ms
Language : Spanish
Source : 00939.m2ts
Text #8
ID : 4615 (0x1207)
Menu ID : 1 (0x1)
Format : PGS
Codec ID : 144
Duration : 834ms
Delay relative to video : 1s 1ms
Language : Portuguese
Source : 00939.m2ts
[...]
So, it is strange that you have no delay in your test of Thor2 at 1m25s. If MediaInfo is right, it should be one second and a couple ms.
I'm pretty sure that the drop-frame problem doesn't occur with all BDs, as there is no sync problem with all BDs that I have tried. Perhaps the problem occurs only when hardcoding the subtitles. Anyway, I'll do tests here when I'll have some time...
r0lZ
17th February 2015, 17:51
OK, I think I've found the origin of the problem. In v0.57, I have added a patch to fix a bug in BDSup2Sub (both versions). When BDSup2Sub converts an original BD SUP file to XML/PNG, it writes <Format VideoFormat="1080p" FrameRate="25" DropFrame="False"/> in the XML file. The frame rate is obviously wrong, and therefore I have added a function in BD3D2MK3D to fix it:
# v0.57 (February 1, 2015)
[...]
# - When a XML subtitle file is created, the file is now patched with the correct frame rate (instead of the BDSup2Sub default 25 fps)
[...]
After the fix, the XML contains <Format VideoFormat="1080p" FrameRate="23.976" DropFrame="False"/>. It's better. But obviously, it was not a good idea to fix that bug, as the fix introduces a new bug.
In BD3D2MK3D, to convert the subtitles to 3D, the original SUP is first converted to XML/PNG and the frame rate is fixed. Then, the PNG files are converted to 3D, and the XML file is modified (with the new positions of the stereo subtitles) and copied with the new PNG files. Then that copy (containing the right frame rate 23.976) is converted again to BD SUP and/or VobSub format. For whatever reason, during that conversion, the time codes are modified, and they give the wrong timings you have noticed. Curiously, with the original wrong time codes of 25fps, the conversion works well. So, it seems that BDSup2Sub REQUIRES a wrong frame rate in the XML file to work properly!
I have also tried to change the DropFrame="False" to DropFrame="True", but that has absolutely no effect when converting the XML to another format. It seems that BDSup2Sub ignores completely that option.
Strangely, converting the XML to another XML works perfectly well. Probably because the time codes are simply copied from the original file.
In fact, there is a way to fix the conversion bug while keeping the real frame rate of 23.976fps in the XML. When converting the XML, it is sufficient to add "--convert-fps 24p 24" in the command line of the java version of BDSup2Sub, or "--fps-target 24" for BDSup2Sub++. Note that the bug happens also if you use the correct target fps of 23.976 (or 24p, an alias for 23.976). It's really strange. I don't understand at all the way BDSup2Sub handles the frame rates and time codes. But I understand that it is better to leave its output XML file unchanged, as otherwise strange things happen. I have therefore removed the fix added in v0.57. I will release a new version tomorrow, but I want to test it before.
The fact that the bug has been added in a very recent version explains why I have never noticed it. Note also that the 2D subtitles are correct (because they are never converted to XML/PNG).
Thanks again for the bug report!
zaphodalive
17th February 2015, 21:39
Looks like those sub streams with the 1001ms delay belong to 00939 which precedes 00800 in the 00800.mpls. I believe 00939 is an audio test that says "Left rear, left surround" - looking at MediaInfo the sub streams from 'Text #9' onwards belong to 00800 and are 1h52m in duration with no delay is listed.
The 01800.mpls excludes the audio test and only encodes 00800, and this is what I encoded on my last attempt. I think I'll do a quick encode of both the 00800 and 01800 mpls's just to check if the 1001ms delay in the 00939 sub stream actually affects the timing of the subs in the subsequent (00800) stream, or if it can be safely ignored.
r0lZ
18th February 2015, 00:06
I was wrong when I posted about the 1001ms delay. It is reported by MediaInfo (for 00800.mpls as you can see in the 2nd line of the MediaInfo log posted above) but the delay is not necessary. I guess that tsMuxeR adapts the time codes automatically when it demuxes the track. tsMuxeR does not report any delay, and it is correct. BD3D2MK3D "sees" only the streams referenced in the MPLS (unlike tsMuxeR and MediaInfo) and therefore it can process only the first 8 subtitle streams.
The problem was not related to an initial delay, but as you have correctly explained, it is a progressive de-synchronisation due to the wrong frame rate in the XML file.
I have not tried to convert 01800.mpls, because it has been removed from the list of the useful 3D playlists by BD3D2MK3D. BD3D2MK3D uses a complex method to remove all useless MPLSs, that are either not 3D, or dupes of another MPLS, or parts of another MPLS, or shorter than 1 minute, or referencing the same M2TS parts than another MPLS but with less audio or subtitle tracks or with missing 3D-plane information. You can however use the "Show all 3D playlists" option if you wish, but normally it's never necessary. In this case, I'm sure that 00800.mpls is the correct MPLS to process. (00800.mpls is the main movie in many 3DBDs, although it's not always the case.)
zaphodalive
18th February 2015, 02:30
In case there was any doubt I have confirmed the same variations at the same points in both the 00800.mpls and 01800.mpls encodes - i.e. the audio test in 00939 at the start of the playlist has no effect on the sub synchronisation. Figured I may as well still check it in case the Thor 2 bluray happened to be abnormal and the main playlist was adding a secondary issue.
Just found this from 0xdeadbeef in relation to BDSup2Sub:
Regarding the SRC/TRG frame rates: AFAIK the SUP file doesn't contain any info about the frame rate. Therefore, if you want to convert the frame rate, you have to select the source and target frame rates manually. The 23.976 as source and 25fps as target is just the default setting as this is my typical scenario (PAL speedup from 24p). Indeed the source and target frame rates are only used to calculate a speedup/slowdown factor that's used to manipulate the time stamps.
So it seems that the FrameRate="25" in the XML is needed to match the default target framerate of 25, keeping the source and target framerate ratio 1:1. If you adjust one but not the other then the sub time stamps are contracted/elongated. Not sure if I've quite got that right but I'm sure you understand it better - hopefully it helps clear up what's happening.
I have a small request for BD3D2MK3D; I have a 4K TV as my monitor and so I do all my encodes as full-SBS and would prefer to keep a 32:9 aspect ratio, but the MKV container settings (in _MUX_3D_OPTIONS.txt) specify the aspect ratio as 16:9. I can obviously manually adjust the txt (which is what I have been doing) but it would be good if there was an option to keep it as 32:9 (or presumably 16:18 for top & bottom). I don't use the TV's native 3D processing (I use Stereoscopic Player to interleave the output) so have no requirement for it to display half-SBS, and full-SBS helps me assess encode quality.
Thanks again for your help - much appreciated.
r0lZ
18th February 2015, 09:13
Thanks fore the quote by 0xdeadbeef. I have figured out myself that the --convert-fps option is made to adjust the frame rate, but that doesn't work correctly at all. The frame rate is included in the XML and IDX files, and therefore I suppose it is read and used as the default input file rate. So, for example, if I use a XML with FrameRate="23.976 and I specify --convert-fps 24p 24p, the output file should have the same time codes than the input file. But it's NOT the case! Note also that the --convert-fps option gives DIFFERENT RESULTS depending of the output stream format!
I suppose too that the input frame rate must be specified when converting a BD SUP file, because BDSup2Sub has no frame rate information in the file. But regardless of the input frame rate specified on the command line, it is ALWAYS mandatory to use 24 (and not 23.976!) as the target frame rate to force BDSup2Sub to not change the timings is the input XML is tagged with 23.976! Omitting completely the --convert-fps option doesn't work either. So, the XML must be tagged with a wrong frame rate (25fps) AND the --convert-fps must specify the wrong 24 fps as the output frame rate to work properly! It's a serious mess. To make things even more confusing, there is also a --fps-target option that you can specify, but it seems to have no effect. And BDSup2Sup++ doesn't have the --convert-fps option, but it has the --fps-target and the --fps-source options, that can be combined to work similarly (with the same bugs) than the --convert-fps of the java version. Anyway, I have decided to leave BDSup2Sub do its conversion without specifying any parameter, and without changing the default 25fps in the XML or IDX files. That works, but it's really strange.
There is also a problem with the standalone subtitle conversion tools (in the Tools menu of BD3D2MK3D), as you can specify the output frame rate if you want to force a conversion. But you have to select wrong target fps to obtain the right conversion! Difficult to explain! But I'll try to solve the problem of the conversion tools later. Currently, I want to release a version that works well when doing the main job.
For the aspect ratio, what you want is strange. The AR of a 3D movie MUST be 16:9, regardless of its (full or half) resolution, because the final movie is always displayed in 16:9. Specifying other ARs leads to distorted images on all devices I have tested so far. In your case, Stereoscopic Player should keep the original 16:9 AR after its conversion to interleaved frames, because it knows that it's a 16:9 movie, and therefore that the AR is the AR of the final result. If it doesn't do that correctly, it's a bug in Stereoscopic Player, and not in BD3D2MK3D. However, I can add an hidden option in the config file if you wish. You will have to edit it manually, because I don't like much to add potentially confusing options in the GUI. And also because I want to release the fix rapidly and I haven't much time to modify the GUI.
zaphodalive
18th February 2015, 11:33
The aspect ratio with Stereoscopic Player doesn't need to be 16:9, it is fully capable of dealing with a 3840x1080 video with a 1:1 pixel ratio and convert it to a 16:9 interleaved output because each of the left and right images is still stored as 16:9 (for a total 32:9 in SBS) - so yes, the output has to be 16:9 as you say but the input doesn't. I'm not sure in what order video processing occurs, so I'm concerned that a 3840x1080 video with a 1:2 pixel ratio - i.e. displaying as 1920x1080 (16:9) - would be rendered with a Directshow filter and then split into two 960x1080 images (for left and right eye) and then scaled up to two 1920x1080 images and interleaved for the output. Essentially this would mean that half of the horizontal data is lost in the conversion process, just as if I'd encoded it in half-SBS to begin with. Of course this may be completely wrong and the full 3840x1080 image may be used, but I don't know if that's the case.
To avoid that issue I prefer to encode in full 3840x1080 with the full 32:9 aspect ratio, then I know that whatever process sequence Stereoscopic Player uses to get to the interleaved output should use the full image quality. In addition it allows me to open up the file easily in MPC and check the quality of the encode.
Reading over what I just wrote I realise it's a bit hard to follow so I'm not sure if you'll get exactly what I'm saying. Either way it's no big deal, as I mentioned I can edit the mux options txt manually to remove the container aspect ratio as I've been doing so far, so you don't need to add anything extra to the config file.
r0lZ
18th February 2015, 11:44
I have added the new config option anyway. But IMO it is useless as the aspect ratio stored in the MKV header should normally be the output aspect ratio (16:9) regardless of the full or half encoding. Anyway, if you prefer to use the full source AR, it will be possible to insert it in the mux options file automatically.
I did just a test with the new version of BD3D2MK3D, but there is still a desync problem with the 3D subtitles. I have to work again on that problem, and I'll release the fix as soon as possible...
r0lZ
18th February 2015, 14:26
OK, here is the fix for the sync problem of the 3D subtitles.
I have also fixed another (less important) bug related to the subtitles. The forced flag was sometimes set on all subtitle files in the MKV file without reason.
I have also added the hidden option to set the aspect ratio to 32:9 or 16:18 in Full-SBS or Full-T&B modes respectively. You have to open the new version, save the settings (with Settings -> Save Settings Now), then quit BD3D2MK3D, edit the BD3D2MK3D.cfg file (look for the option "full_ar_in_full_mode" near the end and change it to true) and restart BD3D2MK3D.
# v0.59 (February 18, 2015)
# - Bug fix: Removed the fix (introduced in v0.57) for the wrong frame rate written by BDSup2Sub in the XML files because it introduces major sync problems with the 3D subtitles.
# - Bug fix: Some subtitle tracks were erroneously tagged as forced when the Forced option of at least one stream has been ticked in tab 2.
# - Added the hidden option "full_ar_in_full_mode" in BD3D2MK3D.cfg to specify the 32:9 or 16:18 aspect ratios respectively for full-SBS or full-T&B in the _MUX_3D_OPTIONS.txt file
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
zaphodalive
18th February 2015, 22:43
Thank you very much for that, I'll be giving it a whirl later today.
I'm sure most 3D devices aren't capable of using wider images than they are able to output, but that's not a limitation in Stereoscopic Player (and probably other software 3D media players). You're absolutely right that the output needs to be 16:9, but the video file we're using should be considered as an input, e.g.:
Input video -> 3D processing -> output video (16:9)
So SS player can do:
Input MKV (32:9 - full-SBS@ 16:9 x2) -> 3D processing -> output video (16:9 - interleaved)
In that way it uses the full 1920x1080x2 video frame to create the 3D output, so I'm assured the maximum quality on my 4k TV. It's possible that the full 1920x1080x2 video frame is used in the 3D processing even if the container is set to a lower aspect ratio, but I don't know that, so this is a way for me to be sure without doing laborious testing.
Hopefully this clears up why it's useful to me, but regardless I really appreciate the effort and the sub fix, tyvm.
r0lZ
19th February 2015, 10:17
OK. Anyway, now, you have the new option in the config file. I may add it in the GUI too, for a future version, but I'm still not sure.
Please confirm that the subtitle sync problem is fixed. I did some tests and for me the new version works fine, but it is always difficult to do several long demuxing and encoding operations just to test a fix with several different movies, so my tests are always somewhat limited.
zaphodalive
19th February 2015, 22:41
I did another encode of Thor 2 overnight and the subs are perfectly in sync at the start, first third, and second third points in the movie so it looks like it's all fixed, nice work. I'll be re-encoding some other films with subs over the next week or two, I doubt there will be any sync issue snow but I'll let you know if there is - thanks.
r0lZ
20th February 2015, 12:48
Thanks for the confirmation, and again for the original bug report!
frank
23rd February 2015, 12:03
3D-planes.log shows 2 planes with fixed depths 2 and 4.
BD3D2MK3D uses 3D-Plane-00.3dp with depth 4.
I need to use the Tools to move subs into the picture using Convert Subtitles to 3D...
Issues:
-Analyse currently selected 3D-planes
shows other depth values than the xml. (analyse 2 - xml 4)
- Additional depth is ignored.
- Selection of BD SUP does not persist.
Tested with Flying Swords...
r0lZ
23rd February 2015, 13:35
Damn! I don't have the same 3D-pland than yours. I have probably another edition. It is therefore difficult to test the problems here.
With my version, only one 3D-plane is not empty: plane 0. It has a fixed depth of 20. (Confirmed with an hex editor.)
Analyse:
I have no idea why you have obtained different analysis results. I can't verify here, because I have only a single 3D-Plane. But are you sure that you have selected the right plane? Can you send me the 3D-planes and the logs? (You know my email address already.)
Note that the 3D-planes.log file is created by MVCPlanes.exe (with the subtitles assignments added at the end of the log by BD3D2MK3D itself). MVCPlanes is used to extract the planes from the MVC stream, and it generates the log on the fly. In the other hand, the Analyse Currently Selected 3D-Plane button does a new analysis of the 3D-Plane data, and doesn't use the original log to retrieve the values. With my version, both methods give the same result: fixed depth of 20.
Additional depth:
I did a new conversion with the tool, using the 3D-plane 0 (depth 20) and an additional depth of 100. (It's a very high additional depth, but it's easier to verify the effect). The result is correct, and the additional depth is taken into account. However, there is a little discrepancy in the way the two depths are taken into account. The depth from the 3D-plane is added in both views. In other words, if the depth is 20, that means that the left subtitle is shifted by 20 pixels to the right, and the right subtitles by 20 pixels to the left. (In previous versions of BD3D2MK3D, there was a bug here and the depth was divided by 2.) But the additional depth is more precise and is spread across the two views. That means that my additional depth of 100 pixels was divided by two: the left subtitle is shifted to the right by 50 pixels, and the right one to the left also by 50. Therefore, an additional depth of 100 is equivalent to a depth of 50 in the 3D-plane. But as far as I know, it is correctly added to the depth from the 3D-plane to produce the final result. (Note that in SBS, the subtitles are squashed horizontally, and therefore the X positions and width of the bitamps are divided by 2. I haven't taken that into account in my explanation above.)
So, IMO, the conversion works fine. The fact that the additional depth is not treated the same way than the depths of the 3D-planes is questionable, but if you remember that it must be multiplied by 2 to obtain the same result, it works as expected.
Perhaps you have experienced a bug if you convert an XML/PNG stream? Can you confirm that your input stream is in BD SUP format?
Selection of BD SUP:
The default selection of the output format should persist during the current BD3D2MK3D session, but is is forgiven when you quit the program. The default selection in a new session depends of your setting in tab 2 of the main GUI: it should be VobSub or BD SUP depending of the "Subtitle stream format" option in that tab. But I agree that there is a little bug here. If in tab 2 you select "both", no format is selected by default in the GUI of the conversion tool. I will fix that bug immediately. Thanks for the report! [EDIT: Done.]
r0lZ
24th February 2015, 12:43
Sorry for replying so late. I have had a look at your files, and I can certify that there is no bug. However, I must agree that there is a big discrepancy.
As I have explained in my previous post, the depth stored in the 3D-plane must be used in the two views of the movie. For example, if the depth is 4, that means that the left view must be shifted to the right by 4 pixels (without the resize in SBS mode). And vice-versa for the right view. That means that the total offset between the 2 views is 8 pixels. (A 2D subtitle with its original X position being 500 will therefore be placed at position 504 in the left view, and at 496 in the right view. 504 - 496 = 8)
Unfortunately, when I have learned how to use the 3D-planes, I was convinced that the value stored in the 3D-plane was the total offset. Therefore, I have written the functions that shift the planes so that the left plane is shifted to the right by the depth / 2 (therefore by 2 in my example), and vice-versa for the right view. That was wrong, as Thalyn has discovered. V0.45 fixed that bug.
When I realized that that was a bug, I have simply multiplied the value of the depth passed to the function by 2, so that it is correct again when it is divided by 2. It's also that value multiplied by 2 that is stored in the temp 2D XML file. That has the advantage that it is possible to use an odd value for the total offset. For example, if you specify 5 as the additional depth, the left subtitle will be shifted to the right by 2 pixels, and the right subtitle will be shifted to the left by 3 pixels, giving the exact total offset of 5 pixels. (Same thing if you edit manually a <Depth> value in the XML.) It's why you see also doubled values in the log of the conversion functions. I agree that it's not at all intuitive, but I did that that way for historical reasons, and currently I like to keep it as it is for the possibility to specify odd depth values. The result IS correct, although the depth really used is twice the one stored in the 3D-planes.
I may change that later, but honestly, I think that it works correctly now, and I don't want to risk to introduce new bugs. However, I will add a warning in the 3D-planes logs to explain that the 3D-planes contain actually the full offset divided by 2, and that BD3D2MK3D uses internally the full offset, not divided by 2.
frank
25th February 2015, 10:54
Hm, I wanted to add a fixed depth and that was not processed by BD3D2MK3D. Then I used the Tools and converted the sup directly with depth 20.
I will repeat the test. But that damned ISO needs 50GB...
Maybe I need some time.
r0lZ
25th February 2015, 11:24
The fixed depth is added during the final phase of the conversion (when the PNGs with the stereoscopic bitmaps are written to disc). The fixed depth is not taken into account when BD3D2MK3D writes the <depth> tags in the temp 2D XML file. (That allows you to convert the temp XML file again with another fixed depth if you think that the resulting final depths are not good, without affecting the original depths extracted from the 3D-planes and already written in the XML.)
It is never necessary to redo the whole process if you need to fine tune the 3D subtitles. You can convert them again with the Tools menu, and overwrite the original 3D subtitle file. Then use the _MUX_3D.cmd to remux the final MKV with the modified subtitles. (Of course, in case of hardcoded subtitles, you'll have to restart _ENCODE.cmd, and that's much longer.)
frank
26th February 2015, 19:58
The help link at Additional options doesn't work.
Please correct to
http://en.wikibooks.org/wiki/MeGUI/x264_Settings
r0lZ
26th February 2015, 20:10
Hum, indeed the site seems down. But the last time, it has been down only during a couple of hours. If tomorrow it is still down, I'll use your link. And I'll release a new version of BD3D2MK3D, for that reason and others. Thanks anyway!
frank
26th February 2015, 20:17
Oh, the site is 4 years old. Some important options missing. :rolleyes:
|1313|
26th February 2015, 20:51
Isit possible to make 720p rips using BD3D2MK3D i have searched and not found anything about it i checked the files and cant find any setting to change. Its not important just want to know. :)
Thanx for an awesome software.
r0lZ
26th February 2015, 22:43
Oh, the site is 4 years old. Some important options missing. :rolleyes:Hum, I need another link than. The old wiki seems definitively dead. Anyone knows a good site with up to date explanations if the x264 options?
r0lZ
26th February 2015, 22:49
Isit possible to make 720p rips using BD3D2MK3D i have searched and not found anything about it i checked the files and cant find any setting to change. Its not important just want to know. :)
Thanx for an awesome software.
Hi |1313|, Welcome to the Doom9 forums!
Currently, encoding in 720p is not possible. It's difficult to do, especially because the 3D subtitles are difficult to resize in 720p while keeping the correct 3D depth. Furthermore, don't forget that the width or height of the SBS or T&B image is divided by 2 (unless you encode in full-SBS or full-T&B), and I believe that half-720p may be too small for a good result. But the resize to 720p is in my TODO list for ages. Maybe I'll do it one day. It's not my priority though.
|1313|
26th February 2015, 22:54
Thanx for the answer :) But if you dont need the subs?
And thanx again for a wonderful software :)
r0lZ
26th February 2015, 23:00
I can't add an option that works only in some circumstances.
|1313|
26th February 2015, 23:37
I understand that but is their any file i can edit? I mostly rip movies using swedish language cause thats where iam from :) without subs :)
r0lZ
27th February 2015, 01:17
Well, you can simply edit _ENCODE_3D_MOVIE.avs.
For Half-SBS, you should remove (or comment out) the line with:
StackHorizontal(HorizontalReduceBy2(Left), HorizontalReduceBy2(Right))
and replace it with:
StackHorizontal(left, right).LanczosResize(1280, 720)
The line to replace in Half-T&B mode is something like:
StackVertical(VerticalReduceBy2(Left), VerticalReduceBy2(Right))
and you should replace it with:
StackVertical(left, right).LanczosResize(1280, 720)
In Full-SBS or Full-T&B, the original lines are respectively StackHorizontal(left, right) and StackVertical(left, right), and you should replace them with StackHorizontal(left, right).LanczosResize(2560, 720) or StackVertical(left, right).LanczosResize(1280, 1440)
Note that I have used the Lanczos resize filter in my examples. You can use another filter if you wish. The basic syntax is always identical: XXXResize(width, height). The available filters are listed here (http://avisynth.nl/index.php/Resize). Lanczos gives good results but is relatively slow.
I don't think there are other files to modify (except the subtitles, but you don't need them), but I may be wrong.
Good luck!
|1313|
27th February 2015, 01:21
Thanx alot :)
EDIT. Works perfectly. EDIT.
Iggyrules
27th February 2015, 02:34
Hello all, I'm needing help...
I'm having a similar issue as CaBleman had regarding BD3D.iso to 3D.mkv with hard coded 3D subtitles...I've disabled the Hardware Accelerator, but I still have black frames issues. The sound is perfect throughout. Her's some examples - Avatar has all black frames from the start through to the end, but the sound and all the forced subs (hard coded) are perfect. Transformers I get about 90 minutes, then black frames for the remainder of the movie, sound and subs (hard coded) are perfect. Teenage Mutant Ninja Turtles is the same, about half the movie. I can provide all files.
'lo there,
I've been using BD3D2MK3D on a WIN 7 machine for a while and was quite happy with 0.42
I installed Avisynth 2.58 on a Windows 8.1 with all recent updates (also the .NET ones) and tried BD3D2MK3D 0.51 with different 3D BD ISOs. THe result is awlways the same.
After demuxing, all files seem to be there, in sizes which make sense.
But the encoding step would produce MKVs which have a black/blank video part in the end.
I tried a couple of things, examined the command lines, ran the commands manually - there are no specific error message, if any at all...
Non 3D chain with BluRip works fine BTW.
Any idea or guidance where to inspect further?
thx & bye,
CaBleman
Thank you,
Iggyrules
Iggyrules
27th February 2015, 05:18
FYI - I've thoroughly read through numerous forums, topics and posts (especially this topic) looking for ANY clue to correct my issue. I've tried dozens of setting options and hours of failures. The best results so far are when using crf with BD compatible selected. Everything appears to be working as designed. It's possibly in the encoding process or in the .mkv file writing process after the encoding. Regardless of the movie title the original BD3D.iso(s) are all around 40 GBs, but the final Half SBS 3D.mkv is only a few GBs.. Total .mkv writing time is only about 1 minute...
I know you'll require the file logs, but I don't want to add all of them until you request them.
Thank you for taking the time to read my post.
Iggyrules
r0lZ
27th February 2015, 11:16
Thanks for your bug report, and welcome to the Doom9 forums.
First of all, have you read the solution found by CaBleman here (http://forum.doom9.org/showthread.php?p=1697452#post1697452)? As he has explained, the culprit was the hardware acceleration. If you use DGMVCSource, you can simply edit the _ENCODE_3D_MOVIE.avs file, and change the "hw = 0" parameter at the end of the DGMVCSource command with hw = 1. (You can immediately relaunch the encoding, without having to redo the whole demuxing process.)
Note also that soon after that post by CaBleman, I have released v0.52, and, the same day, v0.53, with a new option in the Settings -> MVC Decoder menu. It is now possible to specify "auto" (the default that doesn't work for you), "disabled" (the setting that you should try) and "enabled" (that will almost certainly produce the same bug).
Also, you posted your bug report exactly at the right moment. I had the intention to release a new version of BD3D2MK3D today. Although I'm not sure, it is possible that it fixes that bug, because DGMVCDecode.dll has been recompiled with the latest Intel INDE toolkit. The software decoder in libmfxsw32.dll has also been fixed by Intel. I know already that the new versions of that 2 DLLs fixes all decoding problems encountered so far with the software decoder (and notably the famous glitches in Pacific Rim at 1:06:14 and in Flying Swords of Dragon Gate at 1:23:35). I don't have the required Intel hardware to test the hardware acceleration, but Frank has tested it on several machines, and it works apparently well on all machines with the up-to-date Intel drivers. (It might still be necessary to force the software decoding if your CPU doesn't have the right driver, or if Indel has not updated the driver for your model).
I will release that new version very soon, but I still have to fix a little bug. Please come back in a couple of hours, and try the new version. In the meantime, please verify if you have the latest Intel drivers for your CPU. When you will have encoded a 3DBD with the new version, please report here if the updated decoders work for your CPU, with and without hardware acceleration. BTW, what CPU do you have?
r0lZ
27th February 2015, 12:50
Here is the update. It's an important update, because it fixes (or should fix) all decoding problems related to the Intel MVC Decoder (used indirectly by DGMVCSource and FRIMSource). As you know if you have followed the development of BD3D2MK3D, there was a decoding bug in Pacific Rim around 1:06:14 (as you can see in the old thread here (http://forum.doom9.org/showthread.php?p=1667236#post1667236)). Recently, I have discovered a similar decoding bug in Flying Swords of Dragon Gate (at 1:23:35). It was therefore urgent to find a solution to that problem. The update of the MVC decoder made by Intel last year was completely bugged, so I have never updated the libmfxsw32.dll included with all previous versions of BD3D2MK3D. But after having noticed the new bug in Dragon Gate, Nico and I have contacted Donald Graft (ex Neuron2 here), and he has been kind enough to try to fix the problem. With the help of Intel and frank (who did several tests on his numerous PCs with hardware acceleration of the 3 beta versions released by Donald) we have now a solution that seems to work fine on (almost) all PCs. :)
Just be sure to use DGMVCSource (instead of FRIMSource, not updated yet). Verify what version you are using with Settings -> MVC Decoder.
However, if you have a recent Intel CPU that supports the hardware acceleration, you might need to update your Intel drivers to use the latest version without problem. Please be sure to do so before posting bug reports here. Also, Intel has dropped the support for some processors, and if there is no recent drivers available, you may have to turn the hardware acceleration off (with Settings -> MVC Decoder -> Hardware Acceleration -> Disabled).
I'm still not sure, but that update *should* also fix the problem of the black frames reported by CaBleman and Iggyrules above. That should be confirmed soon.
Please be sure to post here all problems you may encountered with the current version of the MVC decoders. Thanks in advance!
I want to thank the guys who have helped to finally have a solution to that numerous problems of the Intel decoders: Donald Graft who has kindly accepted to work again on his decoder despite the poor support from Intel, Frank who has spent much time in testing the fixed versions, Nico for his constant help, the developers of the Intel team who have finally released a version of their decoder that seems to work well, and everyone that has posted bug reports about Pacific Rim and helped to identify the problem.
This release of BD3D2MK3D has also a few other changes. They are less important little bug fixes. Note however the new option in the Settings menu: Full-SBS/T&B Aspect Ratio. Previously, when a movie was encoded in Full-SBS or Full-T&B, BD3D2MK3D used 16:9 as the aspect ratio to write in the MKV header, assuming that it's the "final" aspect ratio that has to be specified. That works fine with some hardware or software players, but after the request of someone to specify the aspect ratio of the SBS or T&B composite frame instead, I did some tests with as many players as possible, and I think now that it is better to store 32:9 for Full-SBS and 16:18 for Full-T&B. (Of course, Half-SBS and Half-T&B have still the 16:9 aspect ratio). Therefore, the full aspect ratio is now the default if you encode in Full mode. However, since there may be players that "prefer" the old 16:9 value, I have added the option to specify the desired aspect ratio in the Settings menu.
Note that the hidden option in the config file (introduced in the previous version) has been removed. If you encode in Full mode, please verify in the Settings menu if the current aspect ratio setting corresponds to your needs.
# v0.60 (February 27, 2015)
# - New versions of Neuron2's DGMVCSource.dll (v1.0.0.23) and Intel's libmfxsw32.dll (v6.14.11.28) included. No more decoding bugs in Pacific Rim and Dragon Gate!
# - Little bug in the Convert Subtitles to 3D Tool: The default output format was undefined when the "both" option is selected in tab 2.
# - Added an explanation about the double 3D-depth values used internally by BD3D2MK3D in the 3D-planes.log file and in the Convert Subtitles to 3D Tool.
# - Changed the link called by the help button for the x264 additional options in tab 5, because the old site is closed
# - Added Settings -> Full-SBS/T&B Aspect Ratio option to select the aspect ratio to write in the MKV header when encoding in Full mode.
# - Removed the "full_ar_in_full_mode" hidden option introduced in v0.59 because you can now select that option in the GUI.
As always, you can download the current version here: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
r0lZ
27th February 2015, 12:59
This post was the continuation (from the second post of this thread) of the Version History of BD3D2MK3D. Since the full history is now available here (http://download.videohelp.com/r0lZ/BD3D2AVS/history.txt), it has been removed.
Iggyrules
27th February 2015, 19:55
Thank you for welcoming me to the Doom9 forums, your suggestions and the BD3D2MK3D v0.60 release.
I already ran BD3D2MK3D with the Hardware Acceleration "disabled" (hw=1), and the log verified this setting, but it made no difference. I'm looking forward to running your new BD3D2MK3D v0.60 release later today. I'll post the results once I've finished, hopefully with 100% success.
I'm not sure if this is helpful information, but you can be the judge -
3D Blu-ray is fairly new to me, but I've been performing back-ups of my Blu-ray collection for 8 years. Hardware, OS and Software: VM set-up for AnyDVD HD, Clown BD, BD3D2MK3D...on Windows 7 (x32), 4GB RAM...through an iMac (MB418LL/A), 2.66GHz Intel Core 2 Duo/E7300 (EOL), 8GB RAM, OS X 10.8.5, Synology DS1010+ and DX510, Dune HD TV-303D, Samsung PN64D8000...
r0lZ
27th February 2015, 20:12
If I understand correctly, you run BD3D2MK3D in a VB emulating Windows 7 under your iMac. I wondor how it is still possible to use the Intel hardware acceleration in these circumstances.
Anyway, test v0.60. I hope it will solve your problem.
Iggyrules
27th February 2015, 20:25
You are correct, but you make it easier to understand.
I'm not sure about the hardware acceleration statement. Does that have anything to do with setting it to "disable" (hw=1)? The entire 40GB.iso to .mkv process (w/hardcoded subtitles) currently takes about 3-4 hours (without the output .mkv). Maybe I'll try running Windows 7 in "BOOTCAMP" (utilizes full hardware on a Mac)?
r0lZ
28th February 2015, 00:03
I have tried to say that I'm not sure that your hardware and software (VM under iMac) can be used with the hardware acceleration. To use it, you must install the Intel drivers, that work certainly on a very low level, and can probably not be installed under your emulated Windows. Most emulators do not have direct access to the hardware, and depend of generic drivers that may not support the hardware acceleration. If the MVC decoder tries to use the hardware in that circumstances, it may fail, or work fine, but don't expect miracles. I don't know how the VM works on your Mac, and I can't tell if the bootcamp mode can be beneficial to the Intel decoder, but of course you can try.
It is more bizarre to have bad results without the hardware acceleration. Anyway, try v0.60 with the new decoders in software mode. It should work. At least, I hope so!
The time taken by the encoding is usually slow anyway. The decoding of the AVC and MVC streams only is made by the Intel software lib or by the hardware if you have the right CPU. For that part, using the hardware (when it works!) is of course a big benefit, but the major part of the time spent during the encoding is taken by the x264's encoding process. That part cannot be accelerated. On my machine, without hardware acceleration, I use the preset "veryslow" and processing a whole movie takes normally between 8 and 12 hours, depending of the duration of the movie and the complexity of the images. Hardcoding the subtitles can also slow down considerably the whole process. (The speed does not depends of the size of the ISO, or only a very little bit.) So, IMO, 3-4 hours is very fast. Unless you use a fast preset, it's a very good result. You should not really expect better results without a dedicated PCs running Windows and with a very efficient CPU with hardware acceleration.
Iggyrules
28th February 2015, 02:47
Thanks for the reply.
I'm glad to hear you say 3-4 hours is good process time. I have kept the settings at "CRF", "medium", "film" and "BD Compatible" for every test so far. I downloaded v0.60 and Avatar 3D is currently encoding...so hopefully in the next few hours I'll have something to report.
Iggyrules
28th February 2015, 06:28
I just realized I downloaded v0.59! I checked for update, v0.60 was available to download, I select yes, it downloads, but it's v0.59 when I open it. What is wrong. I've tried COMEPLETELY deleted v0.59 first then downloading v0.60, but it's still v0,59... ????
r0lZ
28th February 2015, 10:38
Oooops! Sorry! I forgot to change the version number inside the exe. But don't worry. Except the version string, the exe you have downloaded is really v0.60 and your tests are relevant.
I have updated the archive with v0.60, this time with the correct version string "0.60". You can download it (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z) if you wish, but it's not really necessary.
Have you finished your first encoding? Is it correct? Have you used the hardware or software mode?
r0lZ
28th February 2015, 10:44
I have kept the settings at "CRF", "medium", "film" and "BD Compatible" for every test so far.
Note that the Film tuning sharpens the image, and that makes it harder to compress. For better compression results, it might be better to leave the tune option to "none". Of course, if you like the sharpened picture and disc size is not a problem for you, you can also leave it to "film".
If you can encode Avatar in 4 hours, your process in very fast! Avatar is a long and difficult movie to encode, especially if you hardcode the (forced) subtitles. On my system, it is one of the longest encode I did, around 15 hours (but with preset "veryslow" and level 4.1). I don't use BD Compatible.
Iggyrules
28th February 2015, 16:25
Still the SAME result…the first 22 seconds of video (3D) and sound (DTS Master) is perfect, then BLACK FRAMES (video) for the remainder of the movie, the audio from the first second until the final second is perfect, the hard coded forced subtitles (3D) are perfect. What should I try next?
Here's the encode log ---
Encoding _ENCODE_3D_MOVIE.avs
Movie: Avatar
Encoding started Fri 02/27/2015 20:24:59.42
Y:\BD3D2MK3D Output\Avatar\00800>"C:\BD3D2MK3D\toolset\x264.
exe" --crf 23 --preset medium --tune film --bluray-compat --profile high --l
evel 4.1 --open-gop --keyint 24 --slices 4 --colormatrix bt709 --colorprim bt7
09 --transfer bt709 --b-pyramid strict --vbv-bufsize 30000 --vbv-maxrate 40000
--aud --frame-packing 3 --qpfile chapters_3D.qpfile --output "00800.264" "_
ENCODE_3D_MOVIE.avs"
avs [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
x264 [info]: frame I:10394 Avg QP: 6.04 size: 1236
x264 [info]: frame P:51814 Avg QP: 9.07 size: 263
x264 [info]: frame B:170400 Avg QP:12.68 size: 139
x264 [info]: consecutive B-frames: 2.2% 0.3% 0.4% 97.2%
x264 [info]: mb I I16..4: 99.7% 0.2% 0.1%
x264 [info]: mb P I16..4: 0.0% 0.0% 0.0% P16..4: 0.1% 0.0% 0.0% 0.0% 0
.0% skip:99.7%
x264 [info]: mb B I16..4: 0.0% 0.0% 0.0% B16..8: 0.1% 0.0% 0.0% direct:
0.0% skip:99.9% L0:36.2% L1:58.0% BI: 5.8%
x264 [info]: 8x8 transform intra:0.4% inter:81.7%
x264 [info]: coded y,uvDC,uvAC intra: 0.3% 0.4% 0.2% inter: 0.0% 0.0% 0.0%
x264 [info]: i16 v,h,dc,p: 94% 0% 6% 0%
x264 [info]: i8 v,h,dc,ddl,ddr,vr,hd,vl,hu: 39% 9% 32% 4% 2% 4% 2% 5% 3%
x264 [info]: i4 v,h,dc,ddl,ddr,vr,hd,vl,hu: 43% 13% 16% 5% 4% 6% 3% 6% 4%
x264 [info]: i8c dc,h,v,p: 100% 0% 0% 0%
x264 [info]: Weighted P-Frames: Y:0.2% UV:0.2%
x264 [info]: ref P L0: 84.0% 12.9% 3.1%
x264 [info]: ref B L0: 98.4% 1.6%
x264 [info]: ref B L1: 97.2% 2.8%
x264 [info]: kb/s:41.33
encoded 232608 frames, 22.97 fps, 41.33 kb/s
Return on error: error code 1, sample_decode.cpp 66
Encoding finished Fri 02/27/2015 23:14:01.26
Y:\BD3D2MK3D Output\Avatar\00800>"C:\BD3D2MK3D\toolset\mkvme
rge.exe" @_MUX_3D_OPTIONS.txt | "C:\BD3D2MK3D\toolset\tee.
exe" "00800.mkvmerge.log"
mkvmerge v7.6.0 ('Garden of Dreams') 32bit built on Feb 8 2015 12:51:39
'00800.264': Using the demultiplexer for the format 'AVC/h.264'.
'00800.track_4352.Eng.dts': Using the demultiplexer for the format 'DTS'.
'00800.264' track 0: Using the output module for the format 'AVC/h.264 (unframed
)'.
'00800.track_4352.Eng.dts' track 0: Using the output module for the format 'DTS'
.
The file 'Avatar 3D.mkv' has been opened for writing.
Progress: 100%
The cue entries (the index) are being written...
Muxing took 1 minute 18 seconds.
Press any key to continue . . .
Iggyrules
28th February 2015, 16:32
I'm not sure what the difference is between "hardware" and "software" modes, so I'm not sure which I've used. How can I tell which I'm using? Currently I double click the application (.exe file) and the GUI opens...
r0lZ
28th February 2015, 17:04
Hum, I've noticed "Return on error: error code 1, sample_decode.cpp 66". Obviously, it's during the decoding operation that the error occurs.
Are you sure that your BD or ISO is fully unprotected? BD3D2MK3D can't process encrypted BDs.
Also, try to decode in sw mode. Use the menu Settings -> MVC Decoder -> Hardware acceleration. Auto is the default and tries to detect the "best" decoding mode automatically according to your hardware. (It may not work correctly because you are running Windows in an emulator.) Use Disabled, that turns off the hardware acceleration. (You can also try Enabled, but I guess that the program will either crash or error out.)
You may also want to try FRIMSource instead of DGMVCSource, but I don't think that will make any difference.
If that solutions do not work, that means probably that you cannot use the Intel decoder under the Windows emulator, and unfortunately there is probably no solution. BD3D2MK3D has not been designed to be run in a Mac emulating Windows. Sorry.
The Settings menu "remembers" your settings, so you can see what has been the options used for your last encode simply by browsing the menu.
You can also have a look at the _ENCODE_3D_MOVIE.avs file. If the last parameter in the interleaved = DGMVCSource(...) command is "hw = 0", then you have run the decoder in automatic mode, and you can't tell what mode has really been used. If it is "hw = 1", then you have used software mode, and the MVC decoding *should* work. With "hw = 2", you have forced the hardware mode, and it's not a good idea!
Iggyrules
28th February 2015, 17:46
I've run the hardware accelerator in "disabled" (hw=1) every time, it is verified in the log, I'll set it to "automatic" (hw=0) and see how that works. I've saved those settings. I'll even decrypt the original again, but I don't think that's the problem. The strange part is I get some parts of the movie to actually to work, perfectly (Transformers & TMNT both play half the movie perfectly...)
r0lZ
28th February 2015, 19:40
Sorry, but I can't help more. Your configuration is very special, and I don't know what could be the cause of the problem.
Iggyrules
28th February 2015, 20:06
I understand. I'm glad you provided all the help you have (thank you!!!). Im going to try a few more things. If I can't resolve this using my Mac I'll try the same .iso on a dedicated windows 7 machine and hopefully that will resolve my problem...
Thank you again for all your help. I'll post my results if your or anyone else is interested. I appreciate your efforts regardless of my results. It's people like you that make my hobby that much more enjoyable.
Doom9 members, has anyone successfully created a BD3D.mkv with forced subtitles using VM Windows 7 from a Mac...?
Good luck to you all.
Iggyrules
r0lZ
1st March 2015, 00:28
Thanks for your kind words, and good luck. I'm curious to know if you can find a solution.
r0lZ
1st March 2015, 15:16
Already a new version.
After the request to rip to 720p by |1313| here (http://forum.doom9.org/showthread.php?p=1711370#post1711370), I have realized that it is not really difficult to add that option, and I did it. There is now a new option in tab 5 to resize to 720p (and another option to select the Avisynth resize filter for that operation). The subtitles are resized too. If you hardcode the subtitles on the video, they are hardcoded before the resize of the video, so the best quality possible should be maintained.
The other important change is the new version of FRIMSource, recompiled with the latest Intel SDK, and that should be fully compatible with the latest Intel MVC decoder and hardware drivers. (@Iggyrules: I doubt that it will solve your problem, but try it anyway!)
# v0.61 (March 1, 2015)
# - Added the possibility to resize the final video to 720p (in tab 5). The subtitles are also resized.
# - Added Settings -> Open Console at Startup.
# - The position of the console is now also saved in the config file (if it is open when the config is saved)
# - Fix: The Preview of the "Move Cinemascope Image Up" option did not work without a DirectShow codec able to open MPLS files. It's uses now the longest M2TS.
# - Minor cosmetic changes
# - Updated FRIMSource to the latest version (v2015-02-28, compatible with libmfxhw32.dll v6.14.11.28). Thanks Videofan3d!
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
Iggyrules
1st March 2015, 16:26
Thanks r0lZ, I'll try the updated FRIMSource.
BTW: I received an error when the MVC decoder started with hardware acceleration forced (hw=2).
r0lZ
1st March 2015, 16:33
OK, the error is normal on your system, and it confirms that your previous tests have been made in sw mode. But it's bad news for you!
Iggyrules
1st March 2015, 16:36
At least I have more confirmations
Thank you for your work r0lZ! :thanks:
r0lZ
1st March 2015, 19:53
No problem! Thanks to you too! ;-)
igvk
1st March 2015, 20:05
I have the following disc image, that is recognized in BD3D2MK3D as shown in the attached image.
14658
Unfortunately, it seems that it converts only the first part from 00001.m2ts (about 4 minutes), not the whole 2 hours 41 minutes.
What can be done to diagnose the problem?
Here is the log contents:
Log file generated by BD3D2MK3D v0.61
Conversion of "F:\Video\Movies\BluRay\AVATAR_3D\BDMV\PLAYLIST\00800.mpls" to Side-by-Side.
Movie title: Avatar
*** 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 DTS-HD stream (track 3): Bitrate: 1536Kbps core + MLP data.Sample Rate: 48KHz Channels: 5.1 (DTS Master Audio 24bit)
Processed 6445 video frames
Processed 6447 video frames
Flushing write buffer
Demux complete.
Demuxing time: 16 sec
*******************************************************************************
*** Retrieving audio delays from playlist 00800.mpls...
*******************************************************************************
*** Generating the avisynth script...
*** Saving "_ENCODE_3D_MOVIE.avs"...
*** Generating the batch files...
*** Saving "_ENCODE.cmd"
x264 command:
"C:\TOOLS\BD3D2MK3D\toolset\x264.exe" ^
--crf 23 --preset medium ^
--keyint 96 ^
--frame-packing 3 --qpfile chapters_3D.qpfile ^
--output "00800.264" "_ENCODE_3D_MOVIE.avs"
*** Saving "tags.xml"
*** 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 Mar 01 21:56:02 AST 2015
*******************************************************************************
Done with errors!
* Warning: The AVC and MVC video streams do not have the same number of frames: 6445 and 6447. That means that the two streams are probably not synchronised properly, and that encoding this playlist to SBS or T&B may fail.
The script will be generated anyway.
Launch "_ENCODE.cmd" to encode the video (and optionally mux to MKV).
r0lZ
1st March 2015, 22:45
I can't see the image (not yet approved), but the error message in the log is easy to interpret: bad ISO. When there are different numbers of frames in the two video streams, that indicates usually that there are errors in the streams. Furthermore, if tsMuxeR demuxes only 6445 and 6447 frames, that means that the streams are seriously damaged. Sorry, but BD3D requires a good BD3D image as input. Re-rip the BD.
igvk
2nd March 2015, 05:00
Ok, but when I press "Preview M2TS", it shows only "00001.m2ts", which exactly corresponds to the part that is demuxed.
And this ISO can be played fully in PowerDVD.
r0lZ
2nd March 2015, 10:13
OK, I see the image now. I note that the title bar shows the full path to a folder (F:\Video\Movies\BluRay\Avatar...), indicating probably that you have not used a mounted ISO. When the disc image has been mounted, BD3D2MK3D should show something like this in the title bar: "Z:\ - 00800.mpls" (without the quotes).
Apparently, you are running Windows 8. Under Win8, you can mount the disc image (the ISO file) without an external program. It is normally sufficient to double-click it. Try it. That should work.
Of course, if you have ripped the files directly from the BD, you will have to start over, and rip the BD to an ISO instead of as files in a directory. Then mount the ISO. Or you can also process the original BD through AnyDVD HD directly with BD3D2MK3D.
It is ALWAYS a very bad idea to copy the files of a 3DBD (or of its ISO) directly to hard disc. The SSIF files have a complex structure that is totally destroyed when the files are extracted from the BD. Also, you end up with all 3D video files twice: once in the form of the SSIF file, and once as M2TS file, and therefore your copy consumes about two times the disc space of the ISO. The fact that you can play the M2TS files independently but not rip the SSIF files (referenced by the MPLS) is an evidence that something is broken. Delete the files you have copied to disc, and try again with the mounted ISO.
igvk
2nd March 2015, 19:43
Ok, my fault - I was not using ISO image, but files copies.
I am working with mounted ISO now, it looks correct.
Thanks!
frank
4th March 2015, 15:32
TATAAAA!!! :D
BD3D2MK3D v0.61 passed the Pacific Rim Test on new 5. generation Intel CPU I7-5500U (Broadwell) without errors!
New dgMVCdecode.dll and FRIMsource.dll worked fine in HW- and SW-mode. Thanks!
Edit: Latest Intel graphics drivers (2015) are required.
r0lZ
4th March 2015, 15:52
Thanks for the (noisy!) confirmation. :-)
|1313|
6th March 2015, 19:11
Will you add x265 later on or? :)
r0lZ
6th March 2015, 19:23
I don't know. I suppose that that will be useful one day, but currently, h265 is too young and not really supported by most hardware players. Also, I have never used it, and I don't know if it will be easy to add it in BD3D2MK3D.
|1313|
6th March 2015, 19:36
Okey! Thanx for the answer.
frank
9th March 2015, 10:56
Intel has actually updated the drivers for 2nd gen cpu, Sandy Bridge in February!
Now BD3D2MK3D workes properly on Dell XPS (Intel 7, 2nd gen, igfx3000, Sandy Bridge). No more glitches with hardware or software decoding.
r0lZ
9th March 2015, 12:06
OK, good news! Please keep us informed if you notice a new update of the Intel drivers for one of your machines. Thanks!
frank
10th March 2015, 18:38
Using our reference: Avatar.
There are 85 forced subpictures (german). The time stamps are ok but the depth values go out of sync.
The video has 23.976 fps.
Look at forced sup 57, 1:36:07 "Vater!" and the following "Mutter!": depth=10
That is too little, goes into the persons.
The old v0.56 calculates depth=40 and 28. Comparing with PowerDVD this is right.
So I can't trust BD3D2MK3D v0.61 and had to recalculate the 3D sup with v0.56 Tools. (same .3dp file, plane 02)
______
frank
r0lZ
10th March 2015, 19:37
There is something I don't understand! There is no change in the handling of the subtitle timings or in the way the 3D-planes are used between v0.56 and v0.61! :confused:
Or, there is only one change in v0.57: I have added the patch for the "correct frame rate" in the XML file. But since then, I have discovered that that patch causes other problems, and therefore I have removed it in v0.59. That cannot be the reason.
Anyway, I will try to compare the code of the two versions to find a culprit, but I don't think there is something really different.
frank
10th March 2015, 22:44
In the xml of v0.56 are really 24 fps time stamps but FrameRate="23.976".
In the xml of v0.61 are really 23.976 fps time stamps but FrameRate="25".
AFAIK you have to handle the .3dp with 24 fps.
r0lZ
10th March 2015, 23:19
In the xml of v0.56 are really 24 fps time stamps but FrameRate="23.976".
In the xml of v0.61 are really 23.976 fps time stamps but FrameRate="25".
The FrameRate value in the XML is not used the normal way bt BDSup2Sub. It must be 25, even if it's not at all the frame rate of the movie. It's why I have restored that value in v0.59.
The frame rate written in the XML is ignored by BD3D2MK3D, and should not influence the conversion to 3D.
The fact that the frame rate has changed in the time codes is very strange. Currently, BD3D2MK3D does not force any frame rate, and the conversion should not modify the timings of the original SUP. But I may be wrong. It is very difficult to understand how BDSup2Sub works!
AFAIK you have to handle the .3dp with 24 fps.
But IIRC it's what I do. Anyway I will verify that tomorrow. In v0.57. I have introduced so many changes that I may have modified something inadvertently.
frank
11th March 2015, 08:59
I know the wrong fps param of xml.
Look at help from BDSup2Sub 5.1.2: https://github.com/mjuhasz/BDSup2Sub/wiki
Supported formats.
The culprit is the Sony BDN XML format that only knows integer fps.
Mjuhasz wrote:
Note: although the BDN XML looks pretty straight forward and clean, the timing information in this format is a little weird for unknown reasons. Indeed the timings are always based on an integer frame rate. The parameter --convert-fps 24p,24p is set in v0.56 and 24p symbol means 23.976 fps. The BDN xml is always converted to real 24 fps! (x 1.001)
In v0.61 is no parameter --convert-fps and BDSup2Sub thinks it is 25 fps standard. So the time stamps are untouched 23.976 fps.
Using this with .3dp results in asynchronous depth values.
r0lZ
11th March 2015, 10:52
Indeed, I have removed the --convert-fps argument. And, similarly, I have removed the --fps-source 24p argument when BDSup2Sub++ is used instead of the Java version (because the ++ version doesn't have the --convert-fps option). I can restore them, but if I have removed them, that was probably because they created problems. I don't remember the exact reason, but I think it's because that doesn't work well when the user specifies a frame rate in the GUI of the Convert Subtitle to 3D tool. I have to verify that too...
BTW, maybe the culprit is Sony, but in the XML, there is a frame rate AND a dropframe field. If you specify 24fps and Dropframe true, the real frame rate is indeed 23.976. No need for floating point numbers. But BDSup2Sub stores always 25 fps and dropframe false, even when the original subtitles come from a 3DBD at 23.976 fps, and if you "fix" this by forcing the right frame rate and dropframe field, you can't get your subs in sync anymore! Furthermore, having to specify --convert-fps 24p,24p (that should not convert anything) is extremely bizarre. I persist to think that the handling of the frame rate by BDSup2Sub is not correct, or at least totally counter-intuitive.
I'll do some tests with the restored --convert-fps and --fps-source options, and if that works correctly, I'll release a new version. Anyway, I will have to find a solution! Thanks for the bug report.
|1313|
11th March 2015, 17:04
I got anoother question is it possible to to 2d to 3d conversions? DVDFab sucks arse i think sorry for the language. And if my favourite app dont do it does anyone else know of a tool that does it? (NOT DVDFAB)
r0lZ
11th March 2015, 18:19
Aaah! Vade retro Satanas! ;-)
No, BD3D2MK3D doesn't do conversions. IMO, all Windows programs that are supposed to convert 2D to 3D are bad. If you have a good 3D TV like my Samsung, you don't need to convert the 2D movies to 3D. Just use the real-time conversion of the TV. Although not perfect, it is certainly much better than any conversion by a Windows program. Anyway, don't expect miracles. No automatic 3D conversion can be really satisfactory. Professional conversions are better, but they require a huge manual work, and they are very expansive.
If you want to convert anyway, the Laewo Blu-ray to MKV Converter (http://www.leawo.org/blu-ray-to-mkv-converter/) might be better than DVDFab, but I'm not sure. I have never tried it. There are certainly other alternatives, but I don't know them.
@everybody: Please be patient if you post here or wait for an update. I have had a virus and I had to re-install Windows. My programming environment is damaged, and I need to restore a lot of things. I may be absent for some days...
|1313|
11th March 2015, 18:33
Thanx i just asked cause i heard that i could use Avisynth. Are you finnish? And also I wanted a free software i aint gonna pay todo crappy conversions :P
r0lZ
12th March 2015, 15:30
I've found an avisynth script pretending to do 2D -> 3D conversions, but that was just a joke (stupid IMO)! The only thing that it does is to duplicate the 2 images, then it uses a plugin to deform the images slightly (in a parallelogram shape) and it recombines them to SBS. When played on a 3D TV, the image appears behind the surface of the screen, and produces that "aquarium effect" typical of the 3D movies. But the image is still perfectly flat, with no 3D at all. There is NO WAY to create real 3D with simple tricks like that. And as far as I know, there in no "serious" avisynth plugin to convert to 3D. Forget avisynth.
As far as I know, all Windows software that can theoretically convert to 3D are not free. And the serious ones are extremely expansive, and reserved to professionals.
@everybody: My PC is almost restored to good shape now. But the culprit was not a virus, but the Panda antivirus! (See here (http://news.thewindowsclub.com/panda-antivirus-update-likely-brick-windows-systems-restart-74490/?utm_source=feedburner&utm_medium=feed&utm_campaign=Feed%3A+TheWindowsClub+%28The+Windows+Club%29).) I have still a bunch of missing exe, and I need to re-install them, but I should be able to read the forums normally, and I will try now to continue to develop BD3D2MK3D...
frank
12th March 2015, 16:28
--convert-fps 24p,24p (that should not convert anything)...No.
The BDN XML file must be compatible with Scenarist and other BD tools. The timings in a BDN XML file are really frame counts and non-drop. The syntax for the timings is HH:MM:SS:FF, where FF = frames.
So in the case of input fps=23.976, the timings are given in the BDN XML file as if the frame rate was 24 fps. That is what BDSup2Sub generates with --convert-fps 24p,24p. Otherwise Scenarist will reject the xml file. Other tools such as avs2bdnxml, MaestroBDSubs do the same. Reason is compatibility.
Now I understand why the .3dp file must be processed as 24 fps.
Very confusing...
r0lZ
14th March 2015, 11:21
Finally, here is the fix for the bug reported by Frank above. I have also added an explanation in the "Convert subtitles to 3D (with 3D-Planes)" tool, to explain why it is important to use an XML file at the correct frame rate of 23.976 fps. (Click the [?] button next to the "Source FSP" option in the GUI.)
Due to the problem I got with my antivirus, I haven't had much time to test this release. I would be greateful if you can test it carefully. (@ Frank: If you have some time, please test the new frame rate changes, and the "Source FPS" option in the Convert Subtitles to 3D tool. Thanks in advance!)
I have also added an option to use the x264 resize filter instead of the avisynth resize when the output must be resized to 720p. However, I don't recommend to use x264 to do the resize, because it is slightly slower. I haven't tested the quality of the resizes. Also, the default resize filter is now the Avisynth BicubicResize, instead of Lanczos. Bicubic is much faster, and slightly better when shrinking an image.
This release has also some other improvements and little bug fixes:
# v0.62 (March 14, 2015)
# - Bug fix: The frame rate when retrieving the Depth values from the 3D-Planes was wrong. (Thanks Frank!)
# - Minor GUI changes in the Convert Subtitles to 3D tool, including a "?" button to explain how to use the frame rate option.
# - Improvement: When "both" (VobSub and BD SUP) is ticked in tab 2, the conversion to 3D is now made only once.
# - Added the possibility to resize to 720p with x264 instead of with Avisynth
# - The default resize filter for 720p is now "Avisynth Bicubic", better and much faster than the old default Lanczos
# - Replaced the dead web page for the x264 help (the [?] button next to the Additional Options field in last tab) with a new, up to date page.
# - Updated eac3to.exe (and its associated DLLs) to the latest version (v3.28).
# - Several improvements and little bug fixes.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
|1313|
16th March 2015, 22:55
I see that you included x265 why?
r0lZ
16th March 2015, 23:45
Oops. It's an error. I did some tests with it, and I will probably adapt the code of BD3D2MK3D to include it officially in future versions, but currently, it should not be in the toolset folder. I forgot to remove it.
BTW, the syntax of x265 is relatively close to the x264 one, and it should be relatively easy to include it, but it has no --frame-packing argument, and therefore it is impossible to include the info about the 3D format in the video stream. I don't know why that option has been omitted, but it's a pity. Also, of course, many hardware players, including most recent TVs, will not be able to decode h265 video streams. At least, it's the case of my Samsung TV. So, I do NOT recommend to encode 3D movies with that too young codec. But the compression and quality of x265 are so astonishing that I am decided to include it with BD3D2MK3D, even if it's too early. I will consider it as an experimental feature. However, do not expect it soon. It's a big work for me, because there are many things to modify, and I need time...
frank
17th March 2015, 14:42
x265... :(
First I want that WiDi works flawlessly and I can stream Full HD to TV / beamer without stuttering! There are so many sticks and sets but nothing works as Intel promised.
---
v0.62
I miss the warning "The file exists alredy...Should I select the temp xml..." if I use the Tools to convert subtitles to 3D. Instead, the program starts immediately and overwrites files!
I believe the 720p conversion was no good idee, the 3D picture sucks. If I look 3D, than I would like to have more picture quality than 2D, and not get eye cancer. Things are now much more complicated.
____
frank
r0lZ
17th March 2015, 16:02
You don't need to use the 720p resize. Same thing for x265. I don't need x265 or 720p either, but some peoples want these features, and I don't think it is overcomplicated to simply ignore that new options if you don't need them. (Of course, the defaults will still be 1080p h264.)
I'll have a look at the missing warning during the subtitles conversion. I haven't removed it, but there might be a little bug here.
r0lZ
17th March 2015, 16:21
Sorry, but I have verified, and the dialog about the existing XML is still present and it works as expected. However, I have changed something. It is now displayed ONLY if there are already <depth> tags in the XML file. It doesn't make sense to display a warning about the risk of overwriting the depth tags (possibly edited by the user) if the depth tags do not exist.
Also, note that the directory name containing the XML is based on the output file name, and not on the input file name. So, if you convert the same input file twice, but the second time you change the output file name, you will do a completely new conversion. No XML file is overwritten, and of course the warning is not shown, but you can't use the tags already present in the first XML. If you want to be sure to use them, the simplest and more obvious method is to select the XML with the tags as the input file.
frank
17th March 2015, 18:41
Ok, I'll test again later. Maybe I tested the new version with an old folder from v0.56.
Sharc
17th March 2015, 19:34
x265... :(
First I want that WiDi works flawlessly and I can stream Full HD to TV / beamer without stuttering! There are so many sticks and sets but nothing works as Intel promised.
I have no experience with WiDi, but none of the other streaming technologies worked satisfactory for me as soon as "wireless" (WiFi in my case) was somewhere in the loop. I replaced the WiFi with PLC, using Wifi only for the last few inches in the same room if at all, and now it rocks. It does normally not even require transcoding of the source (2D or 3D at average bitrates 10....15 Mbit/s.
|1313|
18th March 2015, 15:26
Oops. It's an error. I did some tests with it, and I will probably adapt the code of BD3D2MK3D to include it officially in future versions, but currently, it should not be in the toolset folder. I forgot to remove it.
BTW, the syntax of x265 is relatively close to the x264 one, and it should be relatively easy to include it, but it has no --frame-packing argument, and therefore it is impossible to include the info about the 3D format in the video stream. I don't know why that option has been omitted, but it's a pity. Also, of course, many hardware players, including most recent TVs, will not be able to decode h265 video streams. At least, it's the case of my Samsung TV. So, I do NOT recommend to encode 3D movies with that too young codec. But the compression and quality of x265 are so astonishing that I am decided to include it with BD3D2MK3D, even if it's too early. I will consider it as an experimental feature. However, do not expect it soon. It's a big work for me, because there are many things to modify, and I need time...
Thanx then i know :)
r0lZ
18th March 2015, 16:25
I have already adapted the code for x265, and everything seems to work fine. I have still some little things to verify and I'll release a beta for testing...
|1313|
18th March 2015, 18:24
Nice i will test it as soon asits out and tell you about it :)
r0lZ
19th March 2015, 10:19
OK, here is the beta. Please note that BD3D2MK3D doesn't check the validity of the arguments passed to x265. It doesn't warn you if you use out of range parameters, or if you encode in a format not compatible with the 3D or specific hardware. (In the other hand, some safeguards exist when you encode with x264.) Also, x265 is still unstable and heavily developed. New builds are available every days. I have included the latest builds (released today), but I can't be sure that they are bug free. So, currently, consider the x265 option as experimental, and use it at your own risk.
There are other things to consider when you encode in h265 format, such as compatibility problems. For more info, see the warning when you select the x265 encoder in the Settings menu.
Please report problems when using x265 (or x264) here, with a maximum of details. Without negative reports, I will release v0.63 final in one week or so...
Download v0.63beta1: BD3D2MK3D_v0.63beta1.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D_v0.63beta1.7z)
(Since this version is a beta, you can still download the stable v0.62 via the first post of this thread.)
|1313|
19th March 2015, 10:27
Ill test it. I must be very noob cause i cant even find how to change from x264 to x265 in the gui :P Found it!
frank
19th March 2015, 13:09
Shark:
I replaced the WiFi with PLC, using Wifi only for the last few inches in the same room if at all, and now it rocks. It does normally not even require transcoding of the source (2D or 3D at average bitrates 10....15 Mbit/s. Do you mean DLNA? With server app (WMP) on PC and the (restricted) TV player app that decodes the stream?
I want to use a notebook/Android device as wireless HD player. That's what Intel is promoting. So the Blu-ray mafia can forget their stupid players.
youli
19th March 2015, 13:20
Hello, r0lZ. Thank you very much for this program.
I have some ideas for improve the result quality, the program functionality expansion and compatibility of mkv-container.
I'll try to explain it by the example. Suppose that I need to get "Half - Top & Bottom" video with 1080p in the first and second cases.
Firstly, about quality.
In the avisynth script you use this line:
StackVertical(VerticalReduceBy2(Left), VerticalReduceBy2(Right))
but function VerticalReduceBy2 is a "quick and dirty" filter with bilinear interpolation (quote from there - http://avisynth.nl/index.php/ReduceBy2).
I changed it to Lanczos like in this line:
StackVertical(Lanczos4Resize(Left, 1920, 540), Lanczos4Resize(Right, 1920, 540))
In my subjective perception, i got less artefacts, more sharpness, and better detalization of the picture.
May be need propose to user a possibility to make choose for the frame stack interpolation, and including Bicubic too.
Secondly, about functionality expansion.
Some people prefer to cut the letterbox black bars for make the frame on whole TV screen 16:9 (see the pictures below).
If the source video without black bars has a ratio of 2.40:1 (1920 x 800 px), then use the line:
StackVertical(Crop(Left, 248, 140, -248, -140).Lanczos4Resize(1920, 540), Crop(Right, 248, 140, -248, -140).Lanczos4Resize(1920, 540))
If the source video without black bars has a ratio of 2.35:1 (1920 x 816 px), then use the line:
StackVertical(Crop(Left, 234, 132, -234, -132).Lanczos4Resize(1920, 540), Crop(Right, 234, 132, -234, -132).Lanczos4Resize(1920, 540))
or any other interpolation instead Lanczos.
I think this options will have own fans, even if they lose about 25% of the frame.
http://s001.radikal.ru/i194/1503/5e/305bde2f7ef9t.jpg (http://s001.radikal.ru/i194/1503/5e/305bde2f7ef9.png) http://s58.radikal.ru/i162/1503/ce/9c1915d3395dt.jpg (http://s58.radikal.ru/i162/1503/ce/9c1915d3395d.png)
Thirdly, about compatibility of mkv-container.
The new mkv features in last versions of mkvmerge cause problems of compatibility with some hardware players - "fast forward" and "rewind" functions does not work or (also) does not restore play position after stop, or (even) impossible play file.
To resolve this troubles need to add by default in mkvmerge this options:
--engage no_cue_relative_position --engage no_cue_duration --clusters-in-meta-seek
r0lZ
19th March 2015, 15:32
Hi youli, and welcome to the Doom9 forums. But sorry. For your first post, I'm afraid I have to refuse most of your suggestions.
For points 1 and 2, I have to disagree. Lanczos is often considered the best resize filter, but if it's probably true when the image is enlarged, it is not so good when the picture is shrunk. Bicubic is usually considered as much better, at least in that case. And if it is true that the ReduceBy2 filters are quick, I'm not sure they are "dirty". According to the doc, they are very well suited when the video has simply to be divided by 2, and it's the case here. It is perhaps possible to have a slightly better result with Bicubic resize, but I'm not sure, and the result will not be optimized for halving the picture, and the processing will be much slower. Therefore, I don't think I'll change the resize filter. (Of course, you can change it manually in the AVS script if you wish.)
For the suppression of the black borders of Cinemascope movies, I have already replied to that point several times. I strongly refuse to encourage the users to distort the picture just to suppress the black bars. Furthermore, the subtitles cannot be converted to 3D correctly if the picture has been resized/distorted, because a subtitle will appear at "wrong" places over the image, and its depth will probably not be compatible with the content of the video at that place.
Most of the time, users want just to crop the black bars, to regain a few MB of useless data. These users assume that the TV will reconstruct the black borders at playback time. Unfortunately, it's not so simple, as many TVs are unable to display correctly cropped video streams in 3D, and anyway, they are optimized for true 16:9. However, you want something different. AFAIK, it's the first time that someone wants to remove the black bars AND resize the picture to occupy the whole 16:9 area, thus distorting voluntarily the image! :eek: Sorry again, but I can't accept that! If you want to butcher your movies, do it without my help!
For your remark about the new MKV options, I must say that I don't know them. I have to learn why they may be useful and what problem can happen if you omit them. If I am convinced that they are useful, I will certainly add them. Do you know a site with a good explanation on the pro and cons of these options?
[EDIT] Found this page (https://github.com/mbunkus/mkvtoolnix/wiki/Improving-playback-compatibility-with-players) with good explanations about several compatibility options of MkvMerge. It seems that a good player should have no problem with the new feature, if it has been written to ignore what it doesn't understand, as recommended. Therefore, if a player has problems with the latest versions of MkvMerge, it's the player that has bugs, and theoretically I should not have to add workarounds in BD3D2MK3D. Especially, I can't force other users of good players to remove the new MKV features, just because some players are bad. So, I propose to add a sub-menu in the Settings menu, with the options described on the GitHub page. You will have to select the options needed for your system, but they will not be enabled by default. Is it OK?
[Second EDIT] This post (https://github.com/mbunkus/mkvtoolnix/wiki/Playback-does-not-work-VLC-cannot-seek-mkvmerge-v5.9.0), also by Moritz Bumkus, confirms that the bug is in the player, not in MkvMerge. In this case, the player is VLC. (BTW, I have never understood the success of VLC. It has many bugs and compatibility problems, and is often out of standard, especially with the DVD format. If you use it, you should seriously consider using a better player.)
|1313|
19th March 2015, 15:48
https://github.com/mbunkus/mkvtoolnix/blob/master/src/common/hacks.cpp
Is what i find but aint saying much!
jdobbs
19th March 2015, 15:52
Lanczos is often considered the best resize filter, but if it's probably true when the image is enlarged, it is not so good when the picture is shrunk. Bicubic is usually considered as much better...Yep. That's a mistake a lot of people make.
r0lZ
19th March 2015, 16:12
Thanks for the link, |1313|, but I prefer the human readable explanation. (See the links in the edits of my previous post.)
And thanks jdobbs for the confirmation. BTW, can you also confirm that the ReduceBy2 filters are really good to, well... reduce by 2? Or is it better to use the Bicubic filter?
jdobbs
19th March 2015, 17:07
Thanks for the link, |1313|, but I prefer the human readable explanation. (See the links in the edits of my previous post.)
And thanks jdobbs for the confirmation. BTW, can you also confirm that the ReduceBy2 filters are really good to, well... reduce by 2? Or is it better to use the Bicubic filter?ReduceBy2 uses bilinear resizing. I would suggest it is just as good if not better than bicubic. The improvements introduced in bicubic, lanczos, spline (and others) are there (generally) to improve the introduction of the "imaginary" pixels needed for image upscaling, not downscaling. Of course you're bound to get arguments from people either way -- like anything else.
I personally use bilinear resizing for downsizing and either lanczos or spline for upsizing. That's also what's implemented as defaults in BD Rebuilder.
r0lZ
19th March 2015, 17:25
OK, thanks again. Personally, I prefer bicubic for downscaling, but it's only because I prefer the rendering of the first image in the "Minimation" section of this well known visual comparison (http://hermidownloads.craqstar.de/videoresizefiltercomparasion/). I suppose that bilinear might be better or at least as good in the case of real live images. And anyway I'll stick with the ReduceBy2 (bilinear) filters for now, unless someone can prove that it's not the best solution.
jdobbs
19th March 2015, 17:38
OK, thanks again. Personally, I prefer bicubic for downscaling, but it's only because I prefer the rendering of the first image in the "Minimation" section of this well known visual comparison (http://hermidownloads.craqstar.de/videoresizefiltercomparasion/). I suppose that bilinear might be better or at least as good in the case of real live images. And anyway I'll stick with the ReduceBy2 (bilinear) filters for now, unless someone can prove that it's not the best solution.Yeah, I would agree that in that example bicubic definitely looks better.
Sharc
19th March 2015, 18:35
.....However, you want something different. AFAIK, it's the first time that someone wants to remove the black bars AND resize the picture to occupy the whole 16:9 area, thus distorting voluntarily the image! :eek: Sorry again, but I can't accept that! If you want to butcher your movies, do it without my help! ........
Just a footnote: The poster is about to re-invent anamorphic sizing which was quite common for DVDs. Theoretically it is possible, provided that the correct --sar is signalled and provided that the player reads the --sar and displays the picture accordingly. Some SW players do, but I doubt if HW players would do this correctly in general because they usually display the picture either as 4:3 or 16:9, disregarding the --sar. There is one exception for blu-ray though: One can resize the 1920x1080 to 1440x1080 using --sar 4:3 and have the player play it back as 16:9. It is fully blu-ray compliant. I used this anamorph encoding for 2D but never tried for 3D. The result would be worse anyway due to the reduction of the horizontal resolution.
r0lZ
19th March 2015, 18:57
Yes. I agree that theoretically, you can resize the video and then restore it to its normal display ratio with the appropriate SAR value. But it's not what youli wants. And anyway, resizing the original video two times to restore the 1:1 pixel AR implies a (small but useless) quality loss. I see no advantage in doing that.
But youli has made a hit with his third suggestion (about the MKV compatibility options). I am currently testing these options, and indeed, with that options, my Samsung TV is much more rapid when it loads the movie for the first time. (It has to seek to 4 points in the video to generate the thumbnails of its pseudo-chapters, and that takes ages.) Therefore, I wonder if I should enable the 3 parameters suggested by youli by default. (It will of course be possible to disable them.)
Anyway, I want to thank youli for having pointed this out. I was not aware of these options, but I have always been frustrated by the time needed by my TV to begin the playback of a 3D MKV. I know now why it's so long. :-)
Sharc
19th March 2015, 19:42
Shark:Do you mean DLNA? With server app (WMP) on PC and the (restricted) TV player app that decodes the stream?
I want to use a notebook/Android device as wireless HD player. That's what Intel is promoting. So the Blu-ray mafia can forget their stupid players.
I tried streaming from PC or from NAS to TV via WLAN. I tried dlna, Serviio (with modified script to limit the bitrate), PLEX and DSVideo with their respective Apps running on the TV. I found the fluctuating WLAN to be the bottleneck which caused stuttering and frequent buffering. Cabled (CAT5) LAN was ok, but inconvenient from floor to floor. PLC was finally most convenient and stable. For streaming to mobile devices I use the PLC/WiFi extender.
(Maybe I could also have improved the WLAN by optimizing locations, antennae or using repeaters but I went straight for PLC).
youli
20th March 2015, 10:01
I compared the two methods of interpolation - bilinear and Lanczos (see the pictures below).
The first frame was resized to 1920x540 by VerticalReduceBy2(Left) - left eye only, and restored to 1920x1080 by built-in DXVA decoder with Daum PotPlayer.
The second frame was resized to 1920x540 by Lanczos4Resize(Left, 1920, 540) - left eye only, and restored to 1920x1080 by built-in DXVA decoder with Daum PotPlayer.
It has a little differences, but I can not choose that is better.
Perhaps for size reduction by 2 in one axis interpolation method does not important, because it has a insignificant differences.
I'll compare again later with brighter, more detailed and grainy video.
bilinear:
http://s017.radikal.ru/i400/1503/ae/89e70d8d68ect.jpg (http://radikal.ru/fp/db4988a8c4c64a5eaa964adac6ff0d1e)
Lanczos:
http://s017.radikal.ru/i434/1503/ff/628b27b06758t.jpg (http://radikal.ru/fp/431dd945fa7a4d36a3bc382b24445239)
bilinear:
http://i004.radikal.ru/1503/fd/0a84fbacfa89t.jpg (http://radikal.ru/fp/e9546b19a14e450f9ec4d4c215a27cda)
Lanczos:
http://s019.radikal.ru/i608/1503/f8/c40550551419t.jpg (http://radikal.ru/fp/f13fce1823ca4cecbc51fc35f8156a53)
r0lZ
20th March 2015, 11:38
Thanks for your tests.
Take into account that a grainy input video might not be a good test. The gain is (partially) removed when the file is encoded to h264. And trying to keep the grain anyway means only that the encoder will have more work to compress the video stream, and that the resulting video will consume more disc space. You have to compare the final result after compression by x264, and take into account the compression level and the final file size as well as the image quality.
youli
20th March 2015, 12:14
I'm always trying to save grain. I don't like blurriness in picture. I use this x264 options to save a grain:
--psy-rd ZZZ:0.05 --no-deblock --deadzone-inter 5 --deadzone-intra 5
--aq-strength YYY --ipratio 1.10 --pbratio 1.10 --qcomp 0.80
--vbv-bufsize 78125 --vbv-maxrate 62500
ZZZ = 0.70 - 1.00
YYY = 0,50 - 0.70
also for better dark gradients:
--no-mbtree --aq-mode 3
r0lZ
20th March 2015, 12:32
No --tune grain ?
youli
20th March 2015, 12:54
No --tune grain ?
No-no!! It is very harmful option.
In the "grain" preset by default:
--aq-strength 0.5 - for flat animation only - it will make more artefacts on movies.
0,7 or more need for movies,
0.5 - 0.6 for dark movies without grain, just like DOOM.
--psy-rd <unset>:0.25 - gives highly visible contour artefacts, from 0.05 to 0.10 - better for movie
r0lZ
20th March 2015, 12:59
OK, thanks!
frank
24th March 2015, 17:11
r0lZ:But youli has made a hit with his third suggestion (about the MKV compatibility options). I am currently testing these options, and indeed, with that options, my Samsung TV is much more rapid when it loads the movie for the first time....and now you believe it. :) Bunkus wrote the comment in February. I use this two params since 2013!--engage
no_cue_relative_position
--engage
no_cue_duration
Bunkus:
As has been said those elements are additional elements, and they're purely optional; both playback and seeking can work just fine without them.
You should use it, no problems. My LG beamer and my Sony box need it. And they do not demux anything for which the params were intended.:)
This mkv specs were changed AFTER production of that hardware. And mkv is NOT an industry standard as mpeg, H.264, or Blu-ray. It is an option of the manufacturer.
r0lZ, there are a lot people that can't buy a new device just because the specs have been changed. Hardware means HARD to change. Please don't forget that.
____
frank
r0lZ
24th March 2015, 19:00
I have never said that I don't believe something or someone related to that parameters. If I have never implemented them, that was only because I didn't know them. Now I know them and I agree that they can be useful, and therefore I have added the possibility to enable that options (and others) in the forthcoming version. You could have requested that options before, and I would probably have implemented them a long time ago. And I know perfectly that you must live with your hardware (although I don't understand why Samsung (for example) doesn't release a fix of their firmware). There is no need to reproach me for something I was not aware of.
youli
26th March 2015, 07:16
I found a little bug. Subtitles lost the original color after conversion. Is possible to fix it?
Converted caption (burn-in hardcode subtitle):
http://s017.radikal.ru/i417/1503/48/770b3d24f7b4t.jpg (http://s017.radikal.ru/i417/1503/48/770b3d24f7b4.png)
Original caption:
http://s019.radikal.ru/i632/1503/5e/a33433e32f4at.jpg (http://s019.radikal.ru/i632/1503/5e/a33433e32f4a.png)
----
P.S.
r0lZ, if you want, then I can help translate your program in Ukrainian, even in Russian. ;)
r0lZ
26th March 2015, 12:30
Hum, the problem of the color change is strange. I have never seen that. When the original SUP is converted to VobSub (IDX/SUB), relatively small differences in the colors are normal, because the VobSub format can only use 4 colors within a fixed palette of 16 colors. But when the subtitles are converted to BD SUP or XML/PNG, there should be no color differences. Anyway, BD3D2MK3D doesn't convert the subtitles itself. It uses only BDSup2Sub (and ImageMagick when converting the PNGs to 3D). I'm pretty sure that the problem doesn't come from ImageMagick, so it should be due to a bug in BDSup2Sub or to a problem in your original SUP files.
Another possibility is that it comes from the SupTitle avisynth plugin. It is used to hardcode the 3D SUP stream on the video. You can try to use VSFilter instead (with Settings -> Hardcode Subtitle Method.) The quality will be less good, but if the colors are approximately good with VSFilter, we'll know that SupTitle is the culprit. However, I don't think so. I have hardcoded the yellow forced subtitles of Avatar with SupTitle, and the colour was perfect. Therefore, again, I suspect a problem in your original SUP.
Can you send me the original SUP? I would like to have a look. Thanks in advance. (My email address is in the Contact section near the end of the PgcEdit homepage. See my signature.)
Thanks also for your proposition to translate BD3D2MK3D. I'm not sure I'll accept, because most of the time, a translation is made once, but when an update is released with new strings to translate, it takes ages to have a correct translation. Also, I have not organised my code with multi-language in mind, and it may be difficult to re-organise it. (I know that it's my fault!) The third reason is that I don't think that there are many users who want to use BD3D3MK3D and do not know English sufficiently to understand how to use it. But I may change my mind later. Anyway, thanks again!
[EDIT] I looked closely at your Converted caption image, and I wonder if the subtitles have been hardcoded with SupTitle or with VSFilter. If you have used VSFilter, the problem might be that the light yellow in the original SUP is closer to the light gray than to the light yellow in the IDX/SUB palette. Therefore, BDSup2Sub may have selected that colour. It's not really a bug, due to the fact that the colours are always modified during the conversion to VobSub. Try to use the SupTitle plugin, and everything should be fine.
BTW, SupTitle is not the default plugin because it requires .net v4 or greater to work, and I can't assume that .net is installed. But if you have .net, it is highly recommended to use SupTitle instead of VSFilter. I will try to change the default when BD3D2MK3D detects that .net v4 or greater is available. But that will work only when BD3D2MK3D is used for the first time, so you'll have to change the option manually anyway.
youli
26th March 2015, 14:12
I see, thanks for your answer and sent you the SUP-file, also avisynth-script and full frame with both hardsub and PGS.
UPD:
Maybe a message in the spam folder, check it
r0lZ
26th March 2015, 16:27
I haven't received your email yet. Something wrong?
youli
26th March 2015, 17:35
I sent again now from another mail.
pgcedit@gma... is this right?
r0lZ
26th March 2015, 19:05
I sent again now from another mail.
pgcedit@gma... is this right?
Yes. I have received your mail. And I can confirm that the problem is that you have used the VSFilter option to hardcode the subtitles.
You can see the problem with BDSup2Sub: Open your SUP file in BDSup2Sub. (You can use Tools -> Open Subtitles in BDSup2Sub.) Select the subtitle #3 in the first dropdown menu in the top left corner of the BDSup2Sub window. Now, select the "SUP (BD)" output format in the 5th option box. The subtitle in the bottom pane should be exactly identical to the original subtitle in the upper pane. That's also what you will get if you use the SupTitle option in BD3D2MK3D. Now, select the SUB/IDX output format, and watch the change: the subtitle is now white in the bottom pane. That's what you get when using the VSFilter option in BD3D2MK3D, and obviously, it's not perfect.
So, to solve the problem, select Settings -> Hardcode Subtitle Method -> BD SUP (.SUP) using SupTitle. Read the warning, and if necessary, install the latest version of .NET. (Note that .NET v4+ is installed by default in Windows 8. It's only if you use Vista or Win7 that you may have to install the latest .NET manually.)
I am sorry, but you will have to compute the T&B video stream again. However, you don't need to restart everything over. You can simply edit the _ENCODE_3D_MOVIE.avs file. You should uncomment the 2 lines with the SupTitle word, and comment-out the 2 lines with VSFilter and VobSub, like this:
[...]
#LoadPlugin("D:\Install\MKV\BD3D\BD3D2MK3D\toolset\VSFilter.dll")
LoadPlugin("D:\Install\MKV\BD3D\BD3D2MK3D\toolset\SupTitle.dll")
[...]
# Hardcode subtitles
#VobSub("00001.track_4610.Rus.3D.sub")
SupTitle("00001.track_4610.Rus.3D.sup")
[...]
Then restart _ENCODE.cmd
That should work if .NET v4 or greater has been installed correctly.
jmcguire525
26th March 2015, 22:02
I'm usually pretty good with this kind of stuff but right now my brain doesn't seem to be working right so please excuse the noob questions...
I've got ~40 3d BD that I wan't to get stored on my NAS to play back in Kodi for android. Right now I am using a FireTV with T&B MKV files, but I have a 4K passive TV on the way that will be paired with the new Nvidia shield console that supports 4k and has hdmi 2.0.
Does anyone know if LG 4k tv's can handle Full T&B files and display them in passive 3D?
The first post mentions "properly decoded blu-ray 3D". Do I need to run the BD through another program before using this program?
I tried this program with a test file, just a 2 min clip I was able to pick out from an ISO of Monster House, but was only able to get audio in the file it output. DVDFab worked with the same file but ignored the black bars when making the T&B file which make it useless (Tried to manually select aspect ratio but it wouldn't work).
Thanks your yalls patience, just trying to see if I'm on the right track.
youli
27th March 2015, 07:14
@r0lZ, thanks for your research.
@jmcguire525
Internal USB flash player of TV can not play blu-ray ISO-images.
Someone says, that Samsung can play 3D SSIF-file renamed to mkv.
Someone says, that Home Media Server (HMS DLNA) can mount blu-ray ISO for play on TVs.
This program doing:
1) demuxing SSIF from blu-ray to standalone AVC, MVC and audio streams files
2) creating avisynth script and cmd file
3) encoding AVC and MVC to standaslone H.264 stream with combining them to one frame half over-under (1920x1080), half side-by-side (1920x1080), and for UHD TV - full over-under (1920x2160), full side-by-side (3840x1080) , I think UHD TV's USB flash player can play 1920x2160 and 3840x1080 in 3D
4) muxing H.264 stream and audio streams to snandalone mkv-file
It will play on Internal USB flash player of TV.
But! For encoding need a lot of time.
3 hrs movie with Core i7 need about 12-16 hrs for encoding to 1920x1080 by 1 pass.
Are you need it?
r0lZ
27th March 2015, 09:11
Welcome to the Doom9 forums, jmcguire525!
Sorry, I can't reply to your question about the hardware. I have only a relatively cheap Samsung Smart TV, that doesn't support Full-SBS/T&B. I have no way to test other hardware.
The first post mentions "properly decoded blu-ray 3D". Do I need to run the BD through another program before using this program?
BD3D2MK3D doesn't remove the protections, and therefore cannot process directly most original commercial 3DBDs. You need an unprotected ISO (that you can create with many BD copy programs and mount with the native Win8 ISO mounter or a specific ISO mounter under Vista or Win7). Another solution is to decode the original BD on the fly with AnyDVD HD (http://www.slysoft.com/en/anydvdhd.html). The problem of the black video can be caused by the fact that the original track was not decoded, but I'm not sure. Have you tried to play the video on your PC with a good software player? If the image is black here too, that means probably that the decoder is necessary.
Note also that you need a correct and complete 3DBD structure, with the BDMV/STREAM/SSIF folder. Copying the files on HDD usually doesn't work properly. You have to mount the ISO, and open the virtual drive in BD3D2MK3D.
I didn't know that DVDFab crops the black borders automatically! Another good reason to never use that program to rip your 3DBDs to SBS or T&B. Thanks for the info!
r0lZ
27th March 2015, 09:53
As you know already, the main additions in this version are the support for the x265 encoder, and the addition of some options in the Settings menu to control the muxing options of MkvMerge.
Please remember that x265 is still very new, not well adapted to 3D and somewhat unstable. Most hardware players refuse to play the video files encoded in h265 format. You should therefore use that new feature with caution and at your own risk!
Note also that the two MKV compatibility options --engage no_cue_duration and --engage no_cue_relative_position seem to be necessary for fast seeks with most hardware players, and are therefore set by default. If you don't need them, please check the Settings -> MKV Compatibility Options menu.
The SupTitle avisynth plugin is now the default when .NET v4 is correctly installed, because it is much better than the VSFilter to hardcode the subtitles on the video. (See the problem of the subtitle colors when using the VSFilter, reported by youli here (http://forum.doom9.org/showthread.php?p=1714724#post1714724).) However, existing users will need to select the SupTitle option manually (with the Settings -> Hardcode Subtitle Method menu), because BD3D2MK3D doesn't modify automatically that setting if the config file has already been saved. (Be sure to install the Microsoft .NET framework v4 under Win7 or Vista if necessary. It should be installed by default under Win8.)
The other changes are minor, and include the update of several external programs.
# v0.63 (March 27, 2015)
# - Added support for encoding in HEVC with x265 (with some limitations due to x265.exe constraints).
# - Added the Settings -> MKV Compatibility Options menu to mux with a better compatibility if your player has troubles.
# - The SupTitle avisynth plugin is now the default instead of the VSFilter when BD3D2MK3D detects that .net v4 is available when it is run for the first time.
# - Added the (commented out) code to hardcode a subtitle stream in the avisynth script even when that option is not used.
# - Minor cosmetic changes
# - Updated MkvMerge and MkvPropEdit to the latest version (v7.7.0)
# - Updated eac3to to the latest version (v3.29)
# - Updated x264 to the latest version (v0.146.2538)
# - Added the latest build of x265 32 and 64-bit (build 2015-03-27)
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
|1313|
1st April 2015, 16:30
Can i ask wich version you are using for x265 64-bit? 16 bit or 8 bit and one more thing what is the diffrence?
r0lZ
1st April 2015, 16:57
8-bit. The number of bits here is the color depth (https://en.wikipedia.org/wiki/Color_depth): 8 bit per component = 24-bit for the 3 components = "truecolor" = approx 16 millions of colors.
16-bit offers a better quality (much more colors), but it is incompatible with most players, and it takes more disc space. Furthermore, there is no real advantage in using the 16-bit version if your source is 8-bit, especially if it is not resized.
IMO, 16-bit should be reserved to professionals. However, if you want to try it, you can download a 16-bit build, and rename it to x265_x64.exe, and replace the 8-bit version in the tools folder. BD3D2MK3D should be compatible with the 16-bit version (although I have never tried). Of course, do not complain if the final MKV is rejected by your hardware players. (Most software players should accept it.)
|1313|
1st April 2015, 17:26
I dont use a hardware player and i have already downloaded the 16 bit cause i tought that was the one that you used and i have already made one x265 mkv with BD3D2MK3D so it works i wanted to have the latest relaese of x265 thats why i download the latest builds :) Thanx for the answer :) I will do a comparsion after iam done with this rip :) One more thing what bitrate do you think compared to x264 is about same quality or better when using x265?
EDIT. I leeched down a none 3D movie in x265 and for me it seems small but i dont really know and same with bitrate.
Format : MPEG-4
Format profile : Base Media
Codec ID : isom
File size : 687 MiB
Duration : 1h 32mn
Overall bit rate mode : Variable
Overall bit rate : 1 043 Kbps
Encoded date : UTC 2015-03-30 02:20:03
Tagged date : UTC 2015-03-30 02:20:03
Video
ID : 1
Format : HEVC
Format/Info : High Efficiency Video Coding
Format profile : Main@L3.1
Codec ID : hvc1
Codec ID/Info : High Efficiency Video Coding
Duration : 1h 32mn
Bit rate : 976 Kbps
Maximum bit rate : 20.9 Mbps
Width : 1 280 pixels
Height : 536 pixels
Display aspect ratio : 2.40:1
Frame rate mode : Constant
Frame rate : 24.000 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Bits/(Pixel*Frame) : 0.059
Stream size : 643 MiB (94%)
Writing library : x265 1.4+533-b6f36b277234d7f4:[Windows][GCC 4.9.2][64 bit]
Encoding settings : wpp / ctu=64 / tu-intra-depth=1 / tu-inter-depth=1 / me=3 / subme=3 / merange=57 / rect / no-amp / max-merge=3 / temporal-mvp / no-early-skip / no-fast-cbf / rdpenalty=0 / no-tskip / no-tskip-fast / strong-intra-smoothing / no-lossless / no-cu-lossless / no-constrained-intra / no-fast-intra / open-gop / no-temporal-layers / interlace=0 / keyint=250 / min-keyint=24 / scenecut=40 / rc-lookahead=25 / bframes=4 / bframe-bias=0 / b-adapt=2 / ref=3 / weightp / no-weightb / aq-mode=1 / aq-strength=1.00 / cbqpoffs=0 / crqpoffs=0 / rd=4 / psy-rd=0.30 / psy-rdoq=1.00 / signhide / lft / sao / no-sao-non-deblock / b-pyramid / cutree / rc=abr / bitrate=997 / qcomp=0.60 / qpmin=0 / qpmax=51 / qpstep=4 / ipratio=1.40 / pbratio=1.30
EDIT.
r0lZ
1st April 2015, 17:58
Honestly, I have no idea of what bitrate could be comparable to an encoding with x264. I don't use x265 myself. I have added the possibility to use it in BD3D2MK3D at the request of an user. (Is it you? I don't remember.)
I did only a few tests in CRF mode. I have noticed that CRF 23 is the default for x264, and CRF 28 for x265. Therefore, I did a test with the two encoders with their respective default CRF values. I did my first test with x264 CRF 23, preset slower. (Usually, an encoding of a full movie with these settings lasts 7 or 8 hours on my computer.) Then, I launched a second test with x265 CRF 28 and preset slower too. But after about 30 minutes, x264 displayed a remaining time of more than 24 hours, and I have interrupted it. I relaunched it with preset medium, and this time it was reasonably fast. Finally, the size of the h265 stream was a little bit more than 1/3 of the size of the x264 stream. Good result, given the fact that the preset was "worse" for x265! I suppose that the two renderings were comparable in quality, and I was unable to see any difference, but I have not tried to compare the two renderings scientifically.
So, currently, I assume that 1/3 to 1/2 of the bitrate of x264 should be sufficient for x265. But I can't be sure. Anyway, I don't like to use 1 or 2-pass modes with specific bitrate values. CRF mode is MUCH better, because it "adapts itself" to the complexity of the movie. But I'm not the best person to reply to your question. I suppose you'll have more elaborated replies in the x264/x265 forums.
|1313|
1st April 2015, 18:25
I didnt ask for it i asked if you gonna add it in the future. But iam thankfull you did it. Me myself use CRF. And for me to rip a move takes approx 3-4 hours on slower with x264 i have intel core i7 4960x 3.60ghz cpu and 8 gb ram and a ssd disk. For x265 wich i have only tried in medium so far it takes about 2 hours and 30 mins doing a crf 25 now. Will try the CRF 23 on x264 and CRF 28 on the x265 later. I guess it depends on how long the movie are aswell. Will do this one in x264 using medium aswell.
r0lZ
1st April 2015, 18:26
Nice performance and thanks for the info.
Thalyn
12th April 2015, 14:13
Just a little observation from my recent tests (I still lurk here - always got to keep up!): FRIM is more robust now than DGMVC, and it may even be a little faster. This is at least true of FRIM 1.25, anyway. I would probably start setting it as the default.
My most recent 3D transcodes - Beauty and the Beast, and The Lion King - both had consistent issues with DGMVC returning blank output after certain points. Running them through multiple times always stalled at the same place (as Belle was being attacked by the wolves around half-way in BatB, just before the credits in TLK). FRIM handled it with no trouble at all. The only issue I did encounter with FRIM seemed to be that it didn't like starting a second transcode while in the same session of MeGUI, but that is easy enough to work around (close and reload MeGUI).
r0lZ
12th April 2015, 15:30
IMO, the speed should be identical in both cases, because the lengthy operations are made by the Intel lib, identical for the two decoders. But your experience with the Disney BDs is interesting. Maybe I'll change the default setting in BD3D2MK3D, but I would like to be sure that your experience is reproducible and is not due to other causes. Anyway, thanks for the report.
Someone has had a (good or bad) experience with DGMVCDecode or FRIMSource?
Nico8583
12th April 2015, 15:49
No problem for me with DGMVCDecode after more than 100 BDs.
I have Beauty and the Beast and The Lion King (decoded by me with DGMVCDec and encoded with x264), could you tell me where are issues ?
r0lZ
12th April 2015, 16:59
Thanks for the precision.
For Beauty and the Beast, look at Thalyn's post. He describes the point where the problem occurs with precision. But anyway, if you have not had any problem, that must be something else. Perhaps you have used different versions of DGMVCDecode, or just another tool to decrypt the blu-ray. Can you specify exactly what version of the decoder you have used, or what version of BD3D2MK3D? (BD3D2MK3D "signs" its conversion with a tag containing the version used to process the BD). Also, if you can specify what program and version you have used to decrypt the BD3D, that will help, Do you use AnyDVD HD? I suspect a problem with the decryption, as someone has reported a totally black output if the BD is processed without decrypting it first.
Nico8583
12th April 2015, 17:06
It would be most simple if Thalyn could tell me time position :-)
My software :
- AnyDVD HD to rip
- tsMuxeR 2.6.12
- DGMVCDec b21 (not the latest version but the previous, now I'm using last version) with software decoding
- AviSynth 2.5.8
Thalyn
12th April 2015, 17:47
I'd have to re-run them to get you the exact position. Without doing that all I can do is ballpark it. BatB would have been around the 47 minute mark, while TLK was closer to 1:22. It's pretty obvious if it happened as it causes everything from that point on to be black - just skip to the ending credits and if you can see them than it's worked fine.
There's a possibility it could have just been a scripting error on my part, though I don't believe it is (I've been using the same base script for quite some time now without issue). I still do all my transcodes pretty much by hand as I like to tweak things - like the offset blur I mentioned a while ago, plus I crop letterboxing - so maybe I made an error somewhere that artificially made it more error prone. It could also be that it only occurs when hardware decoding is in use. My scripting may also be responsible for the speed difference, so take that as merely an anecdote rather than hard evidence.
My software of choice:
- AnyDVD 7.5.9.0
- eac3to 3.29
- DGMVCDecode 1.0.0 b22 via hardware (Haswell "Iris" HD4600, driver 15.36.14.64.4080 - PS 15.36.18.64.4156 is available)
- FRIMSource 1.25
- AviSynth 2.6.0.4 alpha (2.6.0.6 RC2 available)
- MeGUI 2530 development update
- BD3D2MK3D 0.63 (natch - best subtitle tools around for 3D!)
Nico8583
12th April 2015, 18:22
I will try to see my encoded movies.
And main differences between your configuration and mine are hardware decoding / AviSynth so perhaps one of that.
Nico8583
12th April 2015, 21:33
So I have checked BatB and TLK and I have no problem. For BatB, wolves attack is OK until the end, for TLK I can see ending credits, so I think it's a hardware decoding or AviSynth problem...
De_Hollander
12th April 2015, 23:28
There is a bug with the subtitle colors,output from 2d to 3d sup and also to sub
the shadow is not black anymore, but light grey in bdsup2sub
extracted original sup file to 2d
http://i.imgur.com/38PNxqC.jpg
from 2d to 3d half-ou
http://i.imgur.com/3CYb9uW.jpg
Thalyn
13th April 2015, 08:40
@De_Hollander: Looks like the same basic issue Youli mentioned on the previous page, for the same reason. Good news is R0lZ already posted the cause and solution:
Hum, the problem of the color change is strange. I have never seen that. When the original SUP is converted to VobSub (IDX/SUB), relatively small differences in the colors are normal, because the VobSub format can only use 4 colors within a fixed palette of 16 colors. But when the subtitles are converted to BD SUP or XML/PNG, there should be no color differences.
So, to solve the problem, select Settings -> Hardcode Subtitle Method -> BD SUP (.SUP) using SupTitle. Read the warning, and if necessary, install the latest version of .NET. (Note that .NET v4+ is installed by default in Windows 8. It's only if you use Vista or Win7 that you may have to install the latest .NET manually.)
You can see in the screenshots you've posted that it's in SUB/IDX mode and limited to 4 colours, rather than being in SUP (BD) which would be full precision.
@Nico8583:
So I have checked BatB and TLK and I have no problem. For BatB, wolves attack is OK until the end, for TLK I can see ending credits, so I think it's a hardware decoding or AviSynth problem...
Could have been something stupid on my end as well. At least it's either isolated or easily worked around, so it's not really a big deal - just a possibility to be aware of.
r0lZ
13th April 2015, 09:20
Goedendag De_Hollander!
It's not really a bug. And anyway, it's a problem of BDSup2Sub, not of BD3D2MK3D. And I have already replied to a similar question here (http://forum.doom9.org/showthread.php?p=1714724#post1714724).
The problem is that the subtitles in IDX/SUB format (aka VobSub or DVD format) use only 3 colours (plus a 4th colour, usually fully transparent) chosen in a palette of 16 colours. For whatever reason, BDSup2Sub uses always the same fixed palette of 16 colours, and it selects the 4 "best" colours from that palette. Often, some of these colours are not perfect, simply because there is no colour in the palette that matches the colour to emulate. (There is a similar problem with the transparency values, not as visible, but present too.) I agree that it doesn't do a good job here, but I'm not the author of BDSup2Sub.
IMO, that problem can be eliminated (at least partially) by generating a new palette based on the colours really necessary, instead of imposing a fixed palette for all conversions. But that's something that BD3D2MK3D can't do, and currently, as far as I know, it's not possible with BDSup2Sub, at least automatically. If you want that feature, try to contact the author of BDSup2Sub.
The best solution is to use the BD3D2MK3D option to convert the subtitles to BD SUP format instead of IDX/SUB. That format has no colours and transparency restrictions and therefore it can use all colours exactly as they are in the original stream. The price to pay is a less good compatibility with some players.
Another solution is to re-convert the original SUP file to 2D or 3D XML/PNG manually (or use the temp folder with the 2D XML/PNG files as the starting point), and then convert the XML/PNG to VobSub with BDSup2Sub's GUI. You can then use Edit -> Edit Default DVD Palette to change the 16-colours palette to define more suitable colours for your subtitle stream. (Do not use Edit DVD Frame Palette, as that works only for the current subtitle.)
I know that it is possible to save the default palette, but I have never found how to force BDSup2Sub to use a previously saved palette by default. Anyway, even if you create manually the "perfect palette" for a specific stream, there is no guarantee that it will be suitable for other streams.
I will try to find a solution based on the saved palette. But it's without guarantee...
[EDIT] I have not noticed the post by Thalyn before posting my reply, but he has given the solution too. Thanks Thalyn!
r0lZ
13th April 2015, 09:26
Could have been something stupid on my end as well. At least it's either isolated or easily worked around, so it's not really a big deal - just a possibility to be aware of.
Please keep us informed, and if the problem occurs again, try to describe exactly what you did. Thanks in advance!
(Of course, if you use only FRIMSource now and DGMVCDecode is really the culprit, the problem will probably never occur any more, but who knows?)
I'm also interested in results of speed tests, although I don't think that FRIMSource can be really faster than DGMVCSource.
De_Hollander
13th April 2015, 15:44
oke this is not working , in BD3D2MK3D>tools>convert subtitels to 3D (with 3D plane)
open the original sup check xml/png
then make the setting for the output.
en go
when it's finnish open BDSup2Sub_v5.1.2.jar go to the output where you have the xml/png
Then to the temp map *exp.3D_2D
Open it, set the output from BDSup2Sub_v5.1.2.jar to sub/idx
the problem i dont get 3d subs
Also not working:
in BD3D2MK3D>tools>convert subtitels to 3D (with 3D plane)
open the original sup check xml/png
then make the setting for the output.
en go
when it's finnish open BDSup2Sub_v5.1.2.jar go to the output where you have the xml/png
and open xml/png
the sub have the wrong color shadow in the preview to sub/idx
De_Hollander
13th April 2015, 17:00
when i open the 3d sup in bdsup2sub i can Edit DVD Frame Palette chose a better color black for the shadow en puss the button set all
all the subs have the colors
r0lZ
13th April 2015, 17:25
Oh, yes, I forgot to explain that you must convert the 2D XML to 3D XML. Not to 3D IDX/SUB!
So, IMO, the best procedure to select the colours manually is this:
Let BD3D2MK3D do its job. It will create the temp 2D XML/PNG, with the right depth values already included in the XML. (It will also create the IDX/SUB that you will overwrite during the last step of this mini guide.)
Load that temp 2D XML in Tools -> Convert subtitles to 3D (with 3D-Planes).
Select an output 3D file in XML/PNG format. (Be sure to save in a new directory!)
It is not necessary to select a 3D-Plane (unless you want to try another 3D-plane), because the 3D depth info is already in the input XML.
Convert to 3D. The 3D XML/PNG is created.
Up to that point, the subtitles have never been converted to IDX/SUB, so the 3D XML that you have just created has still the correct colours. Convert it manually to IDX/SUB with BDSub2Sub. It's in this operation that you have to modify the palette with Edit Default DVD Palette.
That's all.
Your method of changing the palette of the final IDX/SUB works too and is even simpler and faster, but it will give slightly less good results, because BDSup2Sub has used the original 16 colours palette to convert it to IDX/SUB the first time, and it has computed the best antialiasing possible with the 3 colours it has used. If you change those 3 colours later, the antialiasing may not be optimal. But anyway, usually it's not really visible, and there is no need to be very picky for the subtitles. After all, it's not the movie itself! So, use the method you prefer. And thanks for having posted your solution!
De_Hollander
13th April 2015, 19:24
oke thanks
is there an option to encode the 3d movie to half-ou with settings for bitrate?
How can i now what the rusults are. File size and bitrate?
r0lZ
13th April 2015, 19:56
Hum, I don't think so. When you convert a SUP to 3D sup, the colours are never reduced to the 16-colours palette, and therefore the original colours are respected. I convert all my BDs with 3D sup, and I have never had any problem with the colours or transparencies.
You have to convert manually only when you need the output file in IDX/SUB (VobSub) format.
You can verify all steps of the conversion to 3D:
The original SUP is converted to XML/PNG with BDSup2Sub: the colours are not modified.
BD3D2MK3D adds the depth tags to the XML. The colours are of course not modified.
The PNG files are converted to 3D with ImageMagick. The colours are respected (but the images are resized to half resolution, and that may mean some quality loss).
The XML of the 2D stream is modified and saved for the 3D PNGs. Of course, the colours are not modified.
Finally, the 3D XML/PNG stream is converted to the output format by BDSup2Sub. The colours are respected if the output format is BD SUP, but are reduced to 3 colours if the output format is VobSub.
In the second case of the last step ONLY the colours are not respected by BDSup2Sub, and you have to convert manually to use a better palette.
Try a full BD conversion again, and be sure to select the VobSub output format in tab 2 (or, better, select "both") and you will see that the colours are correct in the 3D SUP file (but not in the XML/SUB if you have selected "both").
brochild
14th April 2015, 01:48
I am trying to find the right words to thank you for this wonderful program.
I have looked all over the internet for solutions, including makemkv, dvdfab, and others to rip my 3D blue-rays.
I finally stumbled into this thread quite by accident.
So far this program is head and shoulders above all of them, for that I thank you again.
I have used 2blue-rays so far to test:
47 Ronin, and Captain America the Winter Soldier with great success.
However, both gave me the same 2d subtitle with a strange name 00800.track_4610.Fra.2d.idx for 47 Ronin and 00800.track_4610.Spa.2d.idx
I used PowerDVD14 to preview the mkv file.
If I take the same MKV file to create an ISO blue-ray image, I get all my sub titles correctly.
Please help - not sure what to do to resolve this.
When I looked at the _MUX_3D_OPTIONS.txt file, for both Blue-rays, the file content looks correct.
SO what am I doing wrong?
I have tarred all of the log files, and hoping somebody smarter than I am can figure it out for me.
Please help, I'm almost there.
Thanks
brochild
14th April 2015, 02:08
PS
In both cases, I cannot see where the 00800.track_4610.Fra.2d.idx and the 00800.track_4610.Spa.2d.idx files are being called from.
Is it also coincidental the they are both track_4610?
r0lZ
14th April 2015, 08:31
You haven't explained what the problem is. You can't see the subtitles at all? Are they in 2D ("sticking on the surface of the screen")? Or something else? Anyway, here is a theoretical explanation of the subtitles formats used on the 3D BDs and in the MKV files created by BD3D2MK3D.
BD3D2MK3D can create two kinds of subtitles: 2D and 3D, in two formats: VobSub (aka IDX/SUB, the DVD format) and BD SUP (aka PGS, the blu-ray format). The original subtitles (on the BD) are always in 2D and in BD SUP format. They are converted to 3D by the blu-ray player in real time, with the help of the "3D-planes", that BD3D2MK3D uses to convert the 2D subtitles to 3D. (Some 2D BDs have also subtitles streams in text format, but it's never the case of the 3D BDs.)
The original subtitles are demuxed by tsMuxeR from the BD and saved under that strange names like "00800.track_4610.Spa.sup". The name is constructed from the number of the playlist containing the movie (here 00800.mpls) followed by .track_ and the internal ID of the track (the same number that you can see in tab 2 of BD3D2MK3D), followed by the language code (tree letters, here Spa for Spain) and the file extension (always .sup for the BD SUP format). So, the name can look strange, but it is very logical. Note that the original subtitles have no 2D or 3D extensions. Anyway, you should never need these files, and you can delete the entire BD3D2MK3D project when you have saved the final MKV somewhere.
BD3D2MK3D converts the demuxed subtitles to whatever you want. In tab 2, you can select the subtitle types to include in the MKV: 2D, 3D or both. You can also specify if you want them in VobSub (IDX/SUB) or BD PGS (SUP) format, or both. BD3D2MK3D adds the "2D" or "3D" string to the file name according to the type of conversion, and the SUP extension is kept for the BD SUP format. If you have selected the VobSub format, two files are produced: a small IDX file containing information about the subtitles (such as the colours and timings), and a larger SUB file with the actual subtitle images. So, for example, 00800.track_4610.Fra.2d.idx (and 00800.track_4610.Fra.2d.sub) is the french subtitle stream converted to 2D in VobSub format.
The "best" subtitle type and format for you depend of your player and the way you play the video. It is recommended to mux the 3D subtitles anyway, because they have the right "depth" in the scene. However, very few players can display the 3D subtitles correctly. Many players consider them as 2D subtitles, and you may see them twice. That players can display the 2D subtitles without problem, but they are usually displayed "on the surface of the screen" because the player has no way to know at what depth they must be placed. (The 3D-planes are lost after a conversion to SBS or T&B.)
Similarly, the choice of the IDX/SUB or BD SUP format depends of the capabilities of your player. The BD SUP format is much better that the IDX/SUB format, because it can use 16 millions of different colours and 256 levels of transparency, but unfortunately many players are unable to display that format. If your player can't display the BD SUP format, you have to use the IDX/SUB format, limited to 4 colours. (For that reason, the colours are not always correct. See the discussion above (http://forum.doom9.org/showthread.php?p=1717344#post1717344).) That format is supported by more players but not all.
If your player doesn't support the BD SUP and IDX/SUP formats, or if you want the subtitles with the correct depth and it doesn't show the 3D subtitles correctly, you have to hardcode (or "burn-in") the subtitles on the video (with the option in the last tab). The drawback is that you can't turn them off, but you will be sure that they are always correctly displayed, regardless of the player you use.
So, to summarize, you have to experiment and select the correct format and type according to your player. PowerDVD should be able to display the two formats (BD SUP and IDX/SUB) without problem, but I don't think it can display the 3D subtitles correctly. You can however probably use PDVD to stream the output with the 3D subtitles to your TV. In that case, the 3D subtitles may be shown correctly by the TV. But if you watch the movie on your PC, it is probably better to use the 2D subtitles. And if nothing works well, you will have to hardcode the subtitles.
So, I suggest to configure BD3D2MK3D in tab 2 to save all possible types and formats. Select "3D then 2D" (or "2D then 3D") for the subtitles types, and "both" for the stream format. Each input stream will be converted to 4 different streams, but you will be able to select the best one with the subtitle selection menu of your player.
Note also that some old (and bad) players need sometimes the subtitles "outside of the container". That players are unable to use the subtitles embedded within the MKV file. As far as I know, it is only necessary to keep the subtitle streams in SRT (text) format outside the MKV file, but that format is not suitable at all for 3D movies, and therefore it is never used on blu-ray discs. BD3D2MK3D can't create them from scratch (but it is often possible to find them on the internet.)
r0lZ
14th April 2015, 08:34
PS
In both cases, I cannot see where the 00800.track_4610.Fra.2d.idx and the 00800.track_4610.Spa.2d.idx files are being called from.
Is it also coincidental the they are both track_4610?
That files are not "called". They are included in the final MKV, and after it has been created, they are not necessary any more. Yoy can delete them if you wish. As explained above, your player should be able to play the subtitles contained in the MKV file. If it can't, use a better player!
De_Hollander
14th April 2015, 11:40
Hum, I don't think so. When you convert a SUP to 3D sup, the colours are never reduced to the 16-colours palette, and therefore the original colours are respected. I convert all my BDs with 3D sup, and I have never had any problem with the colours or transparencies.
You have to convert manually only when you need the output file in IDX/SUB (VobSub) format.
You can verify all steps of the conversion to 3D:
The original SUP is converted to XML/PNG with BDSup2Sub: the colours are not modified.
BD3D2MK3D adds the depth tags to the XML. The colours are of course not modified.
The PNG files are converted to 3D with ImageMagick. The colours are respected (but the images are resized to half resolution, and that may mean some quality loss).
The XML of the 2D stream is modified and saved for the 3D PNGs. Of course, the colours are not modified.
Finally, the 3D XML/PNG stream is converted to the output format by BDSup2Sub. The colours are respected if the output format is BD SUP, but are reduced to 3 colours if the output format is VobSub.
In the second case of the last step ONLY the colours are not respected by BDSup2Sub, and you have to convert manually to use a better palette.
Try a full BD conversion again, and be sure to select the VobSub output format in tab 2 (or, better, select "both") and you will see that the colours are correct in the 3D SUP file (but not in the XML/SUB if you have selected "both").Yes het works
brochild
14th April 2015, 14:21
You haven't explained what the problem is. You can't see the subtitles at all?
I can only see and select one subtitle in the MKV file.
The name of it is the same name as the file name. Instead of "French", its called "00800.track_4610.Fra.2d.idx". The problem is I wanted to be able to select one of the 3 subtitles, English, or French, or Spanish. But if I create a Blue-ray iso image using TSMUXER, I can see all three and be able to select the one hat I want.
BD3D2MK3D converts the demuxed subtitles to whatever you want. In tab 2, you can select the subtitle types to include in the MKV: 2D, 3D or both.
In my case, I select both
You can also specify if you want them in VobSub (IDX/SUB) or BD PGS (SUP) format, or both. BD3D2MK3D adds the "2D" or "3D" string to the file name according to the type of conversion, and the SUP extension is kept for the BD SUP format. If you have selected the VobSub format, two files are produced: a small IDX file containing information about the subtitles (such as the colours and timings), and a larger SUB file with the actual subtitle images. So, for example, 00800.track_4610.Fra.2d.idx (and 00800.track_4610.Fra.2d.sub) is the french subtitle stream converted to 2D in VobSub format.
This part seem to be working fine only for one of the 3 subtitles. It occurred in both movies with the 800.track_4610 being selected. How was this track selected instead of the other 2? How can I select the 3 tracks? or force them to be muxed since the files are already created?
You can however probably use PDVD to stream the output with the 3D subtitles to your TV. In that case, the 3D subtitles may be shown correctly by the TV. But if you watch the movie on your PC, it is probably better to use the 2D subtitles.
I can stream the MKV to my Samsung Series 7 65" TV. This part works as well, but I can only display and select "00800.track_4610.Fra.2d.idx" subtitle with the exact file name instead of English, French or Spanish. The same is displayed using PowerDVD14 on my PC.
In any event, Ill keep playing with it and experiment. I wish I knew how to manually force the selection of the subtitle for t he MKV container. Right now the track "00800.track_4610.Fra.2d.idx " or "00800.track_4610.Spa.2d.idx " is being selected all the time.
Thanks for your expeditious reply.
I really appreciate this program.
r0lZ
14th April 2015, 15:11
You select the audio and subtitle tracks you want to include in the MKV in tab 2. Nothing difficult to understand: just tick the streams you want. They will be included in the MKV and they DO NOT have file names such as 00800.track_4610.Spa.2d.idx. If you can see that file name, you use your player to select an EXTERNAL subtitle file. You should select the subtitles includes WITHIN the MKV. Usually, that's very easy, but I hate PowerDVD, I don't have it and I don't remember how subtitles are selected. Normally, you should have a subtitle menu with all streams that have been muxed in the MKV, and another option to load another stream from disc. You should not need to select that option with the MKV files produced by BD3D2MK3D.
Unfortunately, the log file you have posted in your first post is still not approved, and I can't verify if the files have been correctly muxed. Please copy and paste here the content of the _MUX_3D_OPTIONS.txt file, and I will verify if the subtitle streams are present in the MKV. You can also verify yourself with MediaInfo or a similar program. But if you have selected them in tab 2, they must be present.
Note however that in tab 2, all subtitle streams are listed twice. The first time, it's the full stream, with all subtitles. The second occurrence is a stream that will contain only the forced subtitles. (Forced subtitles are the subtitles that must be shown in, say, French when the French audio is played). But there is no way to know in advance if a specific stream contains forced subtitles. So, if you tick, say, the French stream and the Forced French stream, you can be sure that the French stream will be muxed, because it exists certainly, but there is no guarantee that there are forced subtitles in that stream, and therefore if after the demux operation BD3D2MK3D doesn't find any forced subtitle, it will simply skip that stream. In that case, and in that case ONLY, the subtitle stream may not be present in the final MKV. (When BD3D2MK3D must skip a forced stream because there are no forced subtitles in the main stream, it shows you a warning at the very end of the operation, explaining that the stream will not be used. You can find the same warning near the end of the log.)
So, please verify with a good player (like PotPlayer) if you have the subtitle streams IN the MKV file. That should be the case, unless you have modified manually the MUX options file, or muxed the streams yourself. Also, move the final MKV file in another folder (without the IDX files), and play it from there. The player should not show the IDX files any more, and it may be easier to understand how to select the normal subtitle streams.
In the image below, you can see the subtitles menu (in French, sorry) with the options of PotPlayer to select the subtitles. In this case, I have only included one subtitle stream, in 3D and 2D SUP format. The 3D version is selected. PotPlayer prints "*HdmvSub - French," followed by the title defined by BD3D2MK3D: "French 3D (BD SUP)". It is possible to open an external subtitle with the first option in the menu ("Load a subtitle" in English), but normally I don't need to use that option.
You should see something similar in the subtitle menu of PowerDVD.
http://s21.postimg.org/5nxeqpeh3/2015_04_14_160208.png
brochild
14th April 2015, 15:19
That files are not "called". They are included in the final MKV, and after it has been created, they are not necessary any more. Yoy can delete them if you wish. As explained above, your player should be able to play the subtitles contained in the MKV file. If it can't, use a better player!
Hello again!
Can you please explain how this file "00800.track_4610.Fra.2d.idx" is included in the final MKV?
I want to know how I can include the other 2 files in the final MKV:
00800.track_4609.Eng.2d.idx and 00800.track_4611.Spa.2d.idx
Also, I need to change the labels to "English" or "French" or "Spanish" instead of the original file name.
Thanks
brochild
14th April 2015, 15:31
Unfortunately, the log file you have posted in your first post is still not approved, and I can't verify if the files have been correctly muxed. Please copy and paste here the content of the _MUX_3D_OPTIONS.txt file, and I will verify if the subtitle streams are present in the MKV. You can also verify yourself with MediaInfo or a similar program. But if you have selected them in tab 2, they must be present.
Sorry, I did not see your post before I posted.
Here's the output you requested.
Thanks again for your prompt response.
# mkvmerge options file generated by BD3D2MK3D 0.63
# to mux the 3D video file "47 Ronin 3D 3D-SBS 1080p (BroChild-medium-16-level-4.1)-lrq.mkv"
# Stereoscopy mode: 3D Half-SBS (x264 high@L4.1 CRF 16 preset medium)
# Resolution: 1080p
# Encoding info: x264 high@L4.1 CRF 16 preset medium
# Output
--output
47 Ronin 3D 3D-SBS 1080p (BroChild-medium-16-level-4.1)-lrq.mkv
# 3D video stream
--track-name
0:3D Half-SBS (x264 high@L4.1 CRF 16 preset medium)
--stereo-mode
0:1
--language
0:und
--aspect-ratio
0:16/9
--default-duration
0:24000/1001p
--default-track
0:yes
00800.264
# Audio stream(s)
--track-name
0:English (DTS Multi-channel 48KHz)
--language
0:eng
--default-track
0:yes
--sync
0:0
--compression
0:none
00800.track_4352.Eng.dts
--track-name
0:Spanish (DTS Multi-channel 48KHz)
--language
0:spa
--default-track
0:no
--sync
0:0
--compression
0:none
00800.track_4353.Spa.dts
--track-name
0:French (DTS Multi-channel 48KHz)
--language
0:fra
--default-track
0:no
--sync
0:0
--compression
0:none
00800.track_4354.Fra.dts
--track-name
0:English (AC3 Stereo 48KHz)
--language
0:eng
--default-track
0:no
--sync
0:0
--compression
0:none
00800.track_4355.Eng.ac3
# 3D Subtitle stream(s)
--track-name
0:English forced 3D (BD SUP)
--language
0:eng
--default-track
0:no
--forced-track
0:yes
--sync
0:0
--compression
0:none
00800.track_4608.Eng.3D.sup
--track-name
0:English forced 3D (VobSub)
--language
0:eng
--default-track
0:no
--forced-track
0:yes
--sync
0:0
--compression
0:none
00800.track_4608.Eng.3D.idx
--track-name
0:Spanish forced 3D (BD SUP)
--language
0:spa
--default-track
0:no
--forced-track
0:yes
--sync
0:0
--compression
0:none
00800.track_4609.Spa.3D.sup
--track-name
0:Spanish forced 3D (VobSub)
--language
0:spa
--default-track
0:no
--forced-track
0:yes
--sync
0:0
--compression
0:none
00800.track_4609.Spa.3D.idx
--track-name
0:French forced 3D (BD SUP)
--language
0:fra
--default-track
0:no
--forced-track
0:yes
--sync
0:0
--compression
0:none
00800.track_4610.Fra.3D.sup
--track-name
0:French forced 3D (VobSub)
--language
0:fra
--default-track
0:no
--forced-track
0:yes
--sync
0:0
--compression
0:none
00800.track_4610.Fra.3D.idx
--track-name
0:Spanish forced 3D (BD SUP)
--language
0:spa
--default-track
0:no
--forced-track
0:yes
--sync
0:0
--compression
0:none
00800.track_4611.Spa.3D.sup
--track-name
0:Spanish forced 3D (VobSub)
--language
0:spa
--default-track
0:no
--forced-track
0:yes
--sync
0:0
--compression
0:none
00800.track_4611.Spa.3D.idx
--track-name
0:French forced 3D (BD SUP)
--language
0:fra
--default-track
0:no
--forced-track
0:yes
--sync
0:0
--compression
0:none
00800.track_4612.Fra.3D.sup
--track-name
0:French forced 3D (VobSub)
--language
0:fra
--default-track
0:no
--forced-track
0:yes
--sync
0:0
--compression
0:none
00800.track_4612.Fra.3D.idx
# Attachments
--attachment-mime-type
text/plain
--attachment-name
_ENCODE_3D_MOVIE.avs
--attach-file
_ENCODE_3D_MOVIE.avs
--attachment-mime-type
text/x-msdos-batch
--attachment-name
_ENCODE.cmd
--attach-file
_ENCODE.cmd
--attachment-mime-type
application/zip
--attachment-name
3D-Planes.zip
--attach-file
3D-Planes.zip
# Global settings
--title
47 Ronin 3D
--chapter-language
und
--chapter-charset
UTF-8
--chapters
chapters_3D_delay.txt
--global-tags
tags.xml
# MKV compatibility options:
--engage
no_cue_duration
--engage
no_cue_relative_position
#--clusters-in-meta-seek
#--disable-lacing
#--engage
#no_simpleblock
# Other MKV options:
--disable-track-statistics-tags
r0lZ
14th April 2015, 17:55
OK, there are 10 subtitle streams (3D ONLY, in BD SUP and VobSub formats) in your MKV of 47 Ronins. You should be able to select them with any good player. The name of the first one is "English forced 3D (BD SUP)" and its language code is "eng". The other streams have similar names and language codes. Everything looks perfect.
However, all streams are marked as forced and that's not normal. I suppose you have blindly ticked all "forced" option in tab 2. You should do that ONLY if you know for sure that the stream contains ONLY forced subtitles. But it's another problem. The streams are there and are NOT named 00800.track_4608.Eng.3D.sup or similar. (That file name is present in the _MUX_3D_OPTIONS.txt file, because MkvMerge needs to know the file name to load the stream, but as soon as it is stored in the final file, the original file name is lost and CANNOT appear in the subtitle menu of your player.)
Everything is fine, the _MUX_3D_OPTIONS.txt file contains what it must contain (according to your selections in tab 2), and the subtitles are certainly present in the MKV.
I don't understand what you want to do. You have the subtitle streams in the MKV file, and there is no need to add them again. But if you have made a mistake by including the 3D subtitles only and you want to include the 2D files as well without starting the whole process over, I suggest to edit the _MUX_3D_OPTIONS.txt file to add the 2D streams, and then again launch _MUX_3D.cmd. But you must know what you are doing.
Or you can use Tools -> MkvMerge GUI, open the existing MKV in MkvMerge, add the subtitle streams (you can drag and drop them), select the right language and type a suitable name for each stream, and finally click Start Muxing to generate a new MKV file with all streams. That's easy.
brochild
14th April 2015, 19:14
OK, there are 10 subtitle streams (3D ONLY, in BD SUP and VobSub formats) in your MKV of 47 Ronins. You should be able to select them with any good player. The name of the first one is "English forced 3D (BD SUP)" and its language code is "eng". The other streams have similar names and language codes. Everything looks perfect.
I can only select them if I use TSMUXER to create a blue-ray ISO image, mount the image and play it.
However, all streams are marked as forced and that's not normal. I suppose you have blindly ticked all "forced" option in tab 2. You should do that ONLY if you know for sure that the stream contains ONLY forced subtitles. But it's another problem.
Yes, I did select all of them because I was not sure.
and the subtitles are certainly present in the MKV.
In the current MKV file, I can only see one subtitle, the one with the long name that ends with 2d.idx. When I read the MKV in tsmuxer, I get a warning message that some of the streams cannot be loaded. I do see all the 3D subtitles, the ones that I see using the converted ISO image. I see none of the ones that ends with "2d.idx". These I need so PowerDVD14 can allow me to select them while watching the MKV file.
I don't understand what you want to do. You have the subtitle streams in the MKV file, and there is no need to add them again. But if you have made a mistake by including the 3D subtitles only and you want to include the 2D files as well without starting the whole process over, I suggest to edit the _MUX_3D_OPTIONS.txt file to add the 2D streams, and then again launch _MUX_3D.cmd. But you must know what you are doing.
I thought I selected "3D, then 2D", I'm not sure - but I will try that.
Or you can use Tools -> MkvMerge GUI, open the existing MKV in MkvMerge, add the subtitle streams (you can drag and drop them), select the right language and type a suitable name for each stream, and finally click Start Muxing to generate a new MKV file with all streams. That's easy.
OK, this is easy enough to try - I will give that a shot as soon as I get home. Will I still get a mkvmerge.log file if I use this manual process?
If I do, I will send that to you so you can see what I was trying to achieve.
Thanks again for all your help.
I really do appreciate that you took time out of your busy schedule to analyze my problem.
Merci beaucoup mon ami.
r0lZ
14th April 2015, 19:31
Well, I doubt that will solve your problem.
Trust me. The 10 subtitle streams ARE IN THE MKV FILE. You MUST be able to select them. If you can't, learn how to use your player, or use a better player. (PowerDVD has always been one of the worst player, and it is extremely expensive. Try the free PotPlayer instead.) And have you verified what streams are present with MediaInfo, as I suggested? And have you tried to move the MKV file in another directory, also as I suggested? It is useless to repeat that you cannot select the subtitles. Either there is a bug in PowerDVD, or you cannot use it, because the subtitles are present in the MKV. Anyway, I will not continue to repeat endlessly the same things if you persists to use a player that you can't master. Re-read my previous posts, and do what I have suggested. The solution is there.
brochild
15th April 2015, 01:23
I have Potplayer installed as suggested, it's a much better player, I agree.
I can see all the subtitle streams using that player, I can select each one as needed.
Thalyn
15th April 2015, 04:00
Please keep us informed, and if the problem occurs again, try to describe exactly what you did. Thanks in advance!
(Of course, if you use only FRIMSource now and DGMVCDecode is really the culprit, the problem will probably never occur any more, but who knows?)
I'm also interested in results of speed tests, although I don't think that FRIMSource can be really faster than DGMVCSource.
Decided to do a few test runs just to see what happens with BatB.
DGMVCSource using hardware still fails (goes and stays black). However, possibly because I've performed the updates to my available software and drivers, it's now wildly inconsistent as to when exactly it does it.
However, DGMVCSource forced to use software decoding worked perfectly. Due to the aforementioned issue I can't give a speed comparison directly, however it was roughly 85% of the speed of FRIMSource using hardware. Different systems and configurations will obviously be different (my x264 settings are somewhere between Slow and Slower, run by a 4.2GHz 4770K).
Unfortunately, I wasn't able to get a direct comparison of hardware speeds. I ran a shorter encode to get speeds for both but DGMVCSource failed almost at the start, significantly inflating its speed as black frames compress rather quickly. I'll have to go back to something I know DGMVCSource handles fine to do those tests more accurately.
NB This isn't a slight at DGMVCSource or Donald. I have a lot of respect for his work on that plugin.
r0lZ
15th April 2015, 07:19
Hum, apparently, it's a problem related to the Intel driver. That means unfortunately that it is not possible to trust the Intel decoder in all cases, but the version currently distributed with BD3D2MK3D should work fine in software mode on all machines. Correct?
But if it's really d bug in the drivers, FRIMSource in hardware mode should fail too. Therefore, there is something I don't understand.
Anyway, thanks for your tests.
@brochild: Thanks for the confirmation.
Can I consider your issue as closed?
brochild
15th April 2015, 17:19
@brochild: Thanks for the confirmation.
Can I consider your issue as closed?
Yes, please consider my matter closed.
PS
I'm loving the potplayer.
goodbye PowerDVD ;)
r0lZ
15th April 2015, 17:49
Fine. Thanks.
BTW, if you adopt PotPlayer, you may want to select Settings -> Output file name -> 3D format extension -> For Bino, PotPlayer...
And, in PotPlayer's Preference, go to Video -> 3D video mode, and tick the last two options. It will detect the right format of the 3D files, and display them accordingly automatically. Very handy!
Have fun!
brochild
16th April 2015, 01:12
Fine. Thanks.
BTW, if you adopt PotPlayer, you may want to select Settings -> Output file name -> 3D format extension -> For Bino, PotPlayer...
And, in PotPlayer's Preference, go to Video -> 3D video mode, and tick the last two options. It will detect the right format of the 3D files, and display them accordingly automatically. Very handy!
Have fun!
I cannot get autoplay to work (Windows 7 64 bits) with a blueray.
I added the autoplay by hitting f5 then configured the options.
I tried Windows autoplay settings and potplayer was configured.
It just would not launch when a blue-ray is inserted.
Am I the only one with this issue?
I looked all over the internet for tips - nothing works so far?
r0lZ
16th April 2015, 07:35
I have installed PotPlayer in portable mode here, and therefore it has not registered itself for the autoplay. Sorry, but I can't help.
There is a lot of freeware programs that can add or edit the autoplay entries, like this one (http://www.7tutorials.com/customize-file-types-autoplay-default-programs-settings-default-programs-editor). I have never used such programs, but perhaps they will work for PotPlayer.
r0lZ
18th April 2015, 08:52
I will try to find a solution based on the saved palette. But it's without guarantee...
As I wrote above, BDSup2Sub (java and ++) use a fixed 16-colours palette for their conversion to IDX/SUB. By default, they use the internal palette, with a set of reasonable colours. Unfortunately, with some BDs, the default colours are not suitable, and therefore the result looks bad. For example, the shadow of the subtitles may be much more "light" than it should be, or light yellow subtitles are converted to white. That problems have been reported by youli here (http://forum.doom9.org/showthread.php?p=1714724#post1714724) and by De_Hollander here (http://forum.doom9.org/showthread.php?p=1717344#post1717344).
Unfortunately, I can't do much to solve the problem. It is possible to edit the palette to obtain better results, but there are many limitations, and it is impossible to create a palette that will give good results for all BDs. Since it is possible to save the modified palette on disc and to load a previously saved palette from the command line, I have tried to generate the "best" palette, that should work fine with most BDs. I have tried to define 10 different levels of greys (from pure white to pure black) and a few levels of yellow in the remaining slots. But that doesn't work well at all! I have noticed that BDSup2Sub doesn't compare the colours in the palette with the colours of the subtitles to select the best ones, but it assumes always that black is in slot 0, white in slot 1, light grey in slot 2, dark grey in slot 3 and so on. Therefore, if you set, for example, a pure red in slot 1, and white in slot 15, the white subtitles will be converted to red, because BDSup2Sub uses the colours in the slot supposed to contain white, without verifying its content! :scared:
As a consequence, it is not possible to define more than 2 shades of greys (plus white and black), and that not sufficient to face all situations that can happen in all BDs. It's really a pity. IMO, the palette should be generated dynamically, according to the content of the source subtitle stream. But it's not the case, and I can't change that. Anyway, due to the difficulties, I have abandoned the idea to generate myself a good palette suitable for the current SUP stream to convert.
However, if you think it is possible to use a better palette for most BDs, you can export a palette, and tells BD3D2MK3D to force BDSup2Sub to use it. It's relatively simple to do. Open BDSup2Sub, go to Edit -> Edit Default DVD Palette, and modify the colours. Do not forget that you should never change completely a colour. For example, to change the yellow, you should modify only the two slots containing the light and dark yellow. Then, export the palette on disc. In BD3D2MK3D, go to tab 2, and add this in the Additional BDSup2Sub Options field:
--palette-file "path\to\Alt_palette.ini"
If you have to convert a lot of subtitles from the same BD (or set of BDs from the same producer), that may be much more easy than having to fix the colours of each .IDX file after the conversion, as explained earlier (http://forum.doom9.org/showthread.php?p=1717492#post1717492).
Take care! BDSup2Sub (java version) and BDSup2Sub++ have the same --palette-file option, but the format of the INI file is DIFFERENT for the two programs! (The java version doesn't include the forst slot in the INI: it is always black and cannot be changed. The ++ version includes it, and therefore all subsequent colours are in different slots!) Therefore, if you change the Settings -> BDSup2Sub option, don't forget to change the palette file too!
Summary: To avoid the problem of the bad colours in your subtitles, you can do one of the following:
Convert only to BD SUP format. (The price to pay is a less good compatibility with some players.)
Let BD3D2MK3D do its job (without forcing a specific palette), and then verify if the IDX/SUP file have correct colours, and when it's not the case, change them with the Edit DVD Palette option of BDSup2Sub. You will have to do it for all IDX/SUB file that have been converted. (Note that you can do that during the x264 work, as long as the subtitles are modified before the MKV file is created.)
Force BDSup2Sub to use a modified palette, better for the subtitles BD3D2MK3D has to convert, with the --palette-file option as explained above. The problem is that you need the subtitles to verify if the palette is good, and therefore this method is recommended only when converting several BDs from the same producer, with similar subtitles.
De_Hollander
18th April 2015, 10:40
now I had a few blu-ray which the subtitles color palet was immediately good
Jurassic park gave problems with color palet,
I, robot, and 300 rise of an empire not
r0lZ
18th April 2015, 11:48
Yes, I know. It's unpredictable.
I am still working on a (possible) solution.
When a subtitle stream must be converted to 3D, it is necessary to convert it to XML/PNG format anyway. I can therefore take any PNG in the set of images that has been generated by BDSup2Sub, and analyse it to get its histogram. Then, I can extract the 3 most used colours from the histogram, verify if they form a shade of greys (or perhaps also yellows), and if it's the case, use them to build a palette dynamically, and use that palette to generate the final 3D VobSub file.
However, there are still several problems.
1. If the user wants the 2D subtitles in VobSub format, there is no need to convert it to XML/PNG, and therefore I have no PNG file to analyse. (IMO, it will be a waste of time to convert to a temp XML/PNG file anyway, just to analyse the colours.)
2. A single subtitle stream may contain subtitles in different colours. For example, some subtitles may be yellow, and others white. Therefore, picking a single PNG is not sufficient to ensure that all colours necessary to convert the whole stream will be suitable. (And analysing all PNGs is too time consuming and too complex.)
3. Even with "good" colours in the available slots of the palette, there is no guarantee that BDSup2Sub will use them correctly. It may still use them blindly, without knowing that they have changed. So, the result is not guaranteed.
However, the method should work relatively well in most cases (when all subtitles of the set use the same black, white and gray or yellow colours).
I may add an option to *try* to generate a better palette automatically for the 3D subtitles in VobSub format, but I still have to do numerous tests to be sure that that will give relatively good results, and of course to be sure that the result will never be worse than with the default palette. Currently, I'm still not convinced.
De_Hollander
18th April 2015, 16:15
is there an option in BD3D2mk3d only extract en convert the subs to 3d?
otherwise I have to demux all the streams
r0lZ
18th April 2015, 16:23
No. You have to demux the MVC video stream and the subs, then extract the 3D-Planes from the MVC stream (with MVCPlanes.exe available in the toolset directory), and finally convert the subs to 3D (with BD3D2MK3D's Tools menu).
Or just let it do it automatically when you convert the movie to SBS or T&B. BTW, why do you need a separate option to do that? BD3D2MK3D does it automatically anyway.
frank
20th April 2015, 08:43
In difficult cases you can simply generate new subtitles.
1. Convert the subtitle file to text .srt with Subtitle Edit. It's not much work for forced subtitles.
2. Generate new sup file with tsMuxer GUI (tools).
Use .srt file as input and demux to .sup.
In tsMuxer you can select font, size, color, shift, border pixels...
3. Replace the sup file in BD3D2MK3D. Generate new 3D subtitles.
____
frank
r0lZ
20th April 2015, 08:58
It is also possible to convert the SRT file to SUP directly with Subtitle Edit. The quality is good, although I don't know if there are so many options than with tsMuxer.
But anyway, with your method, you'll get 2D subtitles. De_Hollander wants 3D subs. And, for 3D subs, it is highly recommended to use the original SUP streams from the BD as a basis, because the sizes and positions of the subtitles are very important. They are lost when you convert them to SRT, due to the different font and font size and the fact that the positions are not saved in SRT format.
And to generate the 3D subs with the correct depth, it is necessary to demux the MVC video stream anyway (to get the 3D-Planes) and it is easy to demux the original SUP streams at the same time. Why not use them directly, without the difficult OCR job for converting them to text format? (The OCR of Subtitle Edit is surprisingly good, but errors are unavoidable, and you have to verify all subtitles anyway.)
De_Hollander
20th April 2015, 09:04
@frank No that's not good for me, because your subtitles are not in the correct depth and image positions. And cause a strange image 3d ghosting effect, if the subtitle the popout prevented. Therefore, I would simply like to always use BD3D2MK3D
De_Hollander
20th April 2015, 11:50
What's the best way to remux only the 3d iso to iso or mkv?
Demux een seamless branching 3d is a problem with tsmuxer.
There is a problem with overlapping like Tangled.
can BD3D2MK3D remux ?
r0lZ
20th April 2015, 11:57
No. BD3D2MK3D, as its name implies, is made to convert a BD3D to MK3D, and nothing else.
If you want to do totally other things, please port in the right threads.
frank
22nd April 2015, 16:32
r0lZ:But anyway, with your method, you'll get 2D subtitles.I know, that's why I wrote for difficult (or special) cases (to add words, correcting syntax, colors, borders,...).
Why not use them directly, without the difficult OCR job for converting them to text format?I normally use it but I had cases where forced subtitles were completely unsatisfactory in my language (e.g. Jurassic Park).
Forced subs are not so many and I can edit every position. Then I only replace the (2D) sup, the rest makes BD3D2MK3D.
Much important: We can create our own srt subtitles and convert into sup with the tools on board of BD3D2MK3D.
Surely this is not for beginners.
r0lZ
22nd April 2015, 16:42
Right! Of course, if you want to edit the subtitles, it is much easier to edit a SRT file with a text editor than to edit the original bitmaps.
And yes, it is possible to replace the edited subtitles to the right position and with the right depth with the Tools of BD3D2MK3D. But I agree that it's not really easy. I should write a guide to explain how to add external subtitles (or edit an existing stream as you suggest) to the 3D MKV, with (more or less) correct positions and depths. But I haven't much time, and I'm not sure there are many peoples interested in that job.
sambal
26th April 2015, 10:49
Recently discovered your program and I love it! Just the thing I've been looking for since I got interest in 3D, about 3 years ago. Especially the 3D subs are very good, I used to use several programs to accomplish this task, including Photoshop to make 3D-T&B out of 2D. Your way is much easier and less time consuming.
I would like to ask you to implement an option to only remux a chapter instead of the whole BD. In my case it would mainly be for test purposes, but others might have other uses for it.
r0lZ
26th April 2015, 11:07
Thanks for your kind words. :-)
Unfortunately, I can't easily implement the option to convert a single chapter. It's mainly because the MVC decoders cannot currently "seek" to a certain point in the original video files. Therefore, all pictures must be decoded sequentially, starting with the first one.
If you want to do a short test, you can easily edit the _ENCODE.cmd file to change the total number of frames to encode. The command to edit looks like this:
"D:\Tcl\work\BD3D2MK3D\toolset\avs2yuv.exe" ^
"_ENCODE_3D_MOVIE.avs" -frames 132312 -o - ^
| "D:\Tcl\work\BD3D2MK3D\toolset\x264_x64.exe" ^
--crf 20 --preset slower --level 4.1 --vbv-bufsize 78125 --vbv-maxrate 62500 ^
--threads 4 ^
--frame-packing 3 --qpfile chapters_3D.qpfile --frames 132312 ^
--output "00801.264" --demuxer y4m --stdin y4m -
As you can see (in blue) the number of frames is present two times (with the x64 option enabled), and you have to change the two occurrences. (If you encode in 32-bit, the number of frames is present only once in the command.)
If you need to encode exactly the first chapter, you can get the number of frames from the the "chapters_3D.qpfile" file. (Each line contains the frame number corresponding to the start of each chapter.)
With that trick, you can easily convert only the beginning of the file. But it is not possible to encode only a segment of the input file that doesn't start at the beginning.
I suggest also to use the "ultrafast" preset in the last tab, if disc space and image quality are not important for your test. You can also change the preset manually in the _ENCODE.cmd file (in purple above).
sambal
27th April 2015, 04:57
Thank you for your advice, setting the number of frames is fine for my needs. Starting at the beginning is maybe not always what I want, but it will do.
r0lZ
29th April 2015, 11:48
I may add an option to *try* to generate a better palette automatically for the 3D subtitles in VobSub format, but I still have to do numerous tests to be sure that that will give relatively good results, and of course to be sure that the result will never be worse than with the default palette. Currently, I'm still not convinced.
OK, I have found a way to generate a better palette to use for conversion of the BD SUP files to VobSub format. That was not easy, but I got it. The problem is that BDSup2Sub uses a very limited set of colours, and requires the colours in a specific order.
The process of analysing all subtitles from the original subtitle file is very long. Therefore, I have added a sub-menu in the Settings menu to select the method to use to generate the palette. There are 3 options:
"Use BDSup2Sub Default DVD Palette" doesn't generate a new palette at all. It uses the default palette, like all previous versions of BD3D2MK3D. For best results, you should verify the IDX/SUB file, and if necessary modify the palette manually (with BDSup2Sub's "Edit Default DVD Palette" option).
"Analyse a single subtitle" is the recommended method, because it is fast. But it will modify only the two colours used by the single subtitle it has analysed. If there are other subtitles in the same stream that use different colours, they will not be modified, and will therefore still be wrong. However, usually, a subtitle stream uses the same colour for all subtitles, except sometimes some subtitles for the hearing impaired.
"Analyse all subtitles" should be used only if you know that the subtitle stream has subtitles in several different colours, or if you don't care wasting several minutes (per stream to analyse).
Note that if a subtitle stream uses, for example, several different yellows, BDSup2Sub will assign the only yellow it has in its palette to the two kind of subtitles, because it has only one yellow available. BD3D2MK3D can't fix that problem, even when using the "analyse all subtitles" option, and therefore it will modify the light and dark yellow slots of the palette with colours suitable for the first yellow it finds in the stream. The subsequent yellow subtitles in the stream may still have wrong colours.
Anyway, I think that with the default option to check a single subtitle only, BD3D2MK3D should already produce much better VobSub streams than before. And of course, if you want perfect subtitles, you should use the BD SUP format instead of VobSub (but take care and verify if your players are compatible with the BD SUP format).
Most of the other modifications in this version are also related to the Palette. For example, I have added a Tool to generate a palette from any subtitle file in BD SUP or XML/PNG format. See the version history for details:
# v0.64 (April 29, 2015)
# - Added support for Kodi/xbmc 3D extension strings in the output file name.
# - Added an option to omit the director name in the output file name (for Kodi/xbmc).
# - The BD SUP (PGS) subtitle file format is now the default (in tab 2)
# - New analysis of the subtitles for a better palette when converting the subtitles to VobSub format (2D or 3D).
# - Added the Settings -> VobSub Palette menu to select the palette analysis method.
# - Added an option in Tools -> Convert Subtitles to 3D (with 3D-Planes) to select the palette analysis method.
# - Added Tools -> Generate VobSub Palette from a BD SUP File
# - Tools -> Open Subtitle in BDSup2Sub loads now also the palette.ini file of the same name if it exists.
# - Updated MkvMerge and MkvPropEdit to the latest version (v7.8.0)
# - Updated x265 to the latest build (2015-04-29).
As usual, download the latest version here: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
Hi r0lz,
in last version of your soft I have error. I select streams, set up CRF, preset mode etc. (as always) click on Do it! and in few minutes pop up this error message
can't read "outext": no such variable
can't read "outext": no such variable
while executing
"if {$palettefile == "" || ! [file exists $palettefile] || ($outext != "idx" && $outext != "sub")} {
if {[string first "--palette-mode" $options] ==..."
(procedure "ConvertSubs" line 58)
invoked from within
"ConvertSubs $tmp3dxml1 $outfile1 0 false $tohardcode $language 24p 24p $resize720 $palettefilename $::bds2sOptions"
(procedure "ConvertSubtitleTo3DMVCMain" line 198)
invoked from within
"ConvertSubtitleTo3DMVCMain $supfile $sub3dfile $in3dp $sbsformat 1 $::additionaldepth $filter $forced $forceforced $::config(gen_palette) $framerate ..."
(procedure "GenerateAvs" line 990)
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)
I tried 3 different movies and same error.
Is somewhere older version BD3D2M3D? In this thread I found only actually version.
Oops, sorry. A last minute copy/paste is the culprit.
Here is a fixed version:
# v0.65 (May 2, 2015)
# - Bug fix: Error when converting the subtitles to 3D
Thanks for the report!
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
Thx for quick fix, works fine. Good work :thanks:
The new version of MkvMerge has changed the way it deals with the BD TrueHD+AC3 files. It is now possible to mux opnly the 5.1 AC3 core, or the 7.1 THD, or both. By default, both streams are muxed. Therefore, I had to modify slightly BD3D2MK3D to include only the relevant part, according to the "core" option in tab 2. And I have finally modified many things related to the audio streams, and added several tools.
This version has also some improvements related to the chapter files, and a few bug fixes.
As usual, I have also updated the third party exes, including x265. Please note that since x265 is updated every day, I will continue to update it each time a new version of BD3D2MK3D is released, but I will not announce the update any more.
# v0.66 (May 24, 2015)
# - Tools -> Chapters File Converter accepts now also the new Matroska XML file format as input.
# - Added Tools -> Search chapters file at ChapterDB.org (Has chapter files with real chapter names)
# - Added Tools -> Add (or replace) chapters in MKV file to easily add chapters to an exisating MKV/MK3D file.
# - Tab 2: It is now possible to convert the audio streams to AAC.
# - Tools -> Convert Audio File to AC3 can now also convert to AAC.
# - Added Settings -> AAC Conversion Quality menu.
# - The extensions of the demuxed HD and lossless DTS and AC3 audio tracks are now .dtshd, .dtshdma, .eac3 and .thd+ac3 instead of .dts and .ac3.
# - When converting DTS to AC3 or AAC, for best quality, the DTS-HD or DTS-HD-Master tracks are now automaticaly demuxed instead of the DTS core.
# - When muxing a E-AC3 stream with MkvMerge, -a 0 is now added in the _MUX_*D_OPTIONS.txt file, as otherwise the new version of MkvMerge muxes also the 5.1 AC3 core.
# - The labels of the audio tracks contain now "5.1" or "7.1" instread of "Multi-channel".
# - Added Tools -> Extract 5.1 core of HD/lossless audio file (for DTS-HD, DTS-HD-Master or TrueHD files)
# - Bug fix: When muxing DTS-HD, DTS-HD-Master, E-AC3 or TrueHD, the label of the track was errenously DTS or AC3.
# - Bug fix: Crash when converting forced subs only to 3D of a stream without any forced sub (introduced in v0.64)
# - Workaround for a tsMuxeR bug happening when it tries to demux an empty audio stream.
# - Minor cosmetic changes, including a more legible log.
# - Updated the Mkvtoolnix exes to the latest version (v9.7.0 'Birds')
# - As usual, updated x265 to the latest build. (I will not announce these updates any more.)
Have fun!
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
De_Hollander
26th May 2015, 20:53
why is the sup shadowpalet alway's brown/gray ?
I can't change the palit
http://i.imgur.com/RR0AMGE.png
The BD SUP format doesn't use the palette. To change the palette, you must save in DVD VobSub (IDX/SUB) format. Change the setting in the "Output format" dropdown at the top of the window.
BTW, why do you need to change it ? Normally, the latest versions of BD3D2MK3D should build and use the right palette automatically.
De_Hollander
27th May 2015, 09:39
i now, but i make sup and (IDX/SUB) subs for the half-sbs
it's strange that the black color from the sup changes to brown/grey
I was wondering why is that.
I don't understand what's wrong. Currently, BD3D2MK3D tries to generate the best palette, and IMO it works pretty well, although it's still not perfect. The subtitles you have loaded in the image posted in post #368 are well known to cause problems to BDSup2Sub. The problem is that in addition to the (totally) black outline, they use also a grey shadow. When BDSup2Sub uses its internal palette, that shadow is rendered with the default grey, and it is much lighter than the original grey of the outline. Therefore the subtitles look strange, especially when they are displayed over a dark background. That's exactly what the last versions of BD3D2MK3D avoid automatically. With the palette generated by BD3D2MK3D, the shadow has (or at least should have) a colour very similar to the original grey. It's a much darker grey than the one from the internal palette, and the effect of the shadow over a dark background should be satisfactory.
BTW, obviously, you have loaded the original BD SUP, and not the converted VobSub. Therefore, what you see in the image has exactly the same colours than in the BD. BD3D2MK3D cannot be responsible of any change in colours in that subtitle, since it has never modified it. And I don't see any brown colour in your picture. I have verified with an image editor, and the shadow is a pure grey. If it appears somewhat brown, it's probably due to the contrast with the blue background.
To verify if the palette generated by BD3D2MK3D is correct, you should load the BD SUP in BDSup2Sub, then load the palette generated by BD3D2MK3D, and of course set the output format to VobSub. Then you can compare the original subtitle (on top) and the subtitle as it will be if you generate the IDX/SUB file with that palette. You will probably agree that the result is good, if not perfect. (Take in mind that the result cannot be perfect due to the limitations of the VobSub format.)
De_Hollander
27th May 2015, 11:42
can anyone tell me why some 3d have right eye first
Like A Turtle's Tale: Sammy's Adventures and Prometheus
There is no precise reason. The director is free to consider that the right view is the main view, perhaps because he thinks that it is better. Normally, in the human vision, the two eyes are equal, and the "perfect 2D view" is the view generated by the brain and corresponding to a "third eye" located exactly between the two eyes. But in the movie, it is too difficult (and expensive) to shot 3 views at the same time, and the director has to select a view for the 2D version of the movie.
The real question is not why is it the right view in some rare cases, but why is it not the right view more often? There is no objective reason to consider that the left view is better than the right one.
In the 3DBDs, the main view must be encoded in AVC, and the dependent view in MVC, because the 2D-only BD players cannot decode MVC. They "see" only the AVC stream, and show it exactly like a 2D BD.
sambal
1st June 2015, 18:13
I wanted to give some depth to T&B subtitles (IDX/SUB) from a BD that had empty 3D-planes. I tried it with 'Convert subtitles to 3D (fixed depth)" from the 'Tools' menu, but then the L/R subtitles also shifted vertically. I tried this both with SUP and XML/PNG files.
After that I did it with 'Convert subtitles to 3D (with 3D-plane)" and filled in the desired depth in the XML file and this worked fine. (Later I saw that I could have left the XML alone and use the 'additional depth' input, but I didn't try that.)
Is is an bug in your program that the first option had a flawed outcome or did I perhaps do something wrong?
Good question. Honestly, I don't encode in T&B mode, and I have not used the old conversion method (w/o 3D-planes) since a while. I do not support or develop it any more, and I should have removed it already. (If I have kept it, it's only because it offers the possibility to convert several subtitle streams in one shot.)
Anyway, I did only the GUI and I am not the author of the exe that is used by the old method (suppe3d.exe), and if it doesn't work as expected, I can't fix it because I don't have the sources, and the author is not active any more. So, if it appears that it doesn't work correctly, I will almost certainly remove it.
Can you confirm that your movie is correctly encoded in real 16:9 half-T&B (1920x1080)? If the black borders of a Cinemascope movie have been cropped, it is normal that the vertical position of the subtitles is wrong. Same thing if the movie is encoded in Full-T&B.
sambal
3rd June 2015, 17:34
I think I didn't made my problem clear. (English is not my native language..)
It is not that the whole subtitle moves vertically, but the left image is shifted from the right one, so there are two subtitles above each other to be seen at a time. It is not a real problem, as with the 3D-planes method is works fine. I just thought you wrote the routine.
But, if is is an error in the program, you might want to remove the whole option, as there are other methods available.
Oh, well, if you create 3D subtitles, there must be two subtitles (stacked vertically for T&B and horizontally for SBS), exactly like the two images of the 3D movie. The 3D subtitles must be handled correctly by the player. They must be printed on the video BEFORE the split of the two images. Unfortunately, many players consider the subtitles as 2D and duplicate them to show the same thing over the two images. That works fine with 2D subtitles, but of course, you can't keep the correct depth that way. With 3D subtitles, you see the subtitle twice (with one subtitle somewhere near the middle of the screen in T&B).
In fact, the best way to display the 3D subtitles on a 3D TV is with an external player that doesn't handle the 3D. The player thinks that the movie and the subtitles are in 3D, and therefore it displays the 3D subtitles "normally", with one subtitle over each view. Then, the TV splits the two views (including the subtitles since it doesn't know that they are there) and display them in 3D. The result is usually perfect (unless the player resizes or moves the subtitles).
However, I'm still not sure I understand you correctly. The two methods of generating the 3D subtitles should give identical results (except that it is possible to use the right depth with the method using the 3D-Planes). If I don't understand you, can you post here a screenshot of the same subtitle generated with the two methods, and explain with that example what are the differences?
sambal
10th June 2015, 09:41
I must have done something terribly wrong, cause now everything seems to work fine. I have tried it a couple of times now with different movies, but the error doesn't appear anymore. I am sorry for wasting your time on this matter.
However, there is an other issue I would like to report.
If I choose from a subtitle both its normal and 'forced captions only' versions, I get afterward a message if the 'forced captions only' doesn't exist.
But if I choose the 'forced captions only' without the normal version, I get a message immediately, and the program stops.
De_Hollander
10th June 2015, 10:15
I have a collection of over 40 3D bluray movies (left eye first).
some of these original 3D blu-ray's have right eye first.
Blu-ray's Sammy, Drive Angry , dolphin tale, en Prometheus.
When I play these movies the 3D effect seems to be reversed. The best way that I can explain it is that the part of the movie that should be in the foreground is in the background and the background appears to be in the foreground. This effect makes the movie un-watchable.
Pushing the menu you have an option reverse the right eye with the left eye, and then it's oke.
Is this a bug from the mede8er it's don't correct its zelf and play it wrong?
Can't handel the mede8er these blu-ray's with right eye first?
I have the 600x3D with 4.1 beta fimware.
here is an option that it can be adjusted so that it will provide the good display?
I heard with encoding the output gives Left eye first instead of right eye.
is there any way without re - encoding to get it well?
r0lZ
10th June 2015, 11:26
I must have done something terribly wrong, cause now everything seems to work fine. I have tried it a couple of times now with different movies, but the error doesn't appear anymore. I am sorry for wasting your time on this matter.
Thanks for the confirmation. If you find a way to reproduce the problem, please let me know. Even if you did "something terribly wrong", the program should react correctly.
However, there is an other issue I would like to report.
If I choose from a subtitle both its normal and 'forced captions only' versions, I get afterward a message if the 'forced captions only' doesn't exist.
But if I choose the 'forced captions only' without the normal version, I get a message immediately, and the program stops.
Hum, again I can't reproduce the problem. I just did a small test with a short clip. I have selected the French "forced only" subtitles only, and the program has demuxed the streams, extracted the 3D-Planes from the MVC stream and finally found that there is no forced captions in the French subtit;le stream. At the end of the process, it has displayed this dialog, perfectly normal:
---------------------------
BD3D2MK3D
---------------------------
Done with warnings!
* No forced captions in "00160.track_4609.Fra_forced.3D.sup"! Stream skipped.
Launch "_ENCODE.cmd" to encode the video (and optionally mux to MKV).
Use a delay of 5005 ms if you mux the files yourself.
Be sure to verify that there is enough disc space!
---------------------------
OK
---------------------------
I launched the encode, and finally got the MKV, of course without the forced French subtitles.
I have not tried yet to hardcode the forced subtitles (without selection other subtitles in tab 2), but I guess that the result will be identical.
So, I can't find any problem with the handling of the subtitles. Are you sure you use the latest version (v0.66) ? (I have recently modified many things in the code related to the subtitle streams, and older versions can perhaps have some bugs that are fixed in v0.66.)
Also, what do you mean exactly with "I get a message immediately" ? What is the content of that message ? When does it show up ? Is it at the end of the process, like the "no forced captions" warning, or immediately when you click the Do it! button ?
Note that I have already seen some BD discs with "bad" subtitle streams. Some short clips have subtitle streams totally empty (without forced or standard subtitles at all). In that case, BDSup2Sub errors out with a cryptic error message like "index 0 out of bounds" (or something similar). I have tried to intercept that message, and if it appears, BD3D2MK3D should display an error message similar to the "no forced captions" warning, but since that case is not frequent, I can't be sure that it is correctly handled. Anyway, in that case, the "index 0" message should appear in red in the console, and be in the BD3D2MK3D.log file.
Anyway, again, if you can reproduce the problem, please let me know. And keep the log file. I may need it to understand what's happening.
[EDIT] I did a test with the same short clip, but this time, I have selected no subtitle streams at all in tab 2, and selected the French forced only stream in the "hardcode subtitle on video" option in the last tab. Again, there is a (slightly different) warning at the end of the process, but everything went file, and I have encoded the clip without problem (and of course without hardcoded subtitles). Therefore, I can't find any bug in the handling of the forced subtitles.
r0lZ
10th June 2015, 11:40
I have a collection of over 40 3D bluray movies (left eye first).
some of these original 3D blu-ray's have right eye first.
Blu-ray's Sammy, Drive Angry , dolphin tale, en Prometheus.
When I play these movies the 3D effect seems to be reversed. The best way that I can explain it is that the part of the movie that should be in the foreground is in the background and the background appears to be in the foreground. This effect makes the movie un-watchable.
Pushing the menu you have an option reverse the right eye with the left eye, and then it's oke.
It's exactly the symptom of the left and right views inverted.
In a BD (or ISO), there is a flag in the MPLS file that tells if the two views are in the standard order: main view (AVC) = left view and dependent view (MVC) = right view, or in the opposite order. The BD player must read that flag and send the views to the TV in the correct order. BD3D2MK3D uses that flag to invert the views when it's necessary, and produces always the SBS or T&B file with the "left view first" (to the left in SBS, and on top in T&B), because it's now obviously the well established standard. You can examine the order of the two views in tab 1 of BD3D2MK3D.
Is this a bug from the mede8er it's don't correct its zelf and play it wrong?
Can't handel the mede8er these blu-ray's with right eye first?
I have the 600x3D with 4.1 beta fimware.
here is an option that it can be adjusted so that it will provide the good display?
I heard with encoding the output gives Left eye first instead of right eye.
is there any way without re - encoding to get it well?
Sorry, but this thread is not dedicated to the mede8er players or to any other hardware player. It seems that your player has a (big) bug and ignores the "right view first" flag, but I can't confirm. Please post your questions or report the bug in the mede8er forum (http://www.mede8erforum.com/), not here. Thanks.
And, no, there is (probably) no way to solve the problem without re-encoding the movie or fixing the firmware of your player. I suggest to re-encode the movie with BD3D2MK3D, and you'll get the views in the correct order. If THAT doesn't work as expected, then post a message here. But I will not reply any more to questions not related directly to BD3D2MK3D.
De_Hollander
10th June 2015, 11:45
i have the same
* No forced captions in "00....._forced.3D.sup"! Stream skipped.
http://www.mede8erforum.com/index.php?topic=16395.new%3btopicseen#new
i have already done this question.
r0lZ
10th June 2015, 12:10
As I have already explained elsewhere, there is no fast and accurate way to find if a subtitle stream contains forced captions or not. As a consequence, BD3D2MK3D offers to extract them in tab 2 without knowing if it's useful. After the demux operation, BDSub2Sub tries to extract the forced captions from the main subtitle stream. If it reports that there is no forced captions, then the warning is issued, and the forced stream is simply not included in the MKV (or hardcoded on the video). It's perfectly normal. If there are no forced captions, BD3D2MK3D can't invent them. Therefore, you can simply ignore the warning.
Let's hope that the programmers of the mede8er firmware will see your message and fix the bug. On my side, I can't do much more.
BTW, I have assumed that you play the BD or a non-modified ISO of the BD with your mede8er player. In that case, it is possible to know the right order of the views and the option to invert manually the order of the views is not necessary (unless the "left view first" flag is wrong in the BD itself, due to an authoring error). And therefore the first reply of jer1956 doesn't make sense. But of course, if you have used a program (such as an AVCHD converter) to modify or re-encode your BD and THAT program has not set the "left view first" flag correctly, that means that the bug is not in the mede8er firmware but in the program. (It's what jer1956 explains in his second reply.) If you want to report a bug, you must be sure that your source BD is correct. Verify it with BD3D2MK3D. If the AVC stream is the left eye view, AND the views are inverted on your TV, then it's not a problem related to the player. It's the BD or ISO that is the culprit.
Note that if the flag is wrong in the BD or ISO, BD3D2MK3D will produce a SBS or T&B file with the views inverted as well, because it trust the flag. As explained earlier in this thread (http://forum.doom9.org/showthread.php?p=1703420#post1703420), if you want to encode such a badly authored BD or ISO, you will have to modify the order of the views manually in the AVS script.
Also, SBS or T&B files not generated by BD3D2MK3D may have the views inverted. It's the case of many bad 3D conversions available on YouTube or similar sites. Again, I'm not responsible of the bugs of other programs.
De_Hollander
10th June 2015, 12:11
My source original BD is correct, when i looked in dvdfab it's says right eye first.
here more
http://www.mede8erforum.com/index.php?topic=16395.new%3btopicseen#new
i have call mede8er helpdesc he told me he has contact the software engineers. This is for now a mediaplayer problem, mede8er can play only Left eye first for playing the correct picture.
But there's is an option, in het menu, to reverse it manualy from right eye first to Left eye first. He say's: maybe it can corrected in the furture with firmware to detect en play right eye first proper.
r0lZ
10th June 2015, 12:22
OK. Just to be sure, what do you play with the mede8er ? ISOs of the original BDs ? Or only SBS or T&B MKVs ?
De_Hollander
10th June 2015, 12:39
OK. Just to be sure, what do you play with the mede8er ? ISOs of the original BDs ? Or only SBS or T&B MKVs ?
Most of time BD remuxed iso's from original BD.
Also playing sometimes the original BD, streaming from PC blu-raydrive to mede8er.
but that doesn't always work.
sometimes mkv Half-sbs and Half-OU
r0lZ
10th June 2015, 12:50
Most of time BD remuxed iso's from original BD.
What do you use to remux the original BD to ISO? The program you use may be the culprit.
Do you have similar problems when you stream from PC or when you play a SBS or T&B ? In the latter case, is it a MKV file produced by BD3D2MK3D ?
De_Hollander
10th June 2015, 18:14
I use anydvd, bdinfo, sometimes dvdfab.
The latest tsMuxeR_2.6.12 for muxing to iso
I dont have problems stream iso's 3d /some tiems mkv with network to mede8er.
Streaming from pc blu-ray drive with network to mede8er is is actually not supported
it play sometimes
the right eye problem I have with iso and original.
I haven't tried it yet with the mkv half-SBS /half - OU
r0lZ
11th June 2015, 10:42
OK, then I suppose that the problem may be caused by tsMuxeR. Can you verify if the left/right order is still correct when you remux a BD with the right view first with tsMuxeR ?
De_Hollander
11th June 2015, 13:10
i don't anderstand you.
I have also 1:1 sammy first adventure (no remux), and the same problem.
i have try a mkv sbs, and have the same problem, maybe it is my TV the problem?
Meybe it's give not the right signal right first to the shutterglassis
r0lZ
11th June 2015, 13:55
OK, I have Samy too, and I can confirm that it has the right view as the base view. It has the "right view first" flag set correctly, and BD3D2MK3D has no trouble converting it to SBS with the views in the usual order (left/right). (Same thing with Samy 2 BTW.) Therefore, if the views are inverted when you play that ISO directly with your mede8er and if you are sure that your ISO is an exact copy of the original (less the protections), then it's an evidence that your player is the culprit. (Note that if you play it via streaming, it is not sure that the mede8er has the bug, because the program you use to stream the file may be also the culprit. Therefore, to be sure that it's the mede8er that doesn't take the right view first flag into account, you must play the ISO locally, directly with the mede8er.)
But verify anyway. Open the ISO in BD3D2MK3D, select the main movie (it should be selected automatically) and look at the two lines about the video streams in tab 1. You should see something like this:
Video : Und AVC, 1080p, 23.976 fps, right-eye
Video : Und MVC, 1080p, 23.976 fps, left-eye (32 3D-Planes)
...
If "right-eye" is associated with the AVC stream, like in the example above, that means that the "right view first" flag is correctly set in your ISO, and your mede8er has a bug. Otherwise, the flag has been modified by the program you have used to copy the BD to ISO, and you should consider to use another program.
De_Hollander
11th June 2015, 15:59
i have try an mkv sbs from sammy on my smart tv usb input.
i have the same problem.
I think it's a TV problem.
It's the UE55D8000 led 3d from 2011
I have mound the iso and opend it with BD3D2MK3D
this is what i see
Video : Und AVC, 1080p, 23.976 fps, right-eye
Video : Und MVC, 1080p, 23.976 fps, left-eye (32 3D-Planes)
r0lZ
11th June 2015, 19:40
The order of the views is stored only in the MKV container, but unfortunately, all Samsung TVs ignore it. I have also a Samsung TV, and I know that it ignores the 3D mode stored in the MKV container, but that it takes the 3D mode stored in the video elementary stream into account. Unfortunately, that setting can specify if the movie is encoded in SBS or T&B, but not if the left or right view comes first. By default, my TV shows the left view first, as almost all TVs.
It's why all movies converted to SBS or T&B by BD3D2MK3D have the left view first anyway, regardless of the order of the views in the original BD (only, of course, if the flag is correct in the original BD or ISO). That means that the SBS you have tried on your TV has NOT been encoded with BD3D2MK3D, or that you forgot to reset the views order setting of the TV to its default value: left view first.
The "right view first" flag is correct in the ISO, and if you encode it with BD3D2MK3D, the TV will show the 3D correctly.
Conclusion: Encode your 3D movies with BD3D2MK3D and you should have no problem.
De_Hollander
17th June 2015, 18:12
OK, I have found a way to generate a better palette to use for conversion of the BD SUP files to VobSub format. That was not easy, but I got it. The problem is that BDSup2Sub uses a very limited set of colours, and requires the colours in a specific order.
The process of analysing all subtitles from the original subtitle file is very long. Therefore, I have added a sub-menu in the Settings menu to select the method to use to generate the palette. There are 3 options:
"Use BDSup2Sub Default DVD Palette" doesn't generate a new palette at all. It uses the default palette, like all previous versions of BD3D2MK3D. For best results, you should verify the IDX/SUB file, and if necessary modify the palette manually (with BDSup2Sub's "Edit Default DVD Palette" option).
"Analyse a single subtitle" is the recommended method, because it is fast. But it will modify only the two colours used by the single subtitle it has analysed. If there are other subtitles in the same stream that use different colours, they will not be modified, and will therefore still be wrong. However, usually, a subtitle stream uses the same colour for all subtitles, except sometimes some subtitles for the hearing impaired.
"Analyse all subtitles" should be used only if you know that the subtitle stream has subtitles in several different colours, or if you don't care wasting several minutes (per stream to analyse).
Note that if a subtitle stream uses, for example, several different yellows, BDSup2Sub will assign the only yellow it has in its palette to the two kind of subtitles, because it has only one yellow available. BD3D2MK3D can't fix that problem, even when using the "analyse all subtitles" option, and therefore it will modify the light and dark yellow slots of the palette with colours suitable for the first yellow it finds in the stream. The subsequent yellow subtitles in the stream may still have wrong colours.
Anyway, I think that with the default option to check a single subtitle only, BD3D2MK3D should already produce much better VobSub streams than before. And of course, if you want perfect subtitles, you should use the BD SUP format instead of VobSub (but take care and verify if your players are compatible with the BD SUP format).
Most of the other modifications in this version are also related to the Palette. For example, I have added a Tool to generate a palette from any subtitle file in BD SUP or XML/PNG format. See the version history for details:
As usual, download the latest version here: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
i have re-encoded Ice Age A Mammoth Christmas to Half OU
the problem de vobsub have again the wrong colors.
I thought you had fixed it
http://i.imgur.com/uTdbwBP.jpg
where is that number for? (at the green arrow)
http://i.imgur.com/7e2ARUe.jpg
i have set it befor on 19 and get a very small file
I want the best quality and not too small file.
1,89 GB (2.031.261.054 bytes)
What number gives the best result ?
powerdvd will not playing it, it crashed
r0lZ
18th June 2015, 10:00
How can I see if the colours are really wrong if you post the image of BDSup2Sub with "SUP (BD)" selected for the output format, and therefore showing two totally identical images of the subtitle?
Anyway, are you sure that you have loaded the palette before exporting the subtitles?
And have you understood that by default the palette is generated after having analysed a single subtitle ONLY? If you have subtitles in several different colours in the same stream, you have to enable Settings -> VobSub Palette -> Analyse All Subtitles (Very Slow).
Finally, remember that if you convert to VobSub format, it is NOT possible to obtain perfect colours. There will always be a difference, due to the limitations of the VobSub format.
I have already replied to the question about the CRF value. 23 is the default value and is imo a very good default, because it compresses very well for a very good visual quality. You can lower if if you wish, to obtain a better quality but a biggest file. To obtain the best quality and if the file size is not a criteria for you, try CRF 0 (lossless). And buy a new hard disc for all movies you will convert, because you'll get a huge file! In fact, your question doesn't make sense, because I can't know what you consider as the best balance between quality and file size.
De_Hollander
18th June 2015, 10:22
i had drop de vobsub in BDSup2Sub_v5.1.2 it is not a sup.
i had automaticly default the palette generated after having analysed a single subtitle
all the subs have the same collor
i opend the palet info
#COL - for BDSup2Sub (java version ONLY!) created by BD3D2MK3D v0.66
# Wed Jun 17 17:04:23 CEST 2015
# Generated from single subtitle image "temp_2D_0130.png".
# Note: Colour #0 (black) is not present in the INI file of the java version and cannot be modified.
Color_14=17,187,187
Color_13=51,250,250
Color_12=187,17,187
Color_11=250,51,250
Color_10=187,187,17
Color_9=250,250,51
Color_8=17,187,17
Color_7=51,250,51
Color_6=187,17,17
Color_5=250,51,51
Color_4=17,17,187
Color_3=51,51,250
Color_2=104,104,104
Color_1=204,204,204
Color_0=201,201,201
r0lZ
18th June 2015, 10:34
OK, and what was the colours of the ORIGINAL subtitle? Why can I see if something is wrong if you show me only the final result, but not the original subtitle? Post here the temp_2D_0130.png image and I'll be able to see if something went wrong.
De_Hollander
18th June 2015, 12:31
OK, and what was the colours of the ORIGINAL subtitle? Why can I see if something is wrong if you show me only the final result, but not the original subtitle? Post here the temp_2D_0130.png image and I'll be able to see if something went wrong.
http://i.imgur.com/lBd5uXe.png
r0lZ
18th June 2015, 13:12
I have recreated a simple XML file with your PNG, then converted it to a SUP file with only one image.
Then, I have generated this palette file with BD3D2MK3D:
#COL - for BDSup2Sub (java version ONLY!) created by BD3D2MK3D v0.67
# Thu Jun 18 13:44:45 CEST 2015
# Generated from single subtitle image "test_0001.png".
# Note: Colour #0 (black) is not present in the INI file of the java version and cannot be modified.
Color_14=17,187,187
Color_13=51,250,250
Color_12=187,17,187
Color_11=250,51,250
Color_10=187,187,17
Color_9=250,250,51
Color_8=17,187,17
Color_7=51,250,51
Color_6=187,17,17
Color_5=250,51,51
Color_4=17,17,187
Color_3=51,51,250
Color_2=104,104,104
Color_1=204,204,204
Color_0=201,201,201
Note that it is exactly identical to the palette you have saved above.
Finally, I have loaded the SUP file in BDSup2Sub as well as the generated palette, and configured it to export to VobSub format.
Here is the result. As you can see, it is perfect:
http://s9.postimg.org/l0a02gya7/example_conversion.png (http://postimage.org/)
Note also that you don't even need a custom palette to export that subtitles. The default DVD palette works perfectly too.
I have asked you to give me the "temp_2D_0130.png" file, because it's the file that has been used to compute the palette you have posted in post #396. If it's really the palette generated by BD3D2MK3D for the example posted in post #394, and if it is true that all subtitles have the same colours, then BD3D2MK3D has made its job perfectly well. But according to the screenshot in post #394, the subtitle displayed there IS NOT COMING FROM THE SAME SUBTITLE STREAM than the subtitle posted in your last post. Of course, if you use a palette generated for a specific subtitle stream with another, totally different stream, YOU CANNOT HAVE CORRECT RESULTS. But it's YOUR FAULT!
So, please do not post wrong bug reports any more, and learn how to use the program and how to organise your job so that you will not make stupid errors any more. I can't spend my time to try to understand what's wrong in my program if YOU are the culprit.
De_Hollander
18th June 2015, 14:46
i dont anderstand, you have see the result from me.
the 2D is good when it convert to 3d it's go's wrong.
What you let see is not a 3d convert but 3d
you have see the result from me, that the 3d is go's wrong.
you asking for an difrent subtitel temp_2D_0130.png then that i post before.
now i post subtitel temp_2D_0001.png
the one that i let you seen before in BDSup2Sub_v5.1.2
http://i.imgur.com/nhl5Van.png
I thought I'd reencode the film in the new version BD3D2MK3D
without use BDSup2Sub_v 5.1.2 manualy to edit the sup or vobsup
because it's no longer necessary anymore with the new version BD3D2MK3D
I dont anderstand why you asking for temp_2D_0130.png another subtitel line
then what i post the first time.
the first post is line 1.
r0lZ
18th June 2015, 14:58
You gave me a screenshot of a 3D SUB file, a palette.ini file and a single BMP of a subtitle. They are from DIFFERENT streams !
Obviously, the BMP has no grey shadow. It has a black outline only. Therefore, it is NOT possible to obtain a stream with a grey shadow. Of course, if you use a palette made for a different stream, you cannot obtain good results. How can I explain that better?
Normally, everything is automatic when you convert a BD. If you want to add your own subtitle streams, you have to generate the palette for your subtitle stream, and use it for your conversion. If you use another palette, that CANNOT work!
De_Hollander
18th June 2015, 16:17
i try it again i remux it first with 1 sup, than with BD3D2MK3D
De_Hollander
18th June 2015, 21:42
Oke i have de mux alle the sup out of the bd
except 1
this is the result
from the reencode with sup and vobsub
original
http://i.imgur.com/ON2kCqD.jpg
3d sup
http://i.imgur.com/EsOgrxT.jpg
3d vobsub
http://i.imgur.com/EwZzUgO.jpg
the shadow color is not black from the vobsub that BD3D2MK3D have made.
now i change de 3d sup to vobsub the palet with BDsup2sub manualy
http://i.imgur.com/AOztFyu.jpg
r0lZ
18th June 2015, 21:46
Post the palette.ini file.
De_Hollander
19th June 2015, 10:55
#COL - for BDSup2Sub (java version ONLY!) created by BD3D2MK3D v0.66
# Thu Jun 18 21:12:11 CEST 2015
# Generated from all subtitles in original file.
# Note: Colour #0 (black) is not present in the INI file of the java version and cannot be modified.
Color_14=17,187,187
Color_13=51,250,250
Color_12=187,17,187
Color_11=250,51,250
Color_10=187,187,17
Color_9=250,250,51
Color_8=17,187,17
Color_7=51,250,51
Color_6=187,17,17
Color_5=250,51,51
Color_4=17,17,187
Color_3=51,51,250
Color_2=104,104,104
Color_1=204,204,204
Color_0=201,201,201
r0lZ
20th June 2015, 07:32
OK, indeed, there is a problem with your SUP file. It is caused by another terrible bug in BDSup2Sub. Unfortunately, I can't do much to fix it, although I have a workaround that may work when converting it to VobSub.
The problem:
When a 2D SUP is converted to 3D, several dirrerent conversions must be made:
1. Convert the original SUB to 2D XML/PNG with BDSup2Sub: No problem.
2. Convert the 2D XML/PNG to 3D with ImageMagick (and BD3D2MK3D): No problem.
3. BD3D2MK3D analyses the PNGs to generate a 16-colours palette (used only when converting to VobSub but generated anyway).
4. Convert the 3D XML/PNG to the final 3D SUP or VobSub file with BDSup2Sub: Bug!
Conversion to 3D BD SUP:
In step 4, BDSup2Sub must convert the 3D PNGs (with white characters, a black background and a black outline) to the output subtitle format. It doesn't use the palette to convert to SUB.
There is no need to change the colours of the original PNGs, since the SUP format supports 16 millions of colours and 256 levels of transparency. In other words, BDSup2Sub should simply copy the content of the PNGs in the subtitle stream, without modifying it. But it's not what it does! For whatever reason (probably due to the semi-transparency of the shadow), it changes the colour of the shadow from pure black to grey! That's a terrible bug!
You can verify that steps 1 and 2 give perfect results by converting your SUP to 3D XML/PNG. Then load the PNG files in an image editor, and you'll see that the outline is black. Totally black. There is no problem in the 3D PNGs. However, if you load the XML/PNG stream in BDSup2Sub, the outline is "converted" to gray, without any reason to do so. That's the bug.
Unfortunately, I have absolutely no way to fix that problem with a workaround. Since there is no way to force BDSup2Sub to change its palette when it converts to SUP format (because it doesn't need a palette), the result is dependent of BDSup2Sub only, and unfortunately, with your precise input SUP stream, it fails to render the colours correctly. We have to live with that bug.
Conversion to 3D VobSub:
When the XML/PNG stream is converted to VobSub format, BDSup2Sub must reduce the 16 millions of colours of the PNGs to the 3 colours of the VobSub format. It uses normally its internal palette, but it is usually not perfect for a specific stream. Therefore, in step 3, BD3D2MK3D analyses the PNGs and tries to generate a palette that contains better colours, and it passes that palette to BDSup2Sub during step 4 to force it to use the right colours. That works usually well, but not in this case.
With this SUP stream, there are only two colours: the white of the characters (in fact a very light grey), and the pure black shared by the outline and the shadow. During its analyse, BD3D2MK3D finds the two colours. It changes the white to force the light grey used really by this SUP file, and it leaves the black alone. (The black cannot be changed anyway.) It doesn't try to change the other colours (notably the dark grey), because there is no reason to suppose that BDSup2Sub will use them. However, due to the bug explained above, it uses the dark grey for the outline instead of the black.
So, I have slightly modified the logic of the palette analysis. Now, if the dark grey is really used in the PNGs, than its colour is modified normally, and we can hope that BDSup2Sub will use it when necessary. In the case of this SUP file, there is no dark grey in the PNGs, and therefore at the end of the analysis, the dark grey colour has not been modified in the original palette. When BD3D2MK3D detects this, it assumes that the bug described above can happen, and it changes the dark grey to black. That forces BDSup2Sub to replace the wrong grey it uses for the shadow with an (almost totally) black shadow.
It seems that this method works well, and I did a few tests with other streams as well. Currently, it seems that the other streams are still well converted to VobSub, and therefore that the modification I did has not broken something.
Conclusion:
The next version of BD3D2MK3D will have a workaround for the BDSup2Sub palette bug, but it works only for the conversions to VobSub. Unfortunately, there is no way to fix the palette bug happening when converting to BD SUP.
In the meantime, it is easy to "fix" the colours of the final 3D VobSub file with BDSup2Sub. Just load the stream, go to Edit -> Edit Default DVD Palette, click on the "dark grey" slot, select black in the palette (in the lower left corner), OK the two dialogues, be sure to select "SUB/IDX" for the Output Format and export the file. (It is also possible to fix the dark grey colour by editing the original IDX file, if you prefer. Simply change the "999999" with "000000" in the line beginning with "palette:".)
Help needed:
Of course, if someone can try to fix the bug in the source code of BDSup2Sub.jar, I would be very grateful. I don't know Java and I don't have the Java programming environment, but I can explain how to fix the bug and test beta versions. Someone is interested?
De_Hollander
20th June 2015, 13:16
Thanks for your test and time to investigate it.
In the meantime I change the color palette manual.
BD3D2MK3D is a great programm.
the 2nd reencode gives a great result, with great quality
with settings BD compatible, CRF 15, preset veryslow.
now powerdvd is not crashing.
The reason that the first encode was crashed in powerdvd maybe i'v behold too much audio streams and subtitels in it.
r0lZ
20th June 2015, 13:31
Thanks for the confirmation about PowerDVD. But it should not crash, even with a lot of streams. You should try a better player, such as PotPlayer.
And sorry for my rude reply earlier. I was unable to imagine that the grey yellow was created from pure black by BDSup2Sub.
De_Hollander
20th June 2015, 14:26
I normally use MPC HC
No problem for your earlier rude reply . ;)
De_Hollander
24th June 2015, 14:47
I have a real3d film, with no subs.
Now i want mux the original sup file from the 2D blu-ray.
But tsmuxer set it to plane 0
That good.
But there is no dept /plane in the sup with playing the remux
Can BD3D2MK3D make a fixed dept/plane for real 3D?
r0lZ
24th June 2015, 17:10
No. It is easy to create a raw 3D-plane file with fixed depth values, but anyway, as far as I know, there is currently no way to embed it in the MVC stream before remuxing it. You would need a MVC encoder that supports the 3D-planes, and currently, the only free MVC encoder (the Intel) can't do that. In other words, if you re-encode a 3D BD (as AVC+MVC), the depth of the subtitles is irremediably lost. It's one of the big advantages of the SBS or T&B formats: you can keep the depth of the subtitles by including or hardcoding the 3D subtitle stream.
De_Hollander
24th June 2015, 23:28
so i can not give a depth to the sup, because the original MVC dont give it to the subtitel
set the plane to 0 in tsmuxer is not work for dat original blu-ray
r0lZ
25th June 2015, 06:36
Correct. Assigning a 3D-Plane number to a subtitle stream doesn't work if the 3D-Plane doesn't exist. And it is (currently) impossible to add a new 3D-plane to the video stream.
r0lZ
14th July 2015, 11:54
[Reply to a message by De_Hollander that has been deleted.]
Obviously the error message explains that lossless encoding cannot be made with profile high.
You have selected CRF 0, and indeed that means that you want to create a very huge lossless file. But anyway, your settings cannot work. The bluray-compat flag means (probably) that you want to burn a blu-ray disc, but the CRF 0 will produce a file with a bitrate way too high to be compatible with the blu-ray limitations. And anyway, even if the command is accepted, you will never find a blu-ray with a capacity sufficient to store the resulting video file.
Since the profile high is mandatory for the blu-ray compatibility, it is obviously impossible to encode with that parameters, even if you select another profile.
Try to use more coherent parameters, and a decent CRF value.
If you really want a lossless encoding (for what reason?) you should remove most of the other parameters, and certainly the blu-ray compatibility option.
De_Hollander
14th July 2015, 12:23
Yes indeed figure it out by myself whats the problem was. That's why i have delete my message.
I turned 0 to 1 and have no errors
r0lZ
14th July 2015, 13:59
Anyway, you CANNOT do a real CRF 1 (almost lossless) AND keep the blu-ray compatibility flag enabled at the same time, because the BD standard limits the bitrate to something much smaller than what you would need for CRF 1. It's not because there is no error message that you will obtain a real lossless and BD compatible file. I don't know what will be the winner, but I guess it's the BD compatibility options. Therefore, CRF 1 doesn't make sense. You should use a reasonable CRF value. IMO, below 16, it's completely crazy, unless you want to re-encode the result later, and in that case, it's the BD compatibility option that doesn't make sense.
De_Hollander
14th July 2015, 14:04
Anyway, you CANNOT do a real CRF 1 (almost lossless) AND keep the blu-ray compatibility flag enabled at the same time, because the BD standard limits the bitrate to something much smaller than what you would need for CRF 1. It's not because there is no error message that you will obtain a real lossless and BD compatible file. I don't know what will be the winner, but I guess it's the BD compatibility options. Therefore, CRF 1 doesn't make sense. You should use a reasonable CRF value. IMO, below 16, it's completely crazy, unless you want to re-encode the result later, and in that case, it's the BD compatibility option that doesn't make sense.??
I am not satisfied with quality with 15 and higher. I thought that how lower the number how better quality but how bigger the file.
What's de best setting?
De_Hollander
14th July 2015, 14:09
now i see 2 passes option and set the bitrate options.
How silly of me.
I try that with the 2passes and bitrate settings
r0lZ
14th July 2015, 14:42
There are no "best settings". They depends of your needs and the disc space you accept to give to the movie.
The problem is that the BD compatibility flag limits the bitrate. CRF 1 will only produce a huge file (without the BD compatibility flag) and you'll need a big hard disc for each movie you encode! Do you really want that? And if you leave the BD compatibility flag enabled, you will not have a better quality than what the BD standard permits, and therefore CRF 1 is not possible. You cannot have a better quality than the original BD anyway! If you CAN see the difference in CRF 15 or 16 with the original BD, then you're Superman! IMO, only analysis tools can detect the differences with such a low CRF.
You won't get a better quality with 2-pass. 2-pass encoding (and ABR) should be used only if you need to burn the final MKV on a disc with limited space, like a BD or DVD. It is totally useless to do the encoding in a mode that allows you to give the bitrate if the disc space doesn't matter. IMO, CRF mode is much better, as it adapts itself to the complexity of the movie, and you cannot be wrong. Of course if you select a reasonable CRF value.
BTW, many GUIs for x264 limit the CRF value to a reasonable range, like between 18 and 26. I should have made that too, but I prefer to let the user decide. But selecting intentionally a crazy value like CRF 1 doesn't make sense, and I'm beginning to regret my choice.
De_Hollander
14th July 2015, 15:56
There are no "best settings". They depends of your needs and the disc space you accept to give to the movie.
The problem is that the BD compatibility flag limits the bitrate. CRF 1 will only produce a huge file (without the BD compatibility flag) and you'll need a big hard disc for each movie you encode! Do you really want that? And if you leave the BD compatibility flag enabled, you will not have a better quality than what the BD standard permits, and therefore CRF 1 is not possible. You cannot have a better quality than the original BD anyway! If you CAN see the difference in CRF 15 or 16 with the original BD, then you're Superman! IMO, only analysis tools can detect the differences with such a low CRF.
You won't get a better quality with 2-pass. 2-pass encoding (and ABR) should be used only if you need to burn the final MKV on a disc with limited space, like a BD or DVD. It is totally useless to do the encoding in a mode that allows you to give the bitrate if the disc space doesn't matter. IMO, CRF mode is much better, as it adapts itself to the complexity of the movie, and you cannot be wrong. Of course if you select a reasonable CRF value.
BTW, many GUIs for x264 limit the CRF value to a reasonable range, like between 18 and 26. I should have made that too, but I prefer to let the user decide. But selecting intentionally a crazy value like CRF 1 doesn't make sense, and I'm beginning to regret my choice.
Alle x264 re-encodes haves 4.1 flag.
it's confusing
what's it meanss BD compatibility flag in your program anyway ?
I would like to have bitrate of 13
the intention is to have a smaller file than the blu-ray with a bit rate of 13 to save hard disk space.
normaly 2 pass re-encoding is in the most re-encodings x264 program's the best option voor quality.
and cpu re-encoding gives the best results than GPU acceleration.
My re-encode result
General
Unique ID : 209672436581007914956263681669069436738 (0x9DBD7141F063F989B32D2A6D9A5A7742)
Complete name : F:\sharks3d 3D-SBS 1080p.mkv
Format : Matroska
Format version : Version 3 / Version 2
File size : 4.63 GiB
Duration : 41mn 35s
Overall bit rate mode : Variable
Overall bit rate : 15.9 Mbps
Movie name : sharks3d
Encoded date : UTC 2015-07-14 15:19:17
Writing application : mkvmerge v7.9.0 ('Birds') 32bit
Writing library : x264 0.146.2538 121396c / (libswscale 3.1.101) / (libavformat 56.23.106) / (ffmpegsource 2.17.4.0) / built by Komisar on Mar 1 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 / (32bit)
Original source form : Blu-ray 3D
Attachements : _ENCODE_3D_MOVIE.avs / _ENCODE.cmd / 3D-Planes.zip
TITLE : sharks3d
AUTHOR : BD3D2MK3D 0.66
ENCODER_SETTINGS : --bitrate 14000 --pass 1 --stats "00000.stats" --preset slow --tune grain --bluray-compat --profile high --level 4.1 --open-gop --keyint 24 --slices 4 --colormatrix bt709 --colorprim bt709 --transfer bt709 --b-pyramid strict --vbv-bufsize 30000 --vbv-maxrate 40000 --aud --frame-packing 3
DATE_ENCODED : 2015-07-14
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
MultiView_Count : 2
MultiView_Layout : Side by Side (left eye first)
Format settings, CABAC : Yes
Format settings, ReFrames : 3 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 41mn 35s
Bit rate mode : Variable
Bit rate : 14.0 Mbps
Maximum bit rate : 40.0 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.282
Stream size : 3.97 GiB (86%)
Title : 3D Half-SBS (x264 BD compatible 2-pass 14000 Kbps preset slow, tune grain)
Writing library : x264 core 146 r2538 121396c
Encoding settings : cabac=1 / ref=4 / deblock=1:-2:-2 / analyse=0x3:0x113 / me=umh / subme=8 / psy=1 / psy_rd=1.00:0.25 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=1 / 8x8dct=1 / cqm=0 / deadzone=6,6 / fast_pskip=1 / chroma_qp_offset=-4 / threads=12 / lookahead_threads=2 / sliced_threads=0 / slices=4 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=1 / constrained_intra=0 / bframes=3 / b_pyramid=1 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=1 / weightp=1 / keyint=24 / keyint_min=1 / scenecut=40 / intra_refresh=0 / rc_lookahead=24 / rc=2pass / mbtree=1 / bitrate=14000 / ratetol=1.0 / qcomp=0.80 / qpmin=0 / qpmax=69 / qpstep=4 / cplxblur=20.0 / qblur=0.5 / vbv_maxrate=40000 / vbv_bufsize=30000 / nal_hrd=vbr / filler=0 / frame-packing=3 / ip_ratio=1.10 / aq=1:0.50
Default : Yes
Forced : No
Color primaries : BT.709
Transfer characteristics : BT.709
Matrix coefficients : BT.709
Color range : Limited
very good quality.
Now i'm going re-encode with CRF 15 preset: slower and tune :grain with force level to 4.1
I let you now the results.
r0lZ
14th July 2015, 17:23
Alle x264 re-encodes haves 4.1 flag.That's not true. It is true that most encoding in h264 are in 4.1 (or 4.2) level, because 4.1 is the level of the BDs, and therefore most hardware players are compatible with that level. But most is not all. You can find encodings in level 5.0 or 5.1, but they are less popular, because very few hardware players support them. Level 5.0 is even necessary if you encode in full-SBS or full-T&B.
what's it meanss BD compatibility flag in your program anyway ?
The BD standard imposes certain limitations to the encodings, so that the hardware players do not need too large memory buffers or too fast hardware, in order to reduce the cost of the hardware players (and probably because level 4.1 was the current h264 level when the BD standard has been written). If you want to import the movie in a BD authoring tool, you have to encode it with the options that restrict the encoding to the BD level. The BD level is similar to level 4.1, but with a smaller maximum bitrate, and other limitations. Therefore, it is not sufficient to specify level 4.1 to be BD compatible. The flag in BD3D2MK3D sets the --bluray-compat as well as a bunch of other settings to respect the BD standard. If you want to know exactly what it sets, generate a project with the BD compatible option on, and then another one with the flag off, and compare the x264 commands in the _ENCODE.cmd files.
Anyway, if you do not want to build a blu-ray with your SBS, you don't need to set that flag. (Some peoples set it anyway to be sure to be compatible with all TVs and other hardware players, but IMO that's not necessary. Level 4.1 or even level 4.2 are accepted by the vast majority of players.) And anyway, if you set the CRF value to a very low level, it CANNOT be compatible with the BD standard, because the bitrate will be way to high. Therefore, I suggest to do your next encodings without the BD compatible flag, and with level 4,1 or 4.2 alone.
I would like to have bitrate of 13
the intention is to have a smaller file than the blu-ray with a bit rate of 13 to save hard disk space.
13 is not a valid bitrate. You mean CRF 13, right? Anyway, if you specify the CRF (or CQ) mode, you cannot control the bitrate precisely. The encoder will take the decisions for you, according to the complexity of the movie. A very simple CGI animated movie for kids may be encoded with a very low bitrate with CRF 13, but a live film with many details and action scene will probably require a much greater bitrate for the same CRF. In both case, the final quality will be roughly equivalent, because the encoder will have taken the right decisions. In other word, specifying the CRF is roughly equivalent to specify the quality you want, while specifying the bitrate doesn't ensure a constant quality and, as I wrote above, should be used to specify the final file size only.
normaly 2 pass re-encoding is in the most re-encodings x264 program's the best option voor quality.
Totally wrong.
I agree that encoding in bitrate mode in 1 pass is the worst thing to do, because since h264 is a variable bitrate codec. Therefore, there is no way to know in advance what will be the ideal bitrate for each part of the movie. For example, if the movie is simple and has not many moving scenes at the beginning, the encoder will have much bitrate to waste. It will assign a bitrate to the easy scenes in order to have a final AVERAGE bitrate equal to the bitrate specified in the command line. But now imagine that the last part of the movie is terribly complex and has many action scenes (like in many action movies). The encoder will have already spent a big part of the bitrate to encode the easy parts, and it will have to encode the final scenes with the remaining bitrate, a too low bitrate for that difficulty. The quality of the end of the movie will be terrible!
Why is 2-pass is better than ABR? During the first pass, the encoder analyses the difficulty to encode each shot and image in the film, with a simplified encoding, and it saves a stats file. During the second pass, it uses the stats file to distribute the bitrate according to the difficulty of the different parts. That way, it can keep the bitrate for the difficult parts, and encode the easy parts with a smaller bitrate. That's a good solution, but note two things:
1) The first pass uses only a faster encode to estimate the difficulty. Therefore, it is not exactly as accurate than the second pass, and small errors in the bitrate distribution are still possible. Therefore, the 2-pass encoding is NOT perfect.
2) Using 2-pass makes sense ONLY if you need a specific file size. If you do NOT specify the file size (or, in other words, the bitrate), the encoder does NOT need to restrict itself to a certain overall bitrate, and therefore it will give EXACTLY what is necessary to obtain the best quality, during the first and only pass. Therefore, encoding in CRF mode gives PERFECT results in only one pass, and it's certainly better that GOOD results in two passes. It's also much faster.
I agree that many encodings are made in 2-pass, and you can read misleading howtos on the net that explain that 2-pass is better. It's simply absurd. Peoples think it must be better, because it's longer, but in fact, it's slightly less good.
Note also that some encoders do NOT have CRF or CQ options and REQUIRE to give a precise bitrate. It's the case, for example, of DVD-Fab. Since in that case, you can only encode in ABR or 2-pass, it is obviously better to use the 2-pass mode. But it's only because that encoder is very limited. With x264, you don't have that limitation.
and cpu re-encoding gives the best results than GPU acceleration.
I agree on this.
De_Hollander
14th July 2015, 18:09
normaly a good movie x264 encode, haves result to a Bit rate with 10.2 Mbps
That's what i mean with (13) Bit rate: 13.0 Mbps
You can see the results on the info the page before
r0lZ
14th July 2015, 18:55
Again, the final bitrate is not an evidence of good or bad quality.
For example, if you encode a totally black clip, a bitrate almost equal to 0 is largely sufficient to obtain a perfect quality. But if you encode a movie where all images are totally different from each other, 13.0 Mbps is certainly not enough to have a decent quality.
Don't trust the guides and other noise found on the internet. There is NO good or bad bitrate. Only good or bad quality. And if you look closely to your movie and you cannot see the difference with the original, that means that the quality is excellent, regardless of the bitrate.
Also, don't forget that the bitrates recommended on many sites are for DVD-Fab or similar bad encoders. If you use x264 (especially with a slow preset) you can certainly divide it by 2 and 3 and still obtain a better quality.
Do not be obsessed by the bitrate. It doesn't means much in term of quality.
BTW, I have also seen that you have enabled the "grain" tuning. IMO, it's a bad idea. It will probably degrade the final quality, unless you give a very high bitrate. IMO, you should only use the "animation" tune when you encode a classic animated movie like an old Disney or Tex Avery, with large flat areas (not modern CGI). Other tune options should be avoided, unless you know exactly what you are doing.
De_Hollander
14th July 2015, 20:40
i give the result from de output quality, thats what i mean.
I know bitrate say's noting and more data say's also noting.
I'm just do some test.
I used grain because there is grain in the movie.
13.0 mbps gives a verry good quality result, on mij test.
that is not constant 13.0 mbps, because the bitrate is also much higher at different times
Now iám re-encoding with these settings
http://i.imgur.com/dM0B9jc.png
I have also re-encoded many blu-ray's with bdrebuilder, with profiles.
And have used different profiles. for animation movies, the profile animation.
for movies with a lot of grain the grain profile.
etcetera
I take the same movie for al the encode test.
there are many grain into the movie. That why i used the profile grain.
There is mean to be that option for it, i think.
These CRF mode encoding test takes a longer time. It is/t faster but the opposite.
why is there no setting for cpu managing?
Preset: Is that binding with cpu encoding script, for giving more quality?
ore cpu using? I assume slower is better
De_Hollander
14th July 2015, 22:00
results
General
Unique ID : 245916863071583757788091510176232238669 (0xB901DD73635FAEFE9C859BF38997EE4D)
Complete name : C:\Users\Edwin\Documents\sharks_3d\00000\sharks_3d 3D-SBS 1080p.mkv
Format : Matroska
Format version : Version 3 / Version 2
File size : 10.1 GiB
Duration : 41mn 35s
Overall bit rate : 34.9 Mbps
Movie name : sharks_3d
Encoded date : UTC 2015-07-14 20:48:38
Writing application : mkvmerge v7.9.0 ('Birds') 32bit
Writing library : x264 0.146.2538 121396c / (libswscale 3.1.101) / (libavformat 56.23.106) / (ffmpegsource 2.17.4.0) / built by Komisar on Mar 1 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 / (32bit)
Original source form : Blu-ray 3D
Attachements : _ENCODE_3D_MOVIE.avs / _ENCODE.cmd / 3D-Planes.zip
TITLE : sharks_3d
AUTHOR : BD3D2MK3D 0.66
ENCODER_SETTINGS : --crf 15 --preset slower --tune grain --level 4.1 --vbv-bufsize 78125 --vbv-maxrate 62500 --frame-packing 3
DATE_ENCODED : 2015-07-14
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
MultiView_Count : 2
MultiView_Layout : Side by Side (left eye first)
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 41mn 35s
Bit rate : 32.2 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.648
Stream size : 9.36 GiB (92%)
Title : 3D Half-SBS (x264 high@L4.1 CRF 15 preset slower, tune grain)
Writing library : x264 core 146 r2538 121396c
Encoding settings : cabac=1 / ref=4 / deblock=1:-2:-2 / analyse=0x3:0x133 / me=umh / subme=9 / psy=1 / psy_rd=1.00:0.25 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=6,6 / fast_pskip=1 / chroma_qp_offset=-4 / threads=12 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=crf / mbtree=1 / crf=15.0 / qcomp=0.80 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=62500 / vbv_bufsize=78125 / crf_max=0.0 / nal_hrd=none / filler=0 / frame-packing=3 / ip_ratio=1.10 / aq=1:0.50
Default : Yes
Forced : No
Audio #1
ID : 2
Format : DTS
Format/Info : Digital Theater Systems
Mode : 16
Format settings, Endianness : Big
Codec ID : A_DTS
Duration : 41mn 35s
Bit rate mode : Constant
Bit rate : 1 509 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Compression mode : Lossy
Stream size : 449 MiB (4%)
Title : English (DTS 5.1 48KHz)
Language : English
Default : Yes
Forced : No
Audio #2
ID : 3
Format : AC-3
Format/Info : Audio Coding 3
Mode extension : CM (complete main)
Format settings, Endianness : Big
Codec ID : A_AC3
Duration : 41mn 35s
Bit rate mode : Constant
Bit rate : 448 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Side: L R, LFE
Sampling rate : 48.0 KHz
Bit depth : 16 bits
Compression mode : Lossy
Stream size : 133 MiB (1%)
Title : Nld (AC3 5.1 48KHz)
Language : Dutch
Default : No
Forced : No
Text #1
ID : 4
Format : PGS
Codec ID : S_HDMV/PGS
Codec ID/Info : The same subtitle format used on BDs/HD-DVDs
Title : Nld 3D (BD SUP)
Language : Dutch
Default : No
Forced : No
Text #2
ID : 5
Format : VobSub
Codec ID : S_VOBSUB
Codec ID/Info : The same subtitle format used on DVDs
Title : Nld 3D (VobSub)
Language : Dutch
Default : No
Forced : No
Text #3
ID : 6
Format : PGS
Codec ID : S_HDMV/PGS
Codec ID/Info : The same subtitle format used on BDs/HD-DVDs
Title : Nld forced 3D (BD SUP)
Language : Dutch
Default : No
Forced : Yes
Text #4
ID : 7
Format : VobSub
Codec ID : S_VOBSUB
Codec ID/Info : The same subtitle format used on DVDs
Title : Nld forced 3D (VobSub)
Language : Dutch
Default : No
Forced : Yes
Menu
00:00:00.000 : :1 - 0:00:00
00:05:29.870 : :2 - 0:05:30
00:11:20.096 : :3 - 0:11:20
00:17:36.305 : :4 - 0:17:36
00:22:36.480 : :5 - 0:22:36
00:27:26.769 : :6 - 0:27:27
00:34:31.527 : :7 - 0:34:32
00:38:43.152 : :8 - 0:38:43
00:41:35.659 : :9 - 0:41:36
My first re-encode (x264 BD compatible 2-pass 14000 Kbps preset slow, tune grain) are a lot smaller (dubbel smaller) with the same quality.(with the same blu-ray bitrate) then the Test with CRF mode.
Test with CRF mode: The bitrate are higher than the original blu-ray.
Next test tomorrow CRF mode with 23
De_Hollander
15th July 2015, 09:11
Now the results CRF mode with 21 (with no grain "grain" tuning enabled)
info
Format : Matroska
Format version : Version 3 / Version 2
File size : 2.46 GiB
Duration : 41mn 35s
Overall bit rate : 8 483 Kbps
Movie name : Sharks3D
Encoded date : UTC 2015-07-14 23:56:11
Writing application : mkvmerge v7.9.0 ('Birds') 32bit
Writing library : x264 0.146.2538 121396c / (libswscale 3.1.101) / (libavformat 56.23.106) / (ffmpegsource 2.17.4.0) / built by Komisar on Mar 1 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 / (32bit)
Original source form : Blu-ray 3D
Attachements : _ENCODE_3D_MOVIE.avs / _ENCODE.cmd / 3D-Planes.zip
TITLE : Sharks3D
AUTHOR : BD3D2MK3D 0.66
ENCODER_SETTINGS : --crf 21 --preset slower --level 4.1 --vbv-bufsize 78125 --vbv-maxrate 62500 --frame-packing 3
DATE_ENCODED : 2015-07-15
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
MultiView_Count : 2
MultiView_Layout : Side by Side (left eye first)
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 41mn 35s
Bit rate : 6 357 Kbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.128
Stream size : 1.85 GiB (75%)
Title : 3D Half-SBS (x264 high@L4.1 CRF 21 preset slower)
Writing library : x264 core 146 r2538 121396c
Encoding settings : cabac=1 / ref=4 / deblock=1:0:0 / analyse=0x3:0x133 / me=umh / subme=9 / psy=1 / psy_rd=1.00:0.00 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=21,11 / fast_pskip=1 / chroma_qp_offset=-2 / threads=12 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=1 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=crf / mbtree=1 / crf=21.0 / qcomp=0.60 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=62500 / vbv_bufsize=78125 / crf_max=0.0 / nal_hrd=none / filler=0 / frame-packing=3 / ip_ratio=1.40 / aq=1:1.00
Default : Yes
Forced : No
Disapointed results, mircoblokking. To low bitrate.
I should be enableding graintuning for better results.
What I also previously thought to have to do
2 passes gives the best results.
with give manualy 13.0 mbps
r0lZ
15th July 2015, 11:06
I used grain because there is grain in the movie.
That may be OK, but don't forget that grain is extremely difficult to compress. The first thing that all encoders do to compress better is removing the grain. If you force the encoder to keep it, it will need to regain some bitrate by other means, and you will probably end up with a poor quality. Or a very large file.
Also, I'm not sure the grain tuning is the best way to preserve the grain. Someone has explained earlier in this thread that it's not a good option. (Sorry, I'm too lazy to search the thread, but you should find the post easily.)
why is there no setting for cpu managing?
I can't include all x264 options in the GUI. I want to keep it simple.
But you can add your own options in the Additional options field. For example, you can add --threads 3 to force the encoder to use only 3 CPU cores.
Preset: Is that binding with cpu encoding script, for giving more quality?
ore cpu using?
Sorry, I don't understand.
Anyway, the preset is not related at all to the CPU. Selecting a slow or fast preset do not mean that the CPU will be used differently. The presets determine the settings of the most complex options that will be used by the encoder. See the x264 doc for a list of the options that are modified by the presets.
I assume slower is better
The presets change many x264 settings. Normally, the slower the best, but take in mind that if you select a slow preset, you may end up with a level greater than 4.1. It's why I have added the "force level" option, to be sure that a specific level will never be exceeded, regardless of the preset used.
Take care also. The Placebo preset is really extremely slow!
Usually, my settings are: CRF (18 to 22 depending of the quality I want for that specific film), Preset slower, Tune none, Force level 4.1, --threads 3, BD compatible not ticked. I have always had excellent results with that settings.
My first re-encode (x264 BD compatible 2-pass 14000 Kbps preset slow, tune grain) are a lot smaller (dubbel smaller) with the same quality.(with the same blu-ray bitrate) then the Test with CRF mode.
How can you be sure that it's "the same quality"? If you cannot see a difference, it's great, but if the file size is very different, it's because there is a difference in quality, even if you cannot see it. (It's why it is useless to use very low CRF values. The human eye cannot see subtle differences, and forcing a very high quality has only the effect of enlarging the file size for no good reason.
Test with CRF mode: The bitrate are higher than the original blu-ray.
That's what happens when you use a crazy CRF value, way to low.
Next test tomorrow CRF mode with 23
CRF 23 is the default (from the x264 team, not BD3D2MK3D), and I think that that value has been very well chosen. It gives excellent compression, while maintaining a reasonable quality. No visible artefacts, but the image is a little bit less sharp than the original. The final MKV file size is usually around 4 GB. That's really less than most encoding you can find on the internet, but if you use a slow preset, it's sufficient. However, personally, I prefer to lower that value a bit, and I use normally a CRF around 20 or 21. For movies with extra sharp and very detailed pictures, such as Sin City 2, I prefer even a lower bitrate, like 18 or 19.
You may think that 2-pass is better, but again, it's not true. The same movie with the same bitrate and the same parameters is encoded exactly the same way. The only real difference is that you cannot predict the exact bitrate in CRF mode, while it is easy to control it in 2-pass.
Also, the CRF mode is intelligent enough to give more bitrate to the parts that are really important (such as slow shots with many details) and less bitrate to the shots with rapid movements, because when you watch the film normally, you cannot see the (relatively) poor quality of these shots. Of course, if you examine closely a single image taken from one of these shots, you can see the problems. You have to watch the movie like a real spectator to evaluate the real quality of the encoding.
Anyway, you are free to do what you want.
De_Hollander
15th July 2015, 13:33
i'v tested again with these settings
http://i.imgur.com/JAPVDP5.png
output
Format : Matroska
Format version : Version 3 / Version 2
File size : 5.82 GiB
Duration : 41mn 35s
Overall bit rate : 20.0 Mbps
Movie name : Sharks3D
Encoded date : UTC 2015-07-15 11:48:30
Writing application : mkvmerge v7.9.0 ('Birds') 32bit
Writing library : x264 0.146.2538 121396c / (libswscale 3.1.101) / (libavformat 56.23.106) / (ffmpegsource 2.17.4.0) / built by Komisar on Mar 1 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 / (32bit)
Original source form : Blu-ray 3D
Attachements : _ENCODE_3D_MOVIE.avs / _ENCODE.cmd / 3D-Planes.zip
TITLE : Sharks3D
AUTHOR : BD3D2MK3D 0.66
ENCODER_SETTINGS : --crf 18 --preset slower --tune grain --level 4.1 --vbv-bufsize 78125 --vbv-maxrate 62500 --frame-packing 3
DATE_ENCODED : 2015-07-15
Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
MultiView_Count : 2
MultiView_Layout : Side by Side (left eye first)
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Codec ID : V_MPEG4/ISO/AVC
Duration : 41mn 35s
Bit rate : 17.7 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9
Frame rate mode : Constant
Frame rate : 23.976 fps
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Progressive
Bits/(Pixel*Frame) : 0.356
Stream size : 5.14 GiB (88%)
Title : 3D Half-SBS (x264 high@L4.1 CRF 18 preset slower, tune grain)
Writing library : x264 core 146 r2538 121396c
Encoding settings : cabac=1 / ref=4 / deblock=1:-2:-2 / analyse=0x3:0x133 / me=umh / subme=9 / psy=1 / psy_rd=1.00:0.25 / mixed_ref=1 / me_range=16 / chroma_me=1 / trellis=2 / 8x8dct=1 / cqm=0 / deadzone=6,6 / fast_pskip=1 / chroma_qp_offset=-4 / threads=12 / lookahead_threads=1 / sliced_threads=0 / nr=0 / decimate=0 / interlaced=0 / bluray_compat=0 / constrained_intra=0 / bframes=3 / b_pyramid=2 / b_adapt=2 / b_bias=0 / direct=3 / weightb=1 / open_gop=0 / weightp=2 / keyint=250 / keyint_min=23 / scenecut=40 / intra_refresh=0 / rc_lookahead=60 / rc=crf / mbtree=1 / crf=18.0 / qcomp=0.80 / qpmin=0 / qpmax=69 / qpstep=4 / vbv_maxrate=62500 / vbv_bufsize=78125 / crf_max=0.0 / nal_hrd=none / filler=0 / frame-packing=3 / ip_ratio=1.10 / aq=1:0.50
Default : Yes
Forced : No
but I have this re-encode compared with to the 2 passes encode
the 2 passes gives a sharper image even though it is smaller
This is the last test for me.
r0lZ
16th July 2015, 07:00
This release fixes the (last?) problem with the BDSup2Sub palette in VobSub mode, discussed above (http://forum.doom9.org/showthread.php?p=1727104#post1727104).
There are also improvements to some tools, and a new tool to easily remove subtitles from a XML/PNG stream (for example to convert the subtitles for hearing impaired to normal subtitles by removing the descriptive subtitles and leaving only the dialogs).
# v0.67 (July 16, 2015)
# - Tools -> Chapters File Converter: New possibility to grab the chapter names from another chapter file.
# - Tools -> Convert audio file to AC3 or AAC: It is now possible to convert the audio tracks directly from a MKV/MK3D/MKA file without demuxing them first.
# - Added Tools -> Remove selected subtitles from XML/PNG.
# - Workaround for another BDSup2Sub bug: Slightly modified method to generate the palette used when converting 2D SUP to 3D VobSub.
# - Minor cosmetic changes.
# - Updated MkvMerge, MkvPropEdit and MMG to the latest version (v8.0.1)
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
De_Hollander
16th July 2015, 09:58
This release fixes the (last?) problem with the BDSup2Sub palette in VobSub mode, discussed above (http://forum.doom9.org/showthread.php?p=1727104#post1727104).
There are also improvements to some tools, and a new tool to easily remove subtitles from a XML/PNG stream (for example to convert the subtitles for hearing impaired to normal subtitles by removing the descriptive subtitles and leaving only the dialogs).
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)Thank you:goodpost:
r0lZ
16th July 2015, 12:33
Thanks for the thanks! ;-)
but I have this re-encode compared with to the 2 passes encode
the 2 passes gives a sharper image even though it is smaller
Well, I have just finished some tests to compare the result of the CRF and 2-pass modes.
I have encoded a short clip (about 6 minutes) in CRF 20 two times, with the SSIM option and then with the PSNR. Then, I have noted the bitrate of the generated video stream, and encoded the same clip in 2-pass mode, with that bitrate, to obtain approximately the same file size. Again, I have encoded the clip two times, to obtain the SSIM and PSNR stats.
Of course, in all tests, I have not modified any other parameter. All encodings were made with preset slower and level 4.1. (The tune was set to ssim or psnr, but that settings are necessary to optimise the stats, and should not modify the video. But I cannot use the grain tune at the same time, so you have to consider that the encodings were made with tune "none".)
Here are the results of the tests:
CRF 20, preset slower, force level 4.1:
Encoding speed: 6.16 fps (encoding duration: 0:24:17.5)
SSIM Mean Y:0.9845501 (18.111db)
PSNR Mean Y:46.713 U:48.811 V:48.073 Avg:47.079 Global:46.399 kb/s:2532.32
Resulting video bitrate: 2532.09 kbps
2-pass 2532 kbps, preset slower, force level 4.1:
Encoding speed: 10.23 fps (pass 1) and 6.55 fps (pass 2) (total encoding duration: 0:37:27.5)
SSIM Mean Y:0.9845700 (18.116db)
PSNR Mean Y:46.698 U:48.799 V:48.058 Avg:47.067 Global:46.381 kb/s:2535.43
Resulting video bitrate: 2535.42 kbps
At the end of pass 1, this information was given:
SSIM Mean Y:0.9819845 (17.444db)
PSNR Mean Y:45.226 U:47.875 V:47.216 Avg:45.743 Global:44.857 kb/s:2542.13
Final ratefactor: 21.49
If you don't know how to interpret the SSIM and PSNR values, don't worry, me too I don't know. But I know that in both cases, higher values means better quality (or, more precisely, better similarity with the source video). A SSIM of 1.0 means lossless.
Therefore, as you can see, the encoding in CRF 20 mode is (slightly) better than the 2-pass encoding, for a slightly smaller file size. The CRF more is clearly the winner. These are objective values, not what the human eye sees. That doesn't mean that the encoding is "better" in CRF mode, because an human may prefer a video slightly sharper or softer than the original, and some artefacts that are detected by the SSIM or PSNR procedures may be invisible for the human eye. But at least these values are indisputable facts. The CRF encoding IS closer to the original source than the 2-pass encode.
Also, note the speed of the encoding. In 2 pass mode, the two encodings are shorter than the CRF pass, but pass 2 is almost as slow. And when you add the durations of the 2 passes together, the total duration is MUCH MUCH longer. About 1.5 times slower... for a slightly less good quality.
I have also posted the SSIM and PSNR values displayed after the first pass too, for your information only. Of course, they are less good than CRF or the 2nd pass, but that's normal, because it's the "fast first pass" necessary only to generate the stats. And it's why the first pass is "fast" than the result of the second pass cannot be perfect. If you want a better first pass, there is an option to turn off the fast first pass, and compute everything like in the 2nd pass. That setting may improve slightly the final quality in 2-pass mode, but of course, the total duration of the encoding will be even longer. Probably around 2 times the duration of the CRF pass.
A very interesting information displayed after the first pass in 2-pass mode is the final ratefactor. It's the ratefactor that will be used in pass 2 to obtain the target bitrate. As you can see, in my test, it is 21.49. CRF means "Constant Rate Factor", and in my CRF test I have used 20. The CRF value of the 2-pass encoding is greater, and as you know, a greater CRF means a less good quality. (I don't know if there are other small differences between CRF mode and 2-pass, but anyway a ratefactor greater than 20 is less good than 20.)
In conclusion, my tests confirm that 2-pass is slightly less good, and totally useless when it is not necessary to obtain a very precise final file size. I agree that the difference in quality is minor, but it exists, and I see no reason to waste much encoding time to do 2 passes when an encoding in one pass CRF is much more rapid. In fact, using CRF or 2-pass is approximately equivalent, and the first pass consists mainly (only?) in determining the CRF value to use during the second pass in order to obtain the specified bitrate. Do you really need to spend much time just to know a value that you could have specified directly in the GUI? Imo, it's only a waste of time and CPU power, not good for you and the planet.
I must say that it is possible that the difference with the two methods may vary from movie to movie, and perhaps also if you use some other parameters, such as the "grain" tuning. But in general, the quality of a CRF encoding must be considered as equivalent or slightly better than the quality of 2-pass, only much faster.
And don't forget the other advantage of CRF over 2-pass. It will produce a smaller file when the movie is easy to compress, or a larger file when it is difficult, automatically. In 2-pass, you must know exactly what bitrate you have to give to a certain movie to obtain the quality you want, and without a close analysis (that an human cannot do accurately), it's impossible to determine. CRF does it for you, free of charge.
I don't know what you did to see big quality differences in your tests, but you must have made something wrong, or changed other parameters (like the grain) between the two tests. Anyway, I continue to think that CRF is the better way to encode much (all?) movies, and it will stay the default mode in BD3D2MK3D.
sneaker_ger
16th July 2015, 12:45
x264 devs always said that CRF and 2pass are roughly equal and if anything CRF has the slight upper hand. (2pass algo has to do some slight adjustments over the course of the encode to hit target while CRF is "free")
In 2 pass mode, the second pass is slightly LONGER than the CRF pass.
No, 6.55 fps is faster than 6.16 fps. Some work (frame type decision) is already done in first pass and the whole stats calculations should be negligible compared to that so second pass is supposed to be faster than CRF.
A very interesting information displayed after the first pass in 2-pass mode is the final ratefactor. It's the ratefactor that will be used in pass 2 to obtain the target bitrate. As you can see, in my test, it is 21.49. CRF means "Constant Rate Factor", and in my CRF test I have used 20. The CRF value of the 2-pass encoding is greater, and as you know, a greater CRF means a less good quality. (I don't know if there are other small differences between CRF mode and 2-pass, but anyway a ratefactor greater than 20 is less good than 20.)
Be careful when interpreting these values.
r0lZ
16th July 2015, 13:01
x264 devs always said that CRF and 2pass are roughly equal and if anything CRF has the slight upper hand. (2pass algo has to do some slight adjustments over the course of the encode to hit target while CRF is "free")It's what I have tried to explain above. Thanks for the confirmation.
No, 6.55 fps is faster than 6.16 fps. Some work (frame type decision) is already done in first pass and the whole stats calculations should be negligible compared to that so second pass is supposed to be faster than CRF.
Yep. I have noticed my error, and modified my previous post while you were replying.
Be careful when interpreting these values.I agree that it's not easy. But normally, CRF 21.5 is always less good than CRF 20, right?
But I don't know if "Constant" in CRF is important. I wonder if the computed ratefactor during pass 1 is strictly equivalent to the CRF value in CRF mode?
sneaker_ger
16th July 2015, 13:08
But I don't know if "Constant" in CRF is important. I wonder if the computed ratefactor during pass 1 is strictly equivalent to the CRF value in CRF mode?
It's not, not even roughly. That's what I meant by saying "be careful".
r0lZ
16th July 2015, 13:41
OK, thanks.
frank
17th July 2015, 11:42
Congratulations to r0lZ. The explainations are very properly.
PSNR (in dB) is the mathematical right value describing the difference from the original.
I can remember that (global)
PSNR > 45 dB you cannot see any differences
PSNR > 44 dB very good
PSNR > 43 dB good
PSNR > 41 dB enough for grained sources
Use of CRF < 15 results in larger file sizes than the original.
Then you'd better use your original BD.
And I ask you, people: trust r0lZ. He has enough experience (since MPEG times). This is a thread about a 3D tool and not about basiscs of X264 encoding!
r0lZ
19th July 2015, 18:43
Thanks for the confirmation. But I can't totally agree on my supposed experience in x264 encoding. In fact, I don't understand the inside of h264 encoding much and I'm never sure of the correct usage of a specific parameter. But I know for sure that wasting our time in 2-pass encoding when the final file size is not important is absurd. I did some tests to confirm that supposition, and indeed I was right.
Now, I agree that discussion of the "best parameters" to encode a movie should be made in a thread specific to h264/x264, and not here. Thanks for that reminder too.
De_Hollander
19th July 2015, 18:58
sorry but my test gives me better results with 2 passes blu-ray compatible with giving manual bitrate of 14mbitps.
I have encoding blu-ray for many years.
Look for the bitrate from the original blu-ray with bdinfo, never give higher bitrate than the blu-ray.
So the blu-ray haves 28 mbps , i' give manualy average 14 mbps, with blu-ray compatibel that's alway's a good bitrate for a 1080p x264
Output :
File size : 4.63 GiB
Duration : 41mn 35s
Bit rate mode : Variable
Bit rate : 14.0 Mbps
You always get a good ratio proportion bitrate and file size.
I have tested many times with CRF with 21 but gives a to small file, and have see microblocking.
So you have see a result Bit rate : 6 357 Kbps (not good) tested with 42 minutes movie blu-ray 12 gig.
encode output was
File size : 2.46 GiB
Duration : 41mn 35s
Bit rate : 6 357 Kbps
r0lZ say's "blu-ray compatible, it's have limit's." No the bitrate beneath 40 is alway's good for a 1080p x264 encode.
higher bitrate than blu-ray is not normal, and gives problems with mediaplayers en streaming.
x264 1080p encode bitrate must be lower, then blu-ray. It's not normal x264 1080p blu-ray encode with higher bitrate then blu-ray, with a smaller file size.
This test
ENCODER_SETTINGS : --crf 18 --preset slower --tune grain --level 4.1
Duration : 41mn 35s
Bit rate : 17.7 Mbps
Width : 1 920 pixels
This encode is bigger in file, but haves not a sharp image like the
2 passes blu-ray compatible with giving manual bitrate of 14 MBps encode.
File size : 4.63 GiB
Duration : 41mn 35s
Bit rate mode : Variable
Bit rate : 14.0 Mbps
r0lZ
20th July 2015, 11:00
Please stop this useless discussion. I don't see the point in asking information here if you do not take it into account anyway. And as repeated two times, it's not the right thread to discuss x264 encoding.
r0lZ
20th July 2015, 11:22
This release fixes an important bug introduced with v0.67. The program may crash at the end of the processing if it has to convert to 3D a subtitle stream with a few forced subtitles extracted from a larger stream (with the "forced captions only" option in tab 2).
It fixes also a GUI bug during the conversion of an audio stream to AC3 or AAC, but less important because it can happen only when using the Convert Audio tool.
Important: I have also removed mmg.exe (and the "MkvMerge GUI" entry in the Tools menu) because mmg.exe is now obsolete, and has been replaced with mkvtoolnix-gui.exe. I have decided to not include the new MkvToolnix GUI, because I don't think many users need it, and it is difficult to control if the MKV compatibility options (specified with the Settings menu of BD3D2MK3D) are active when the GUI is launched. Having to manage two different sets of options was confusing and dangerous.
Please note that if you overwrite the BD3D2MK3D folder with this version, without deleting it first, mmg.exe will be automatically deleted from the BD3D2MK3D\toolset directory when BD3D2MK3D v0.68 is launched for the first time. I don't want to leave an outdated version of that program in the toolset.
If you want to manually mux your MKV files, download MkvToolnix (https://www.bunkus.org/videotools/mkvtoolnix/downloads.html#windows) and install it elsewhere, and use preferably the new MkvToolnix GUI. Don't forget to add the compatibility options you may need in the "Merging" tab of its Preferences window. (mmg.exe is still distributed with the current version of MkvToolnix, but I suppose that it will be removed relatively soon. If you continue to use it, you may also need to add the compatibility options in its preferences.)
# v0.68 (July 20, 2015)
# - Added verification of the disc space before launching the demux process.
# - Fix Tools -> Convert Audio: Cannot convert audio streams with spaces in the file name.
# - Fixed bug when generating the VobSub palette of a subtitle stream with forced captions only.
# - Updated MkvMerge and MkvPropEdit to the latest version (v8.2.0)
# - Removed mmg.exe (MkvMerge GUI), now obsolete. Install MkvToolnix if you need it.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
De_Hollander
20th July 2015, 12:15
This release fixes an important bug introduced with v0.67. The program may crash at the end of the processing if it has to convert to 3D a subtitle stream with a few forced subtitles extracted from a larger stream (with the "forced captions only" option in tab 2).
It fixes also a GUI bug during the conversion of an audio stream to AC3 or AAC, but less important because it can happen only when using the Convert Audio tool.
Important: I have also removed mmg.exe (and the "MkvMerge GUI" entry in the Tools menu) because mmg.exe is now obsolete, and has been replaced with mkvtoolnix-gui.exe. I have decided to not include the new MkvToolnix GUI, because I don't think many users need it, and it is difficult to control if the MKV compatibility options (specified with the Settings menu of BD3D2MK3D) are active when the GUI is launched. Having to manage two different sets of options was confusing and dangerous.
Please note that if you overwrite the BD3D2MK3D folder with this version, without deleting it first, mmg.exe will be automatically deleted from the BD3D2MK3D\toolset directory when BD3D2MK3D v0.68 is launched for the first time. I don't want to leave an outdated version of that program in the toolset.
If you want to manually mux your MKV files, download MkvToolnix (https://www.bunkus.org/videotools/mkvtoolnix/downloads.html#windows) and install it elsewhere, and use preferably the new MkvToolnix GUI. Don't forget to add the compatibility options you may need in the "Merging" tab of its Preferences window. (mmg.exe is still distributed with the current version of MkvToolnix, but I suppose that it will be removed relatively soon. If you continue to use it, you may also need to add the compatibility options in its preferences.)
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)Thanks for the post.:thanks:
r0lZ
23rd July 2015, 12:18
I have just noticed that Tools -> Add Current Album Art to MKV File doesn't work any more. It's not due to a bug in my code, but to a broken mkvpropedit.exe. In the latest version of BD3D2MK3D, I have included mkvmerge and mkvpropedit taken from v8.2.0 of MkvToolnix. Unfortunately, mkvpropedit v8.2 is broken and cannot add attachments to MKV files any more.
I will not release a new version of BD3D2MK3D just for that, but if you want to add cover art attachments to an existing MKV file with BD3D2MK3D, you should replace mkvpropedit.exe in the toolset directory with an older version. I don't know exactly when that bug has been introduced. Perhaps with v8.0? Anyway, I have tried v7.6.0 (because I have it here), and it works perfectly. So, if you can't get a working version of mkvpropedit, you can download mkvpropedit_v7.6.0.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/mkvpropedit_v7.6.0.7z) and extract the exe in your toolset directory.
Of course, I have posted a bug report at the MkvToolnix bugs tracker, and hopefully the next version of mkvpropedit will work fine. I will release an update of BD3D2MK3D at that time.
Note that adding cover art to a BD3D2MK3D project should work fine, because the attachments are added with mkvmerge, at mux time. Mkvpropedit is only necessary to add attachments to an existing MKV file (and is only used by the Cover Art option of the Tools menu).
[EDIT] After a contact with Moritz Bunkus (the author of MkvToolnix), it appears that the bug is in a recent version of a library used by mkvtoolnix. But it is sufficient to copy a magic file in the toolset directory and the latest version of mkvpropedit will work fine. So, you don't need to replace mkvpropedit with an outdated version. Just download the "magic.mgc" file (http://download.videohelp.com/r0lZ/BD3D2AVS/mkvtoolnix%20v8.2.0%20magic%20file.7z), and place it in the sub-directory "data" in the toolset directory. So, you must have this:
BD3D2MK3D_installation_path\toolset\data\magic.mgc
I have checked here and indeed that works fine.
If you have installed the whole MkvToolnix package, you can also simply copy the data directory from your installation of MkvToolnix to the toolset directory.
Of course, the next update will include that magic file directly in the BD3D2MK3D distribution.
Polar
25th July 2015, 13:39
Hi,
Just tested your software, but am having some trouble finding how to get the right settings. What I am trying to do is to convert my 3D movie so I can stream it from my Plex media server. The Plex client is a Roku 3 box. the playback is done on a 3D ready DLP projector.
From what I've been reading, DLP projectors only support 2x720p Frame Sequential, not 1080. Is there a way to do this by using BD3D2MKV3D? If not, any suggestions?
By the way, I'm using DLP-Link + glasses that support both120 Hz and 144 Hz
Best regards
r0lZ
25th July 2015, 15:26
Welcome to the Doom9 forums, Polar.
Unfortunately, currently BD3D2MK3D doesn't support frame sequential packing. It supports only the Side By Side or Top And Bottom packing methods. However, it is possible to create SBS or T&B files in 720p and full resolution.
I don't own Plex or a DLP projector, and therefore I don't know if Plex can split the two frames and send them as frame sequentail to the projector. You will have to try.
Anyway, all settings related to the resolution of the video are in the last tab. To do full-SBS in 720p, you should select "Side by Side", untick the "Full" option and tick the "Resize video to 720p". That settings are the closest of what you need, but the player or the monitor must be able to split the SBS image to two views.
Also, note that due to a limitation in the VobSub and BD SUP subtitle formats, you cannot have real 3D-subtitles (with the right depth) when using Full-SBS or Full-T&B. You can however hardcode the subtitles on the video stream when you encode the video, and they will be in 3D with the right depth.
Sorry if that doesn't help you much, but I have been unable to find the 3D characteristics of your hardware on the net.
Polar
25th July 2015, 16:09
Thank you for swift reply. Plex can do transcoding, but not for what is concerned 3D. I plays the file as-is.
I have been emailing with a forum member "tal.aloni". He has found a solution to recode 3D to 2x720p Frame Sequential for playbak on PS3. I have tested these demo files and the work great on my projector, played over Plex. But is a manual process.
Maybe this could be something interesting for you to have a look at. The thread is here: http://forum.doom9.org/showthread.php?t=170863.
As I wrote in my email to "tal.aloni":
"In this era of Home theaters and DLP 3D ready projectors flooding the marked, I find it a shame that no easy software solution is available for less tech-savvy persons like myself. 3D BDs just won't play on these low budget projectors unless they are in the right format.
As a conclusion it would be nice to find a user friendly solution that offers the flexibility to do just that. Convert 3D BDs to a format that allows one to store it on a media server and play back on the mentioned widely available hardware. Maybe with the help from professionals like you this can become a reality."
In other words, the solution is there, it only needs to be wrapped up in a nice and user friendly package :). Let me know what you think.
r0lZ
25th July 2015, 17:42
Well, I have always wanted to add the frame sequential packing, but I did not it yet, because there is no real demand for that packing method.
It should be possible to modify the avs script easily to change the output. It is also very simple to modify the mux option file. If I have some time in the next days, I'll try to implement it. However, there are a few things I need to know.
- Is is a well established standard for the order of the frames? Is it left view first like for SBS and T&B? (Anyway, it will NOT be possible to swap the order from the GUI, and therefore it is important to know the answer.)
- What frame rate should I use? All 3DBDs are encoded in 23.976 fps. I suppose therefore that I need simply to use 47.952 (or, more precisely, 48/1.001 fps). Correct?
Also, note that the encoding may be difficult and produce relatively big files for a relatively low quality, due to the difficulty for x264 to analyse the movement of the objects on screen if they jump back and forth to the left and right views, and compress that different views efficiently. But that's another problem.
I will try to do some tests this evening, and perhaps I'll be able to post tomorrow an explanation of what should be changed in the AVS script and Mux 3D options file to encode the movie in frame sequential mode. Stay tuned.
Polar
25th July 2015, 18:32
Left or right eye first? According to this document (http://lists.gnu.org/archive/html/bino-list/2013-03/pdfz6rW7jUrgI.pdf) 3D Input Format Requirements for DLP® Projectors using the new
DDP4421/DDP4422 System Controller ASIC , it is said that:
"The last active line in each stereo pair (left and right frames) shall alternate between two
frames of green (G=255, R=0, B=0) and two frames of magenta (G=0, R=255, B=255).
The left eye frame must always be transmitted first in each stereo pair."
The projector has a setting to set the sequence in reversed order, just in case of, and I found in the manual of my 3D glasses that there is a button that has the same function. I could test this if I had a 2 30 second files, one with left first, the other with right first.
Frame rate? Not sure. When looking at "tal.aloni" his BigBuckBunny-720p-3D.mp4 I see the following information in my player:
Video Resolution 720p
Duration 10:34
Bitrate 6043 kbps
Width 1280
Height 720
Aspect Ratio 1.78
Container MP4
Video Frame Rate 60p
Web Optimized No
Has 64bit Offsets 0
Video
Codec H264
Bitrate 5757 kbps
Language English
Bit Depth 8
CABAC 1
Chroma Subsampling 4:2:0
Color Space yuv
Duration 10:34
Frame Rate 60.000 fps
Frame Rate Mode cfr
Has Scaling Matrix 0
Height 720
Level 4.0
Profile high
Ref Frames 4
Scan Type progressive
Stream Identifier 1
Width 1280
Lyd
Codec AAC
Channels 5.1
Bitrate 279 kbps
Language English
Audio Channel Layout 5.1
Bitrate Mode VBR
Duration 10:34
Profile lc
Sampling Rate 48000 Hz
Stream Identifier 2
As a last note I can tell that my glasses have a refresh rate that supports 96Hz, 100Hz, 120Hz as well as 144Hz . From what I understand 144Hz is the new and better standard. Note sure where this fits in when discussing adding frame sequential packing. But I just give this as additional information for you.
Maybe "tal.aloni" has more usefull information in the thread I referred to?
r0lZ
25th July 2015, 19:22
"The last active line in each stereo pair (left and right frames) shall alternate between two
frames of green (G=255, R=0, B=0) and two frames of magenta (G=0, R=255, B=255).
The left eye frame must always be transmitted first in each stereo pair."
Honestly, I don't know why it should be necessary to modify the last active line of each frame. Is it really a standard for frame-sequential? Anyway, I will probably never implement that. Normal frames should be sufficient.
That quote confirms also that it's probably the left-frame first that is the standard for the DLP projectors. Good thing.
r0lZ
25th July 2015, 19:37
OK, I did some modifications to a few files and I am currently encoding a little clip. That should work. If you want to try yourself, follow this mini guide.
Use the GUI with the settings to encode in Half-SBS, 720p.
Do NOT use the 3D mode for the subtitles (in tab 2). However, you can hardcode the subtitles over the video (in tab 5).
Do not specify "Add N seconds of black at the beginning of the video" in tab 5.
You can specify "Add N seconds of black at the end of the video", but take in mind that you must specify two times the duration (for example specify 10 to obtain 5 seconds).
When the project is created, modify the following files:
_ENCODE.cmd:
Modify the 2 (or 4 for 2-pass) occurrences of -frames. The number of frames must be doubled.
Change "--frame-packing 3" (or 4) to "--frame-packing 5"
Remove the argument "--qpfile chapters_3D.qpfile" OR modify the chapters_3D.qpfile file (see below).
Not really mandatory: add "--fps 48000/1001" in the x264 command.
_ENCODE_3D_MOVIE.avs
Replace this section:
# Build combined Side-by-Side image
StackHorizontal(Left, Right)
AssumeFPS("ntsc_film")
# Resize to 720p
BicubicResize(2560, 720)
with this:
Interleave(left, right)
AssumeFPS(48000/1001.0)
BicubicResize(1280, 720)
_MUX_3D_OPTIONS.txt
You may want to change the output file name under --output, but you can do it later.
Change SBS in the --track-name of the 3D Video Stream to "frame-sequential" or anything you may prefer. (It's just a label.)
Replace --stereo-mode 0:1 with 0:13 (To be confirmed.)
Replace --aspect-ratio 0:32/9 with 0:16/9
Replace --default-duration 0:24000/1001p with 0:48000/1001p
chapters_3D.qpfile
If you have not removed the --qpfile chapters_3D.qpfile argument in _ENCODE.cmd, you must also edit the chapters_3D.qpfile.
That file contains simply a list of frame numbers followed by I (upper case i).
Each frame number must be doubled. For example, "1770 I" must be changed to "3540 I".
The qpfile is used to force an I frame at the beginning of each chapter, so that it is easier for the players to jump to the beginning of a chapter. It's an improvement but it's not mandatory.
Finally launch _ENCODE.cmd and everything should be automatic. :-)
Note that tal.aloni recommends to mux to MP4 with his own muxer, and to convert the audio streams to AAC. Since his guide is made for very specific hardware and anyway BD3D2MK3D will never mux to MP4, I have not taken that recommendations into account. If your player is recent, it should support the MKV format anyway.
r0lZ
25th July 2015, 19:43
OK, it works, or at least I think so. I have no way to test it. If you want to test it with your hardware, you can download the encoded clip (left view first) here: demo 3D frame-sequential 720p.mkv (http://download.videohelp.com/r0lZ/tmp/demo%203D%20frame-sequential%20720p.mkv) (Download it rapidly. I cannot leave it on the site for a long time.)
Please let me know if it works as it should.
sneaker_ger
25th July 2015, 19:45
Remove the --stereo-mode 0:1. (I don't think MKV has a stereoscopy value for frame-sequential.)
I think mode 13 and 14 might be intended for this scenario. If not, that would be a huge oversight by the Matroska team.
r0lZ
25th July 2015, 19:59
You may be right, but I don't understand the description. "Both eyes laced in one block" is not what I would have used to describe frame-sequential. And what is that "block"?
Anyway, if you are right, it is easy to replace --stereo-mode 0:1 with --stereo-mode 0:13
sneaker_ger
25th July 2015, 20:09
I think block refers to a Matroska block here, i.e. setting this should not only set the stereo flag to 13/14 but it should influence the actual muxing. I think this might be needed to keep it synchronized in case of seeking or error (so player always knows what's left and what's right view). But I'm note sure if that's really how it works nor whether mkvmerge actually does it correctly (testing mkvmerge should not be difficult, though).
I will think about it some more...
r0lZ
25th July 2015, 20:18
I see. You are probably right. I have changed the mini-guide accordingly. However, as I wrote, I cannot test that frame packing myself, and therefore I can't be sure. If you find more info, please let me know. In the meantime, I'll ask Moritz Bunkus...
[EDIT] I have remuxed the demo MKV with --stereo-mode 0:13 and I have just replaced it on the server. If someone has downloaded it already, it might be necessary to download it again.
sneaker_ger
25th July 2015, 22:13
Current mkvmerge behavior does not make sense to me. Imagine 25 fps 3D movie, then timecodes in mkvmerge:
L0 0
R0 20
L1 40
R1 60
L2 80
R2 100
...
But of course it should be:
L0 0
R0 0
L1 40
R1 40
L2 80
R2 80
...
But then left view has duration of 0ms. I think that's why different muxing style is required.
If your discussion with Mosu or rest of Matroska team is public please share link to it.
r0lZ
26th July 2015, 14:13
I agree that the frame rate is a good argument for the --stereo-mode 13. Thanks.
I have sent an email to Moritz, but he hasn't replied yet. I will report here when I'll receive a reply.
@anybody interested in the Frame Sequential stereoscopic mode:
I have a beta to test. It implements the Frame Sequential stereoscopy mode, and everything seems to work fine, but I haven't tested it carefully yet. It produces similar files than the files modified with the mini guide posted a few posts above (http://forum.doom9.org/showthread.php?p=1731553#post1731553), but it has not the same limitations. (For example, you can specify a blank at the beginning of the video if you wish.)
It has also several safeguards, for example to ensure that at least the minimal h264 level required for a precise mode is possible with the settings currently selected. (For example, it is necessary to use at least level 4.2 in Frame Sequential 1080p. That means also that the "BD compatible" option cannot be used.)
It is also possible to hardcode the 3D subtitles over the video (but since it doesn't make sense to generate 3D SBS or T&B subtitles for Frame Sequential, it is not possible to mux 3D subtitles in the final MKV file).
This version implements also some other changes and improvements, and it fixes the bug of the missing magic file explained here (http://forum.doom9.org/showpost.php?p=1731194&postcount=442).
# v0.69 beta 1 (July 26, 2015)
# - Added the Frame Sequential 3D packing format (in addition to SBS and T&B).
# - The program is not "not responding" any more when converting audio to AC3 or AAC.
# - There is now a larger choice of bitrates when converting audio to AC3.
# - Bug Tools -> Add Current Cover Art to MKV File: toolset\data\magic.mgc was missing.
If you use this beta to create Frame Sequential files, please let me know if it works correctly, and if the file is playable on your hardware. Thanks!
Download the beta: [link removed]
Remember that this version is a beta! Use it at your own risk.
Polar
27th July 2015, 10:47
Sorry for the delayed reply. Had to work this weekend. Just did a download of the demo mkv file. It won't play 3D.
When I compare with the tal.aloni file, I see a few differences. Not sure if they are relevant, but I'll leave that up to you to:
All of the tal.aloni demo files I managed to play had a 60p video frame rate, you have 24p
tal.aloni used level 4.0, you have 4.1
tal.aloni had 4 Ref Frames, you have 8
When I playback, what should be 3D is shaking from left to right.
r0lZ
27th July 2015, 11:18
The frame rate cannot be changed. "NTSC film" at 23.976 fps is the frame rate of ALL BD 3Ds. Since there is twice the number of frames in Frame Sequential mode, BD3D2MK3D sets it to 47.952 (or more precisely 48/1.001 fps). It's not at all 24p. I may have used a wrong fps value when I have encoded the test file manually, but I don't think so. Anyway, the new beta of BD3D2MK3D uses 48/1.001 and that's correct. If your hardware cannot play that frame rate, then say goodbye to the 3D, as it will be extremely difficult to change the frame rate to 60p. Furthermore, 60p is not an usual frame rate. 29.97 is the frame rate of NTSC interlaced video, and that value times two gives 59.94. That's not 60, and I wonder how it is possible to obtain that value, and why he has used it.
The other parameters can easily be modified in the BD3D2MK3D GUI. You can force level 4.0 in tab 5. I don't remember exactly, but I think that's also sufficient to obtain the 4 ref frames. If it's not the case, you can add specific arguments in the "additional options" field in tab 5.
Anyway, tal.aloni has explained how to make 3D movies for the PlayStation 3 and Sony Bravia W8, obviously extremely limited and non-standard for the 3D playback. Since you have another hardware and software, there is absolutely no reason to use exactly the same parameters.
Now, you can encode in frame sequential mode with the beta of BD3D2MK3D. Do your own tests. If your hardware is really able to play 3D movies, it must be possible to find the right parameters. I can't help you more.
Oh, have you tried to force your player to switch to 3D playback? Not all players are smart enough to obey the frame-packing info from the video stream or the stereoscopy mode from the MKV container.
Polar
28th July 2015, 14:26
Did a test with Imax Space Station iso. After convertion I end up with a Frame Rate 47.952 fps mkv file. Same issue, I can not get the 3D to work here. It works fine with the other demo files with Frame Rate 60 fps.
So I am wondering if I am on to something here. When searching the internet and lookin at the 3D convertors there are available for use with 3D ready DLP projectors, they all talk about 720/60.
A few examples on other forums or descriptions:
http://www.projectorcentral.com/pdf/projector_spec_8302.pdf :
3D Compatibility†
Supports all HDMI 1.4a mandatory 3D formats
(Frame pack, side-by-side, top-bottom) and
up converts frame rate from 60Hz to 120Hz
or 24Hz to 144Hz (i.e 60 or 72 frames per
eye). 3D glasses are needed and are sold
separately.
http://www.xpand.me/news/29/ :
XpanD’s DLP-Link is completely compatible with the DLP technology’s synchronization between left and right eyes. The 3D technology performs at 60 frames per second per eye (total 120 FPS).
https://forums.geforce.com/default/topic/752683/dlp-link-3d-glasses/?offset=18:
The 3D 'standards' are '720p60' & '1080p24', the 60, and 24 respectively, are for frames per eye(FPS)
http://www.spirton.com/convert-videos-to-60fps/
"...25FPS becomes 50FPS and 24/30FPS becomes 60FPS by default"
This last link also has a tutorial, but I think he uses the same modules like you do.
To conclude, I am guessing that in order to playback 3D on 3D ready DLP projectors with DLP link active 3D glasses, 60 fps must be a requirement. I see no other explaination for why I can play "tal.aloni" demo files, and not yours. Would it be hard to implement this in your script?
r0lZ
28th July 2015, 15:38
Not hard. Nearly impossible.
The 3D blu-ray frame rate is 23.976 fps. Dot. If DLP projectors cannot support that frame rate, that means that they cannot show the output of blu-ray 3D players, and "3D ready" is obviously a lie.
You can try to remux the streams at 24 fps (for a total frame rate of 48 fps) or 30 fps (total 60). The sound will not be in sync, but at least you will be able to test if the 3D MKV files are really supported.
To do that, simply edit _MUX_3D_OPTIONS.txt, and change --default-duration 0:48000/1001p to 0:48 (or 0:60) in the 3D video stream section. Then launch _MUX_3D.cmd to create the MKV file at the specified (wrong) frame rate.
If that works, you can manually re-encode the audio files for 24fps and remux again (at 48 fps instead of 47.952). With some luck, you'll be able to see the movie with properly synced audio. (I don't know what is the best free way to convert the audio rate. I use Adobe Audacity for that kind of jobs, but it is not free. You may probably use eac3to, with one of its GUIs.)
Converting to 60fps is much more complicated. That requires to apply pulldown (or telecine) to the video stream. In other words, you must convert a movie shot for the cinema to the old NTSC format, but not exactly because 30 (or 60) fps is not the standard NTSC frame rate. That's really strange, since all 3D movies of all times have been shot for the cinema at 24 fps, and as far as I know, never for the NTSC TV. Anyway, although you can try to do the pulldown conversion, that will be slow and introduce many artefacts, and I can't guarantee that the 3D effect will be preserved. However, if you really want to do that, you will have to edit the AVS script to convert the two views. I can explain how to do that later, but do simple tests first.
In all cases, you will need to convert the subtitles files as well, and you'll lose the chapter points.
BD3D2MK3D can't output in 24 or 30 fps, and I will certainly not implement that. It converts a BD3D to MKV, and doesn't invent fancy frame rates, because some hardware players or projectors cannot play the standard 3D frame rate. Sorry.
[EDIT] The tutorial to convert video to 60fps (pointed to by your last link) is not at all what you need. It explains how to convert a 2D video at 24fps to 48fps to improve the quality and avoid flickering. You need to convert TWO video streams at 23.976 to 24 (or 30) fps each, and that gives a total of 48 (or 60) fps. And for 24 fps, there is no need to encode the video again. The change in speed is small enough. You can simply change the frame rate info when you mux the file. The problem is that small speed change is sufficient to create progressively a de-synchronisation with the audio. Therefore, you must re-encode the audio, not the video. As explained above, unfortunately converting from 23.976 to 30 fps is very different, and you cannot just change the frame rate, because your movie will play too fast, like the very old b&w films. I can only hope that your hardware supports 24 fps. 30 fps is a total nonsense in the 3D world.
Another thing. Some peoples convert a 3D movie taken from a BD3D (always at 23.976 fps) to 25p, because 25 fps is the PAL frame rate, and therefore it is possible to use the audio from a PAL DVD with the video of the 3DBD. That's really easy (if you don't need the chapters and subtitles). It is sufficient to use the frame rate 25 instead of 24000/1001 in the mux options, and to replace the original audio track with the audio of the DVD. But that's 25 fps, not 24 or 30. And NTSC DVDs are at 29.97 fps, not 30. And since the speed change is too important, you cannot simply change the frame rate value. You must telecine and re-encode the video stream.
r0lZ
28th July 2015, 16:13
Just verified the frame rate of the 3 clips I've downloaded from the tal.aloni guide. Only Big Buck Bunny is encoded at 60fps. The two ads are encoded at 59.94 fps. That's exactly the NTSC video frame rate * 2. That's good news, although it's a frame rate incompatible with the BD 3D format. If your player can play the two ads, that means that it supports other frame rates than exactly 30fps, and there is a chance that it supports also 23.976 (* 2). So, I wonder if the problem could be related to the encoding parameters, or MKV file format instead of the frame rate. Have you tried to remux one of these two ads to MKV? If they do not work, you may simply need to remux the MKV files produced by BD3D2MK3D to MP4 (perhaps with tal.aloni's own MP4 muxer, I don't know.)
Polar
28th July 2015, 18:43
Thank you for your extensive reply. Then my options are limited. When reading this link however (http://www.projectorcentral.com/what_does_3d_ready_mean.htm), it makes me wonder...
I quote :
"A frame sequential signal is a full resolution picture sent at 120 frames per second to the display. The frames alternate in sequence, so the display receives a left eye frame, then a right eye frame, then a left eye frame, and so on. This is simple because the projector itself does not need to do any decoding of the source; it just needs to be capable of accepting a 120Hz signal. Correspondingly, this format requires a lot of bandwidth, since it is essentially sending a full resolution signal at 60 frames per second for each eye."
"The currently available, inexpensive DLP "3D Ready" projectors are good for a lot of applications. For gaming, nothing beats the big-screen experience of 3D through a projector. ... But as far as home video is concerned, they have some serious limitations. They are incapable of displaying frame-packing and side-by-side, the two most popular and important 3D transmission formats for video. While most of these products are designed as data presentation projectors, people have been buying them in the hopes of using them for home theater anyway. Without support for the right formats, you will find yourself purchasing another 3D projector in the future once support for these formats is incorporated. As in all things, caveat emptor--let the buyer beware."
:sly:
So the marked is now flooded with a hardware solution like this :
http://www.amazon.com/Huhushop-Converter-120Hz-Ready-Projector/dp/B00DOTNDEE
DLP 3D Converter 2x1 HDMI 1.4 For 120Hz 3D Ready DLP Projector
"Due to 3D ready DLP projector can only receive 120Hz frame sequential format video to achieve 3D effect, so 2D and 3D format (SBS-H/TAB/FP) video can't be view in 3D ready DLP projector at 3D mode. Thank goodness, this 3D ready DPL media processor will help you to make it. It is the first converter to support 120Hz 3D ready projector HD video."
"Support 1280*720/120Hz Frame sequential (FS) format output,Support 3D Side by side half (SBS-H) convert to FS format for 3D ready projector,Support 3D Top and bottom (TAB) convert to FS format for 3D ready projector,Support 3D Frame packing (FP) blue ray format convert to FS format for 3D projector,Support 2D convert to FS format for 3D Projector,Support 2D convert to SBS-H 3D format for 3D HDTV,Support 480p /576p/720p/1080p solution,Support 3D TV channel convert to 3DTV/3D projector"
In other words, it can be done. But it looks like my only option is to use the hardware methode. Kind of overkill for the occasional 3D movie that will be on menu.
I'm just wondering what technology, software or codecs have been used for this "online" conversion.
Thank you for your time and swift responses. It confirms that you and many others are real pros. If you ever should consider to get this FS Conversion up and running in BD2D2MKV3D, you know that I have the hardware to test it ;).
r0lZ
28th July 2015, 19:42
Damn! Bad news for you. That confirms that we are both right. It is true that the DLP projectors require 60fps, and that 60fps is not compatible with usual 3D formats. (Of course, things are different for games, that can use any frame rate supported by the graphic card).
IMO, the conversion box do something like telecine in real time, with some specialized hardware. That might be a good solution, because normally any 3D movie will be playable easily, including the 3 formats that can be generated with BD3D2MK3D, and the BD 3D players. The quality may be good, or bad. I don't know. As I have explained above, it is possible to convert the 23.976*2 fps of the BD format to 59.94 fps. It's just a new filter to add in the AVS script generated by BD3D2MK3D. If your hardware can play exactly 59.94 fps (not 60!), then you will not need to convert the audio, subtitles and chapters, because the duration of the movie will not be modified. You may want to try that method before buying a DLP 3D Converter. If you want to check it, I can explain how to do it, but now I have to go. I'll do it tomorrow if you wish.
Polar
28th July 2015, 19:55
Most appreciate it! If we could have a go at the demo you made maybe? If this works, you just came up with a solution for all DLP 3D Ready Projector owners ;)
r0lZ
29th July 2015, 08:37
OK, I have encoded the demo file at 59.94fps (and level h264 4.0, but that should not be necessary).
You can download it here: test 3D-FS 59.94p.mkv (http://infinit.io/_/7wRjEXA). (The FTP server of VideoHelp is currently down, and I can't upload the file to the PgcEdit/BD3D2MK3D home, so I had to use a file sharing service. I've tried infinit, but it's the first time that I use that free service. Please let me know if you have trouble downloading the file.)
Note that I have used the ConvertFPS avisynth filter (in "Blend mode") to change the frame rate. It's not the telecine method. It might give better results, because it doersn't create interlaced video, but it has also some limits. The frames are blended together to create new frames when necessary. The quality of the resulting video is lower than the original, and if you play the video frame by frame you'll see the blended images, but I suppose it's the best way to obtain the (almost) 60p frame rate. Read the ConvertFPS doc (http://avisynth.org.ru/docs/english/corefilters/fps.htm). It explains the advantages and drawbacks of the technique, and the two modes of operation. You may also want to try the filter in Switch mode and experiment with the zone and vbi parameters.
Yesterday, when I've searched the best method to convert the frame rate of a clip, I found a doc (I can't find the site any more) explaining that the ConvertFPS avisynth filter works in the same way than the commercial hardware DLP frame rate Converters. So, this solution should give approximately the same result than the Huhushop DLP 3D Converter you have found on the Amazon site. I don't know if the avisynth software method is better or worse than the hardware, but it is certainly cheaper!
Another advantage of the ConvertFPS method is that it can theoretically convert to any frame rate without the sync problems with the audio and subtitles. Therefore, it should be possible to convert to exactly 60fps. But that will probably introduce even more blur and IMO, if 59.94fps works fine, it is preferable to use that rate.
If the clip demo can be played with your hardware, I'll add an option to convert to 29.97/59.94 fps in BD3D2MK3D. (There is a lot of things to change, but that should not be too difficult.) If it cannot support it, I will do a conversion to exactly 60fps for you to try.
I wonder if your hardware (and, in general, the DLP projectors) can support Half SBS and Half T&B as well as Frame Sequential. If I understand correctly how they work, they do NOT convert the input video stream to 3D. It's the software player that is supposed to do that, and send a frame sequential stream to the projector anyway, like a BD player (but at a different frame rate). Right? In that case, there is no reason to limit the conversion of the frame rate to the Frame Sequential 3D mode only, and I may need to implement the same option for SBS and T&B as well. I would like to know the answer to that question before beginning to modify the BD3D2MK3D code...
Polar
29th July 2015, 09:56
YES YES YES :)
Works like a charm! I can not judge on blur since I have no original to compare it with. But let's take it from there...
You ask if this type of projector supports any other 3D mode then FS. I don't think so. I base my conclusion on what I found earlier:
"Due to 3D ready DLP projector can only receive 120Hz frame sequential format video to achieve 3D effect, so 2D and 3D format (SBS-H/TAB/FP) video can't be view in 3D ready DLP projector at 3D mode. Thank goodness, this 3D ready DPL media processor will help you to make it. It is the first converter to support 120Hz 3D ready projector HD video."
However, I'm not sure if SBS is at 120Hz - 2x60fps. I have not found any referrence on the internet if this can be done. Worth a shot, even if it is a long shot. This as a reply to you last question.
How about SBS.mkv or sbs.mp4 files. Can those be converted to FS.mkv/mp4 ? Or does this only works from the original ISO? I have a few of those SBS you know...
r0lZ
29th July 2015, 10:36
You should easily see the blurred frames if you play the video on your PC frame by frame with a software player. When an object or the camera moves, you should see two blurred images instead of a single one in perfect focus in some frames (but not all). I suppose that the problem is not very visible when playing the video normally, because the blur should affect only moving parts of the image.
SBS and T&B files have usually (almost always) the same frame rate than the BD3D: 23.976fps. (As I have explained above, you can also find SBS/T&B movies at 25fps, but it's only a trick to grab the audio from a PAL DVD instead of from the original BD. There are also a few exceptions, like Big Bug Bunny, because it has not been released on BD, and is computed directly from the CGI database at any frame rate the user wants.)
In a BD3D, there are two video streams at 23.976fps, one for each view. SBS and T&B place the two views in the same frame (side by side or stacked vertically) and therefore the frame rate doesn't need to be doubled. It stays always at 23.976. In Frame Sequential, that two streams are interleaved together to form a single video stream at twice the frame rate. (There are now new BDs with doubled frame rate, that are made to avoid even more the flickering effect of the relatively low movie frame rate (24fps), but it's another story, not directly related to 3D.)
I know that your projector cannot play 3D at another frame rate than 60 fps (or, as we know now, 60/0.001 fps). But I suppose that the projector receives its video stream from an external hardware, such as from the graphic card of a PC via HDMI (for 3D games) or via streaming by a software player. The question is therefore: is it possible to use the software player to do the actual conversion of the SBS or T&B to full-frames (720p or 1080p) at 60 fps, and stream that frames as Frame Sequential 3D to the projector? If it's the case, you can probably encode in SBS 30fps as well as Frame Sequential 60p. Normally, the quality of Half-SBS is somewhat lower than FS, because the frames are divided by 2, but that takes less disc space and the encoding is faster. It's why I would like to know if BD3D2MK3D should support the 60fps conversion for SBS and T&B as well.
Unfortunately, you will not be able to play the standard SBS or T&B files (at 23.976fps) with your projector without re-encoding. But it should be possible to re-encode easily the SBS or T&B file to FS 60p, with a simple avisynth script and x264. Then, you will have to remux the resulting h264 video stream and the original audio, subtitles and chapters with MkvMerge (or a MP4 muxer). That's not really difficult, if you have the right software. I'll try to write the script and a mini guide for you later...
r0lZ
29th July 2015, 13:17
OK, I wrote the script and tried it. It seems to work, but again, since I have no way to play Frame Sequential 3D here, I can't be sure. Anyway, here is the promised mini guide.
You will need:
The avisynth script: Convert_to_FS_60fps.avs (http://download.videohelp.com/r0lZ/BD3D2AVS/Convert_to_FS_60fps.avs)
a GUI for x264. I use the Simple X264 Launcher (http://forum.doom9.org/showthread.php?t=144140), but any good GUI should be OK.
Mkvtoolnix (https://www.bunkus.org/videotools/mkvtoolnix/downloads.html#windows), or, if you prefer to mux to MP4, a good MP4 muxer.
Avisynth 2.58 (http://avisynth.nl/index.php/Main_Page#Official_builds) (or compatible), but you should already have it if you use BD3D2MK3D.
The ffms2 avisynth plugin (https://github.com/FFMS/ffms2/releases). Copy the files from the x86 directory of the distribution archive to the avisynth plugins directory (usually "C:\Program Files (x86)\AviSynth 2.5\plugins").
Usage:
Create a new directory and copy the original 3D SBS or T&B file in that directory. Copy also the AVS script, and rename it if you wish. (It is easier to rename it to the movie name.)
Edit the script to suit your needs. It has been heavily documented and you should understand what should be modified. Normally, if the original file is a standard 16:9 non-cropped MKV in Half or Full 3D-SBS with left view first, you should only need to modify the input file name. For a T&B file, you have to comment out two lines and un-comment the two other lines. If the MKV is not standard, you may have to modify other things. Read the comments.
Load the modified AVS script in the Simple X264 Launcher, and select the encoding parameters you prefer. I suggest CRF (between 18 and 23), preset medium, slow or slower, tuning <none>, profile high.
Important: Add the following parameters in the "Custom encoder parameters" field:
If you encode in full 1080p resolution, you must use at least the h264 level 4.2. You should include this:
--frame-packing 5 --level 4.2 --vbv-bufsize 62500 --vbv-maxrate 50000
Note that 108op at level 4.2 or 5+ is incompatible with many DLP projectors, and require a fast connexion. If your hardware refuse or has trouble playing Frame Sequential 1080p, you need to encode in 720p, less demanding. (The avisynth script encodes at 720p by default.)
In 720p, levels 4.0 or 4.1 are sufficient. Your hardware may require level 4.0, but if it supports level 4.1, you should use it to obtain a smaller file size or better quality.
For 720p at level 4.1, use:
--frame-packing 5 --level 4.1 --vbv-bufsize 78125 --vbv-maxrate 62500
For 720p at level 4.0 (the most compatible option), use:
--frame-packing 5 --level 4.0 --vbv-bufsize 31250 --vbv-maxrate 25000"
The frame-packing argument specifies that the file is encoded in Frame Sequential format.
The other arguments (including the two vbv parameters) are necessary to ensure that maximum level 4.0, 4.1 or 4.2 will be used by the encoder.
You can also let the encoder decide which level to use by omitting the --level and the two --vbv-* arguments, but you may end up with a file not supported by your hardware. Anyway, the frame-packing argument is mandatory.
When the encoding is finished, open the original MKV file in the MkvToolnix GUI (or in the obsolete MkvMerge GUI "mmg.exe" if you prefer). Untick the video stream. (You can also untick other streams if you don't need them.) Then, drop the newly encoded .264 file over the window and select "Add as new input files" in the dialog. You should see the new video stream in the bottom of the list of streams. Move it to the top. If you wish, give it a label (track name) in the Properties frame (or in the General Track Options tab of mmg.exe). In the Timecodes frame (or Format Specific Options tab), be sure to specify the "default duration" 60000/1001p. The Aspect ratio should be set to 16:9, and the Stereoscopy mode to "both eyes laced in one block (left first) (13)". Type a relevant output file name and change the extension from .mk3d to .mkv (and change the output directory if you wish) and mux the file.
Test and enjoy!
Note that the relatively recent versions of MkvMerge have changed the way the muxing is done by default, and many hardware players have trouble to seek or start the playback of the file. They may even crash completely. It is therefore recommended to add permanent options in the MkvToolnix (or MkvMerge) GUI to avoid that problems. I suggest to add this:
--disable-track-statistics-tags --engage no_cue_duration --engage no_cue_relative_position
in the "Default additional command line options" field of the "Merging" tab of the MkvToolnix GUI Preferences window (or with Muxing -> Add Command Line Options in mmg.exe. In mmg.exe, tick also the "save as default for new jobs" option so you need to do it only once.)
Polar
29th July 2015, 16:01
I posted the question on the Plex forum : https://forums.plex.tv/discussion/173325/3d-on-pms-guidelines
But from what I know, Plex is serving the files as-is. The only transcoding that is happening is with regard to the requested bandwidth, compatible 2D video and audio output, depending on the client that is requesting the streaming.
I know by fact that when I play a 3D movie, I have to change the playback mode from transcode to DirectPlay, otherwise it won't work.
I will try to convert a SBS file to FS, see if I can pull this off ;).
r0lZ
29th July 2015, 16:14
OK. But the Plex forum doesn't seem very active. As I can see, you are engaged in a monologue with yourself. ;)
Anyway, I will add the conversion to 30/60 fps globally. It will be available for SBS and T&B also, even if it's not necessary. Nobody is forced to tick that option.
Good luck for your conversion. I have tested it here by encoding first the demo clip to SBS and then converting it to FS 60fps, and it worked fine (but again I can't test it really). It should work for you, but try with a short clip first.
r0lZ
30th July 2015, 11:04
I have modified point 4 of the mini guide above (http://forum.doom9.org/showpost.php?p=1732056&postcount=468) because I forgot to specify that level 4.2 is mandatory if the resize to 720p is removed from the avisynth script. For Frame Sequential 720p, levels 4.0 or 4.1 are sufficient.
I am currently testing BD3D2MK3D v0.69 beta 2, that has the new 30/60 fps option. If everything works fine, I will probably release it soon...
r0lZ
30th July 2015, 12:41
OK, here is v0.69 final. It is now possible to encode in Frame Sequential stereoscopic mode at 59.94 fps, or in SBS or T&B at 30.97 fps. That should be sufficient for all 3D-Ready DLP projectors.
To encode for a DLP projector, you should select, in the last tab, the "Frame Sequential" stereoscopy mode, tick the "at 30/60 fps" option and the "Resize video to 720p" option. (It is possible that some projectors support the h264 level 4.2 or greater and can therefore play frame-sequential streams at 60fps in full 1080p resolution, but you need a recent and powerful projector and a fast connection.)
The other parameters are up to you.
Of course, let me know if there are bugs in the new code. I have tested it carefully, but it's not impossible. Especially with the subtitles in Frame Sequential mode.
This version has also two little enhancements and the MkvPropEdit bug of the missing magic file has been fixed.
# v0.69 (July 30, 2015)
# - Added the Frame Sequential 3D packing format (in addition to SBS and T&B).
# - Added the possibility to convert the frame rate to 29.97 (or 59.94 in Frame Sequential).
# - The program is not "not responding" any more when converting audio to AC3 or AAC.
# - There is now a larger choice of bitrates when converting audio to AC3.
# - Bug Tools -> Add Current Cover Art to MKV File: toolset\data\magic.mgc was missing.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
Enjoy!
Polar
30th July 2015, 13:30
Thanks, I will give the new version a try on a 16Gb 3D iso.
Yesterday I tried my luck on the conversion of the LG 3D SBS Demo. There were a few caveats, not really your problem, but I just mention it for others in case they run into the same issues.
When running Simple x264/x265 Launcher, I got an error. Something about FFMpegSource2 not found, or does not know FFMpegSource2 ...
After doing some research I found that the avisynth plugin folder on my PC was missing a few important files. So downloaded and copied :
-- ffms2.dll
-- ffms2.lib
-- ffmsindex.exe
-- FFMS2.avsi
into the AviSynth plugins folder under "Program Files (x86)" (Windows 7).
The final product you end up with has an .mk3d extention. Google learned me that you can just rename it to .mkv (in case your player does not support .mk3d).
The file has video and audio playback on my PC. But when playing it from the media server over a Roku 3 client, the sound was corrupted. Video playback was in 3D however. I tested the new created file again on my PC with VLC. Audio OK. I then opened the file in Xmedia Recode. Used settings "copy" for video, but converted audio to mp3. New audio test on the media server: OK.
My server supports AC3, AAC, DTS and DD (not sure about DD+). Is there a way to control the audio output from within BD3D2MK3D ?
r0lZ
30th July 2015, 13:52
Hum, I think that ffmpeg is installed automatically with avisynth, but I'm not absolutely sure. Someone can confirm?
MkvMerge forces the mk3d extension by default as soon as you select a stereoscopy mode for the video stream (or if you load a MKV file that has already a stereoscopy mode enabled). MK3D is the official extension for MKV 3D, but many players do not "know" it. You can change it to .mkv in the GUI, or rename the extension of the file later. (I will modify the guide too.)
Not sure what's going wrong with the sound. Perhaps it's a bug in your Roku 3 client, or the audio was already damaged in the original 3D file.
There are 2 options in tab 2 of BD3D2MK3D to change the format of the audio streams. The first option allows you to keep only the 5.1 core of the HD audio tracks (without re-encoding). It is highly recommended to leave that option ticked. The second option allows you to convert the DTS tracks to AC3 or all audio track to AAC, for compatibility reasons with the players that do not support well the DTS, HD or lossless tracks, and/or to require less disc space. (Other formats such as MP3 are not supported because they are not made to hold 5.1 audio, or are too bad.)
You can also use Tools -> Convert Audio or MKV file to AC3 or AAC to do just that manually. (If you convert a MKV file, all audio tracks present in the file will be converted.) You will have to remux the final MKV file manually with MkvMerge.
sneaker_ger
30th July 2015, 14:16
ffms2 is not part of the official AviSynth installer (and never was)
r0lZ
30th July 2015, 14:58
Thanks. I have updated the guide.
Polar
30th July 2015, 20:20
Here is some feedback. Have tested 2 things:
SBS to FS works fine. One small update maybe for the mini guide: When dragging the second file over the GUI, you get a pop up with multiple options. I just opted for the first one, hoping it was the correct one ;).
The problem with the audio: I tested the original file SBS on the media server. No sound. Used Xmedia Recode to recode the original audio to AAC. Then used the mini guide on the AAC file. Problem solved, so it must be something on my server or clients that had a problem with the used audio format.
Second, I used BD3d3MK3D to convert an 3D ISO to MKV. I got an error. Maybe you can tell me what is wrong?
The error:
Encoding started 30.07.2015 20:16:01,81
C:\SimpleX\IMAX Space Station 3D\00009>"C:\Users\xxx\Downloads\3D convertion s
oftware\BD3D2MK3D\toolset\avs2yuv.exe" "_ENCODE_3D_MOVIE.avs" -frames 169740 -
o - | "C:\Users\xxx\Downloads\3D convertion software\BD3D2MK3D\toolset\x26
4_x64.exe" --crf 23 --preset medium --frame-packing 5 --qpfile chapters_3D.q
pfile --frames 169740 --fps 60000/1001 --output "00009.264" --demuxer y4m --st
din y4m -
Avisynth error:
DGMVCSource: cannot open the source file or Intel Media SDK init failed
(_ENCODE_3D_MOVIE.avs, line 39)
x264 [error]: could not open input file `-'
Encoding finished 30.07.2015 20:16:05,52
C:\SimpleX\IMAX Space Station 3D\00009>"C:\Users\xxx\Downloads\3D convertion s
oftware\BD3D2MK3D\toolset\mkvmerge.exe" @_MUX_3D_OPTIONS.txt | "C:\Users\xxx
\Downloads\3D convertion software\BD3D2MK3D\toolset\tee.exe" "00009.mkvmerge.log
"
mkvmerge v8.2.0 ('World of Adventure') 32bit
Error: The file '00009.264' has unknown type. Please have a look at the supporte
d file types ('mkvmerge --list-types') and contact the author Moritz Bunkus <mor
itz@bunkus.org> if your file type is supported but not recognized properly.
Press any key to continue . . .
The AVS script:
# Avisynth script generated Thu Jul 30 20:16:01 CEST 2015 by BD3D2MK3D v0.69
# to convert "H:\BDMV\PLAYLIST\00009.mpls"
# (referencing the M2TS/SSIF files 00009)
# to 3D Frame Sequential.
# Movie title: IMAX Space Station 3D
#
# Source MPLS information:
# MPLS file: 00009.mpls
# Video : Und AVC, 1080p, 23.976 fps, left-eye
# Video : Und MVC, 1080p, 23.976 fps, right-eye (15 3D-Planes)
# Audio : Eng DTS-HD-Master, Multi-channel, 48 Khz
# Audio : Fra AC3, Multi-channel, 48 Khz
# Audio : Deu AC3, Multi-channel, 48 Khz
# Audio : Kor AC3, Stereo, 48 Khz
# Audio : Por AC3, Multi-channel, 48 Khz
# Audio : Jpn AC3, Multi-channel, 48 Khz
# Subtitle: Eng PGS, 3D-plane: undefined
# Subtitle: Fra PGS, 3D-plane: undefined
# Subtitle: Deu PGS, 3D-plane: undefined
# Subtitle: Ita PGS, 3D-plane: undefined
# Subtitle: Nld PGS, 3D-plane: undefined
# Subtitle: Kor PGS, 3D-plane: undefined
# Subtitle: Spa PGS, 3D-plane: undefined
# Subtitle: Por PGS, 3D-plane: undefined
# Subtitle: Ara PGS, 3D-plane: undefined
# Subtitle: Zho PGS, 3D-plane: undefined
# Subtitle: Dan PGS, 3D-plane: undefined
# Subtitle: Zho PGS, 3D-plane: undefined
# Subtitle: Rus PGS, 3D-plane: undefined
# Subtitle: Tha PGS, 3D-plane: undefined
LoadPlugin("C:\Users\xxx\Downloads\3D convertion software\BD3D2MK3D\toolset\DGMVCDecode.dll")
#LoadPlugin("C:\Users\xxx\Downloads\3D convertion software\BD3D2MK3D\toolset\FRIMSource.dll")
##LoadPlugin("C:\Users\xxx\Downloads\3D convertion software\BD3D2MK3D\toolset\VSFilter.dll")
#LoadPlugin("C:\Users\xxx\Downloads\3D convertion software\BD3D2MK3D\toolset\SupTitle.dll")
# Load the two video streams (67896 frames per stream)
interleaved = DGMVCSource("00009.track_4113.264", "00009.track_4114.mvc", view = 0, frames = 67896, hw = 0)
#interleaved = FRIMSource("mvc", "00009.track_4113.264", "00009.track_4114.mvc", num_frames = 67896, cache = 2, platform = "")
# Current base view: left eye.
# The views are in the common order: AVC stream = left view, MVC stream = right view.
left = SelectEven(interleaved)
right = SelectOdd(interleaved)
# Hardcode subtitles
##left = VobSub(left, "subtitle_to_hardcode_left.sub")
##right = VobSub(right, "subtitle_to_hardcode_right.sub")
#left = SupTitle(left, "subtitle_to_hardcode_left.sup")
#right = SupTitle(right, "subtitle_to_hardcode_right.sup")
# Convert frame rate of each view to 29.97 fps
left = ConvertFPS(left, "ntsc_video")
right = ConvertFPS(right, "ntsc_video")
# Build Frame Sequential stream
Interleave(left, right)
AssumeFPS("ntsc_double")
# Resize to 720p
BicubicResize(1280, 720)
# Return the 3D clip.
Return(last)#.Info()
r0lZ
30th July 2015, 20:43
I've updated the mini guide. Indeed, with mkvtoolnix GUI, you have to specify "Add as new input file". (That was automatic with the old MkvMerge GUI.)
The error you got is caused by the Intel library that decodes the AVC and MVC video streams of the 3DBD. Try to switch to software mode with the BD3D2MK3D menu "Settings -> MVC decoder -> Hardware acceleration -> Disabled". In software mode, the program will use the intel lib distributed with BD3D2MK3D, and it should work. In hardware mode, you must have the Intel graphic chipset, and the latest version of the Intel drivers must have been properly installed. Unfortunately, I can't help more, as I'm not the author of the Intel libs, and the hardware drivers are somewhat unstable. You have to experiment.
You can also try to change the decoder and use FRIMSource instead of DGMVCSource, but I don't think that will help.
Airmiles
31st July 2015, 08:45
Dear all,
I have only just joined this forum, so please forgive me if I may sound like a complete newby. If for any reason my post does not belong here, please don't hesitate to let me know.
I have been trying to get BD3d2MK3d to work for me, but sofar without success. I am running under windows 7 with avisynth 2.5 installed. When hitting the button "do it", I get the following error:
invalid character "'"
in expression "round (228'711'510'016 / 1024.0 /..."
invalid character "'"
in expression "round (228'711'510'016 / 1024.0 /..."
(parsing expression "round (228'711'510'016...")
invoked from within
"expr round ($discspace1 / 1024.0 / 1024.0 / 1024.0 * 100.0) / 100.0"
(procedure "GenerateAvs" line 708)
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)
I was hoping you could help me r0lZ. Any help would be much appreciated and reciprocated with endless gratitude and kind remembrance.
r0lZ
31st July 2015, 09:24
Welcome to the Doom9 forum, Airmiles.
No problem, you have posted in the right thread.
The error is caused by a strange syntax of the integer numbers reported by Windows.
BD3D2MK3D uses the DOS command "dir" to evaluate the free disc space remaining on the target drive.
In English, the number of bytes returned by the command has comas to separate the digits, and in French dots.
I don't know what language "speaks" your Window, but I have never seen apostrophes in integer numbers!
BD3D2MK3D removes the comas and dots from the number to obtain a string that it can interpret as an integer, but it doesn't remove the apostrophes.
Hence the bug.
I have already fixed it, and I will release a new version soon.
In the meantime, you can apply this workaround, if you wish to use BD3D2MK3D immediately:
Open the console with "File -> Show Console", then copy and paste this code (in one single block) in the console and press Enter:
proc GetFreeDiscSpace {} {
set tmp [file normalize [GetOutputFolder]]
if {[string range $tmp 0 1] == "//"} {
set src [string range $tmp 0 [string first "/" $tmp 2]]
} else {
set src [string range $tmp 0 2]
}
return [string map {"," "" "." "" "'" ""} [lindex [string trim [lindex [split [string trim [exec -- cmd /c dir [string map {/ \\} $src]]] \n] end]] 2]]
}
After that, you should be able to use BD3D2MK3D normally.
You will have to paste the same code each time you launch BD3D2MK3D, or re-install Windows in English. ;)
Thanks for the bug report!
Airmiles
31st July 2015, 10:41
*** tsMuxeR.exe demux error: child killed: segmentation violation
Wow, that was quick. How can anybody ever break forum rule 12 this way
Yes, the windows version is in German. I thought it was multilingual, but it turned out not to be. I will download an ISO in english and use my german windows key. that should solve that problem.
Anyway, with your fix, the program indeed started running, but unfortunately now it gives me the following error:
*** Welcome to BD3D2MK3D v0.69
() 1 % proc GetFreeDiscSpace {} {
> set tmp [file normalize [GetOutputFolder]]
> if {[string range $tmp 0 1] == "//"} {
> set src [string range $tmp 0 [string first "/" $tmp 2]]
> } else {
> set src [string range $tmp 0 2]
> }
> return [string map {"," "" "." "" "'" ""} [lindex [string trim [lindex [split [string trim [exec -- cmd /c dir [string map {/ \\} $src]]] \n] end]] 2]]
> }
***************************************
*** Opening BD disc E:\...
*** Filtering 25 MPLS files...
*** 5 3D MPLS files loaded.
*** BD disc E:\ opened successfully. 5 3D playlists loaded.
*******************************************************************************
Main job started Fri Jul 31 11:27:31 CEST 2015.
Saving file "01051.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
*** tsMuxeR.exe demux error: child killed: segmentation violation
Command was:
> tsMuxeR.exe "01051.demux.meta" "C:/Users/ParallelsVM/Desktop/Legend of the Guardians; The Owls of Ga'Hoole 3D/01051"
(BD3D2MK3D) 2 %
r0lZ
31st July 2015, 11:43
Oh, well, that's really strange. I did The Owls of Ga'Hoole without problem.
Are you sure that the copy on your HDD has been properly decrypted? Also, normally, you should use an ISO of the whole BD. Copying the files on HDD doesn't make sense for a 3DBD, because you'll have to copy the 3D video content twice (as M2TS and as SSIF files). Therefore, I suspect that there are missing or improperly decrypted files in your copy.
Try again with an ISO. (They can be mounted without special software in Win 8 or 10, but you need an ISO mounter program under Win 7 or XP.) You can also process the BD directly if it is decrypted on the fly with AnyDVD HD (not free).
And IMO forum rule 12 has not been violated. :)
Airmiles
31st July 2015, 12:00
It was running from the fly off of an external blu ray burner/reader. I did not have anydvd installed, though, so i will get the trial version and see if it works that way.
Normally, i use commercial software for movie ripping on my mac, but 3d ripping is normally flawed, which is why i am resorting to BD3D2MK3D.
I will get back to you when i have tried anydvd and if that doesn't work an ISO I will make with pavtube on my mac.
Thanks sofar:thanks:
Airmiles
31st July 2015, 12:51
Oh happy day!
It seems to be running adequately now with anydvd running in the background. let's see whether it stays running like this until the end.
By the way, I installed an english version of windows 7, but i still got an error message, so I had to use the workaround you posted earlier. If you are interested I can give you the error message later once my first encode is done.
Thank you so much for the help sofar. I really got fed up with having to download poor quality rips from torrents, when I own the discs myself. If this really turns out to be churning out H-SBS MKVs I can play on my appleTV (I use subler to save it into an Apple TV accepted mp4 file) I will finally be in complete controll of my own movie library.
r0lZ
31st July 2015, 13:12
I suppose that the apostrophe in integers is caused by the locale you have selected to display numbers, currency and so on. It's not necessarily the primary language of Windows. For example, I use a Windows in English, but with the locale set to Belgium, and it uses the coma as the decimal separator. Anyway, apostrophes in numbers are really bizarre. Is it the normal way to display German numbers? Anyway, that bug will be fixed with the next release. I just don't want to release it immediately, because the last update has been released yesterday, so please be patient. In the meantime, yes I am interested in the error message. If it is different than the "'", I need to know it. Thanks in advance.
AnyDVD is probably the key, and you should have no problem any more. BD3D2MK3D and tsMuxeR accept only unprotected BDs, and therefore you have to rip it to ISO first, or decrypt it on the fly. And tsMuxeR should issue a warning instead of crashing. It is a pity that AnyDVD is not free, as it's a good solution. :(
If your TV can't play the MKV files, it should be possible to mux easily to MP4. That's not possible directly with BD3D2MK3D, but you can untick its option to mux to MKV and mux the resulting elementary streams yourself. Anyway, try the MKV first, and please let me know if it is accepted by your TV.
And thanks for the thanks!
[EDIT] Just added a dialog explaining that you may have to use a decrypted ISO or AnyDVD when that error occurs.
Polar
31st July 2015, 13:20
r0lZ, reporting back from duty :). I switched to software mode with the BD3D2MK3D menu "Settings -> MVC decoder -> Hardware acceleration -> Disabled". This did the trick, and no further error occured.
I have a ATI Radeon Dual installed in my Win7 machine. So what you are telling me is that if it is not Intel, hardware acceleration won't work, right? If that is the case, maybe worth while to put that in a comment somewhere?
One thing that is bugging me. When watching the 3D_FS_59.94fps version now I often see that the picture "shakes" every 2-3 seconds. Not alway, but very often. Could that have something to do with the fact that it is not full 60fps but only 59.94?
r0lZ
31st July 2015, 13:44
Well, normally the Intel lib is smart enough to switch to sw mode when the right hardware is not present or the drivers not installed. The option to turn off the hardware acceleration is present only when for any reason the driver doesn't work or the library crashes in hw mode. But normally, it should not be necessary to disable the hw acceleration manually.
The chipset necessary for the hw acceleration is not related to your (additional) graphic card (ATI or nVidia). It is in the main CPU, and many PCs are sold with Intel CPUs. However, only certain recent models support the hw acceleration. I don't have a compatible CPU myself and therefore I don't know exactly how the Intel library uses the hardware, but I suppose that you have it, perhaps with a bad driver, as otherwise the lib should have switched automatically to sw mode. Try to update all Intel drivers you have in your PC, and perhaps the encoding will be faster, with full MVC decoding hw acceleration.
For the 60fps problem, have you tried to play the two ads posted by tal.aloni in his thread? If they have the same problem and Big Bug Bunny (at 60fps) works fine, then that will confirm that 59.94 is not the right frame rate.
You can also try to convert a movie at exactly 60fps. You should change the --fps argument in _ENCODE.cmd and the "default-duration" in the _MUX_3D_OPTIONS,txt file (where you should replace "0:24000/1001p" with "0:60p"). You will have to re-encode the movie. Let me know if that work fine. I have preferred to use 59.94 fps because that introduce less artefacts than 60, but it is easy to replace it with 60 if it's necessary.
Airmiles
31st July 2015, 18:30
Thanks so much again. I got a working sbs file.
MKV doesn't play on apple-tv. I use subtler or flicks to turn it into an mp4 or m4v (which is basically the same) file.
You have helped me a lot. I will also have you know that i am running everything under parallels VM on my iMac, so your program seems to be fully parallels compatible.
I will look in every now and than for that update that would abolish the need for that workaround. In the meantime I am a happy camper.
Cheers!
r0lZ
31st July 2015, 18:51
Thanks for the confirmation.
Just to be sure, is it possible to convert the MKV to MP4/M4V directly, without demuxing it first, with subtler or flicks?
It is good to know that BD3D2MK3D can run under a VM with Win7. Thanks for the info.
I will try to release the bugfix soon. Stay tuned...
Airmiles
1st August 2015, 09:39
I don't think either iFlicks or subtler demux the video streams (I could be wrong though). I just use those programs on my mac to tag and add subtitles to movies I ripped with makeMKV and convert everything into an m4v/mp4 container file which appleTV knows how to handle. It doesn't take long (1.5 minutes approximately). Same for 3D SBS movies, so I presume no demuxing is taking place. If they are demuxing, the programs take care of it themselves. I don't see any changes in the final video quality of the MP4/M4V.
Where do you post updates?
r0lZ
1st August 2015, 12:20
If iFlicks or subtler are able to take a MKV as input and output a MP4, it needs to demux the MKV anyway, but it does that probably on the fly, without writing the elementary streams on disc. It's good to know if I have to explain how to use the MKV files produced by BD3D2MK3D with an AppleTV, without having to demux everything. Thanks.
The updates are announced in this thread. (You can also see the number of the latest version in the title of the thread.)
You can also use the BD3DMK3D menu "Help -> Check for update" to verify if an update is available.
The same link is always used for the latest version of BD3D2MK3D: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z). That link is present in the first post of this thread, and I repeat it in all posts announcing updates.
Only the (rare) beta versions are not available via the same link. If you want them, you have to visit this thread regularly.
I did a new little bug fix and I have implemented a workaround for problems in some (rare) subtitle files, and I will probably release v0.70 tomorrow...
Airmiles
1st August 2015, 14:40
Thanks. i will check in every now and then.
Know that iFlicks is not a free app. You can also extract subtitles from the MKV using subtitle extractor, which is neither free. they can both be found in the mac app store. Subler is free however. By the way. An AppleTV doesn't handle 3D subtitles. It will convert them back to plain .srt subs. Just so you know if people ask.
I am hoping there will be 3D support by Apple once the now long awaited new AppleTV will arrive (supposedly this fall), but I fear that won't be the case. iTunes hasn't sold 3D movies sofar and 3D is already fizzling out with TV manufacturers. A shame, because it really adds value if done right and watched on a big screen. The fact that iMAX releases will be continuing in 3D makes me hopeful though, there will always remain a niche market for 3D lovers like me with a decent projector. As long as there are physical discs around that is....
Now back to my Monster House rip, which is running fine on BD3DMK3D :)
Thanks again.
Airmiles
3rd August 2015, 11:45
Everything still going swell here. Jurassic Park 3D now running smoothly :D
Just checking in to let you know that under parallels you get an error if the external blu ray reader is open under both windows 7 and mac OS. You have to dedicate the player to windows and the error disappears. This means shutting the player down and turning it on again and then choose windows 7 when it starts up again.
Furthermore, I got an audio error on the HD DTS tracks on the Lion King 3D disc. Was able to circumvent that though, by excluding audio from the demuxing and encode and then ripping the audio separately and adding it to the SBS again with MakeMKV, iMKVextract and Subler.
If this is all too much information, let me know. i won't bother you anymore.
Cheers!
r0lZ
3rd August 2015, 11:58
No, it's interesting. I don't have a mac to text, so any info from a mac user is welcome.
I wonder why the DTS track of the Lion King triggers an error. Is it standard 5.1 DTS, or DTS HD, or Master Audio? Have you had that problem with other DTS tracks (from other 3DBDs)? From what I understand, it's the demux process that triggers the error, right? Or is it later, during the conversion to AC3 or AAC (if you have ticked that option in tab 2)? And have you ticked the option to extract only the 5.1 core in tab 2? I can't understand why the demux of the video tracks works fine but not the audio. It's strange. Anyway, that must be a VM issue, because nobody has reported similar errors under Windows.
Airmiles
3rd August 2015, 12:24
I just got the same error again on the jurassic park disc. It says:
Job finished Mon Aug 03 13:21:24 CEST 2015
Done with errors!
* Can't convert 00800.track_4352.Eng.dtshdma to AC3. Using original file.
Can't downmix this channel configuration ($60f).
Internal error - unknown audio output format!
Airmiles
3rd August 2015, 12:40
Both options are ticketed. Use 5.1 and convert to AC3 (Apple TV doesn't handle DTS, only AC3 stereo or 5.1 passthrough). I will try it once more and see when the error is displayed. But I have a suspicion it happens when I select more than one audio stream. I have not had any problems with Open Season, Monster House and other discs and they were all DTS HD Master Audio. But some discs I choose multiple languages (if French and Spanish are options), on discs without those languages, I just pick english. i will try now with just english.
Or, it might be that Lion King and Jurassic park have 7.1 audio and other discs don't???
Update: I just Checked. All discs that worked had 5.1, the two discs that haven't worked sofa are in 7.1
r0lZ
3rd August 2015, 13:23
I see. It's strange, as BD3D2MK3D can handle the DTS HD and MA tracks without problem.
Note that the core is extracted from the track during the demux process if the convert to AC3 or AAC option is not enabled, but it is not extracted if it is ticked (to keep the best audio quality possible before the conversion). When it is not extracted, the extension is not simply .dts, but .dtshd or .dtshdma. Maybe there is something wrong under your VM that prevents tsMuxeR to recognise these extensions, but I don't understand why. It would be interesting to check if it works without the convert to AC3 option.
BTW, can you post the XXXXX.demux.meta file here the next time you encounter the problem?
Airmiles
3rd August 2015, 13:37
Yeah, yeah, blame it on the old VM again :D:D:D:D:D:D
OK, its running now without the conversion box ticked. I will have to rip the master audio in english later, but that is not a big hassle.
Where can I find the meta file if I encounter the problem again?
sneaker_ger
3rd August 2015, 13:39
When you google "Can't downmix this channel configuration ($60f)" it points to an eac3to error. So cutting out a sample and posting it in the eac3to thread or madshi's bug tracker would seem like a good idea.
r0lZ
3rd August 2015, 13:58
The demux.meta file is in the project dir. (It's one of the first file that is created, before the demux process.) But it seems that the error doesn't happen when demuxing the track, but when it is converted to AC3 with eac3to. So, yes, it might be an eac3to bug, as sneaker_ger suggests. A sample would be nice. If you have a Pixar movie with a short film with the audio in DTS HD MA format, perhaps you can try to convert it and if you have the same error, send the audio track to Madshi and/or me. You can also cut a part of a bigger .dtshdma file. Thanks in advance.
Anyway, I suppose there is something wrong with the VM or its config. Perhaps a codec is missing or doesn't work well. Under Windows, all DTS HD MA I have encountered so far in BD3Ds were easy to demux and convert. And I suppose that commercial BDs do not have fancy out-of-specs DTS streams.
Airmiles
3rd August 2015, 19:31
Without the conversion box ticked, there was no problem. It kept a DTS track in 5.1. iFLICKS will turn this into AC3 anyway, so that is fine as well.
It only happens when converting 7.1 Master audio. 5.1 master audio gets converted fine. I will try to get you guys a sample. It should be in the directory of the finished rip right? Just as the meta file?
It might take a few days though. it is summer and my kids are pulling me to the communal pool everyday and when we get home they start complaining I am behind the computer all the time.
r0lZ
3rd August 2015, 19:37
It is theoretically preferable to convert the DTS HD MA track to AC3, because you start from a lossless track. But I'm not sure many peoples can really perceive the difference of quality.
Yes, all files necessary for the project are saved in the same directory.
I'm not in a hurry. Here also the sun is shining and I have to work in my garden...
Airmiles
4th August 2015, 08:32
Did Lion King agin to get the same error. The DTS file is almost 4GB. How do I get that to you guys? The demux data file is only 4kb.
OK, so here is the entire console content:
*** Welcome to BD3D2MK3D v0.69
() 1 % proc GetFreeDiscSpace {} {
> set tmp [file normalize [GetOutputFolder]]
> if {[string range $tmp 0 1] == "//"} {
> set src [string range $tmp 0 [string first "/" $tmp 2]]
> } else {
> set src [string range $tmp 0 2]
> }
> return [string map {"," "" "." "" "'" ""} [lindex [string trim [lindex [split [string trim [exec -- cmd /c dir [string map {/ \\} $src]]] \n] end]] 2]]
> }
***************************************
*** Opening BD disc E:\...
*** Filtering 15 MPLS files...
*** 4 3D MPLS files loaded.
*** BD disc E:\ opened successfully. 4 3D playlists loaded.
*******************************************************************************
Main job started Tue Aug 04 08:47:28 CEST 2015.
Saving file "00800.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 DTS-HD stream (track 3): Bitrate: 1536Kbps core + MLP data.Sample Rate: 48KHz Channels: 7.1 (DTS Master Audio 24bit)
Processed 127816 video frames
Processed 127816 video frames
Flushing write buffer
Demux complete.
Demuxing time: 42 min 1 sec
-------------------------------------------------------------------------------
*** Retrieving audio delays from playlist 00800.mpls...
All audio streams have no delay.
-------------------------------------------------------------------------------
*** Checking if the ArcSoft DTS decoder is installed...
*** ArcSoft DTS Decoder doesn't seem to be installed
-------------------------------------------------------------------------------
*** Converting "00800.track_4352.Eng.dtshdma" to AC3...
Command: eac3to.exe "00800.track_4352.Eng.dtshdma" "00800.track_4352.Eng.ac3 " -640 -down6 -libav -progressnumbers -log=eac3to_convert_to_AC3.log
eac3to process 3560 started.
DTS Master Audio, 7.1 channels, 24 bits, 48kHz
(core: DTS, 5.1 channels, 1509kbps, 48kHz)
dts, 48000, 7.1
The libav DTS decoder doesn't decode the full DTS-HD information.
Can't downmix this channel configuration ($60f).
Internal error - unknown audio output format!
*** eac3to ERROR: Can't downmix this channel configuration ($60f).
Internal error - unknown audio output format!
Can't convert 00800.track_4352.Eng.dtshdma to AC3. Using original file.
-------------------------------------------------------------------------------
*** 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\toolset\avs2yuv.exe" ^
"_ENCODE_3D_MOVIE.avs" -frames 127816 -o - ^
| "C:\BD3D2MK3D\toolset\x264_x64.exe" ^
--crf 23 --preset medium ^
--frame-packing 3 --qpfile chapters_3D.qpfile --frames 127816 --fps 24000/1001 ^
--output "00800.264" --demuxer y4m --stdin y4m -
*** Saving "tags.xml"
> x264_x64.exe --version
x264 0.146.2538 121396c
(libswscale 3.1.101)
(libavformat 56.23.106)
(ffmpegsource 2.17.4.0)
built by Komisar on Mar 1 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 Tue Aug 04 09:29:39 CEST 2015
Done with errors!
* Can't convert 00800.track_4352.Eng.dtshdma to AC3. Using original file.
Can't downmix this channel configuration ($60f).
Internal error - unknown audio output format!
Launch "_ENCODE.cmd" to encode the video (and optionally mux to MKV).
r0lZ
4th August 2015, 09:05
Really strange. I could understand that libav has trouble with the input file, but the error is related to the output: "unknown audio output format!" AC3 is unknown to libav? Obviously, there is a bug somewhere in the libav decoder.
If you cannot find a shorter file with the same problem, you can probably cut the Lion King dtshdma file, and send only the beginning. There are several methods to cut a file. The easiest one might be jsoto's CutFile (http://download.videohelp.com/jsoto/others.htm). My email address is pgcedit at "you know the google email service name". (You can also find it in the Contact section of the PgcEdit home page. See my signature.)
tebasuna51
4th August 2015, 10:41
Maybe the problem is related with this
*** Converting "00800.track_4352.Eng.dtshdma" to AC3...
Command: eac3to.exe "00800.track_4352.Eng.dtshdma" "00800.track_4352.Eng.ac3 " -640 -down6 -libav -progressnumbers -log=eac3to_convert_to_AC3.log
eac3to process 3560 started.
DTS Master Audio, 7.1 channels, 24 bits, 48kHz
(core: DTS, 5.1 channels, 1509kbps, 48kHz)
dts, 48000, 7.1
The libav DTS decoder doesn't decode the full DTS-HD information.
Can't downmix this channel configuration ($60f).
Internal error - unknown audio output format!
*** eac3to ERROR: Can't downmix this channel configuration ($60f).
Internal error - unknown audio output format!
Can't convert 00800.track_4352.Eng.dtshdma to AC3. Using original file.
The libav decoder can't output 7.1, only the core 5.1.
The channel configuration $60f is the standard 5.1 (FL,FR,FC,LF,SL,SR) and can't be downmixed to 5.1, is already 5.1.
Starting with eac3to v3.29 the new dcadec (with support for DTS-HD) is included and is the recommended decoder for any DTS (only DTS Express require the ArcSoft decoder).
Never use the -libav parameter now, use always -dcadec for any DTS (except DTS Expres than need ArcSoft), with -down6 to downmix 7.1 to 5.1
Airmiles
4th August 2015, 10:42
OK, so i just sent the files.
r0lZ
4th August 2015, 11:22
@Airmiles: Got your files, and as expected I have the same error here. I haven't noticed it because I have the ArcSoft DTS decoder installed, and it is used by default (unless I convert manually with the -libav parameter).
@tebasuna51: Thanks for the explanation. I did know that libav can only output the 5.1 core, but IMO it's not a reason to crash, even when the -down6 argument is specified. If the input is already in 5.1, the -down6 option should simply be ignored.
I didn't know DTS Expres, but I see on the DTS official site that it "has been widely used by major entertainment studios for Blu-ray disc™ secondary audio, BD Live, and other similar applications." It's a problem for BD3D2MK3D, because that means that it can encounter that format in 3DBDs, and I will need to process that streams differently. Can you confirm that DTS Expres can be used ONLY as secondary audio in BD discs? As far as I know, I have never encountered that format in a 3DBD, at least as primary audio.
I remember the info about dcadec in the eac3to thread, but IIRC it was still experimental, and I did not know that it is now the "official" decoder. I will include it in the next release of BD3D2MK3D.
Thanks!
tebasuna51
4th August 2015, 13:07
I did know that libav can only output the 5.1 core, but IMO it's not a reason to crash, even when the -down6 argument is specified. If the input is already in 5.1, the -down6 option should simply be ignored.
Yep, should simply be ignored, but I can reproduce the error with DTS-MA 7.1 -libav -down6.
With DTS 5.1 or 6.1 the -libav -down6 work without problems.
Seems a eac3to bug.
If you still want use -libav never add the innecesary -down6
I remember the info about dcadec in the eac3to thread, but IIRC it was still experimental, and I did not know that it is now the "official" decoder. I will include it in the next release of BD3D2MK3D.
Now is eac3to default for DTS-HD 7.1 only, but is well tested (ffmpeg,
LSMASHSource.dll...) and I recommend to madshi use it for all DTS.
Can you confirm that DTS Expres can be used ONLY as secondary audio in BD discs?
Yes, is only for secondary audio like Director's commentary and others.
Is detected by eac3to, MediaInfo and MkvMerge like 'DTS Express'
Like, for now, is only decoded by ArcSoft and can't be included in BD3D2MK3D package I sugest you to remux to mkv (if selected) without recode.
Also I recommend replace the old Aften encoder (libAften.dll included in eac3to) for the best free AC3 encoder ffmpeg.
You can use eac3to to only extract any DTS and after use ffmpeg:
1) DTS-HD support with -acodec libdcadec (the same dcadec included in eac3to)
2) Downmix automatic if required, for instance this command line is valid for DTS-HD 5.1, 6.1 or 7.1
ffmpeg -acodec libdcadec -i input.dts -acodec ac3 -center_mixlev 0.707 -surround_mixlev 0.707 -ab 640k output.ac3
Or you can fix the output channels with -ac channels
Airmiles
4th August 2015, 13:32
So that's another thing for version 0,7 to correct ;)
r0lZ
4th August 2015, 14:16
OK, I have removed the code that checks if the Arcsoft DTS decoder is installed and that forced the -libav argument when it's not the case. That prevented eac3to to use the dcadec for DTS HD MA. Now, the libav decoder is never forced any more (except when using the GUI of the Convert tool, if the user selects explicitly the libav option). I have also removed -down6 when -libav is specified. Eac3to should not crash any more.
But if I understand correctly, currently, eac3to will use dcadec only for DTS HD MA. And it will continue to use the libav decoder for all other DTS formats (or the Arcsoft decoder if it is installed). Right? Should I force eac3to to use dcadec for all DTS streams (except DTS Express)? Is it possible simply by adding -dcadec?
Currently, I don't know how to recognise DTS Express. I don't use eac3to any more to analyse the BD MPLS file, because it doesn't do a good job with 3D playlists, and I don't want to use it only to recognise the DTS Express tracks. I have written my own MPLS parser, but as far as I know, only the following codec values can be present. Or at least, they are the only values I have found in the available documentation:
1 "MPEG1"
2 "MPEG2"
3 "MPEG1"
4 "MPEG2"
27 "AVC"
32 "MVC"
128 "LPCM"
129 "AC3"
130 "DTS"
131 "TrueHD"
132 "AC3+"
133 "DTS-HD"
134 "DTS-HD-Master"
144 "PGS"
145 "IGS"
146 "TextSub"
234 "VC1"
As you can see, only regular 5.1 DTS, DTS HD and HD-MA are referenced. Do you know the codec ID of DTS Express, or where I can find more doc on the MPLS format?
I don't use eac3to to extract the tracks either, because it cannot work properly with subtitle tracks in some BD3D (when the same subtitle is included in the M2TS of the base view AND in the M2TS of the dependent view, something relatively frequent). I use tsMuxeR 3D. And I don't want to modify everything just to support the ffmpeg encoding. So, currently, I continue to use LibAften. Do you think that the next version of eac3to will use automatically ffmpeg instead of Aften? That would be great! If it's not the case, I may change the code later...
Anyway, thanks for the useful info. You're the king for everything related to audio here at D9!
@Airmiles: Yes. An update should be available in a couple of days, but I have discovered another bug (not related to audio) and it is very difficult to fix...
BTW, the next version is not 0.7 but 0.70. It's already the 70th version of BD3D2MK3D! (The version number is not a floating point number.)
tomilein
4th August 2015, 15:01
Hello i have tested you're Tool and this is very great.
Final Credits are very long or short from Movie to Movie.
Can i somehow cut the final credits from any Movie by edit the .avs file?
Or may be something built later in BD3D2MK3D?
Sorry for my bad Englisch.
r0lZ
4th August 2015, 15:15
I have no intention to add an option to cut the end credits, but you can do that easily.
First, use the preview (in the first tab) to determine the length of the part of the movie you want to keep. Convert it to seconds. For example, if you want to keep 1:35:30, the number of seconds to keep is 5730. Then convert that number to frames: Multiply the number of seconds by 23.976. With my example, that gives 137382.48. Rounds that number. Edit _ENCODE.cmd and replace the numbers of the two -frames arguments with the number of frames you have just computed.. (If you encode in 2-pass, you have to edit 4 -frames arguments.) x264 will compute only that number of frames, and that should not prevent MkvMerge to mux the MKV. However, note that the audio and subtitles are not truncated. Some players may still report the full original duration.
Another way to do it is to compute the whole movie normally, then use the MkvMerge cut function to cut the file after a certain time code. IMO, it's a better method because the audio and subtitles will be cut as well, but you will have to encode the whole movie. And you need to install MkvToolnix. Let me know if you need more info on this second method.
tebasuna51
4th August 2015, 16:11
But if I understand correctly, currently, eac3to will use dcadec only for DTS HD MA. And it will continue to use the libav decoder for all other DTS formats (or the Arcsoft decoder if it is installed). Right? Should I force eac3to to use dcadec for all DTS streams (except DTS Express)? Is it possible simply by adding -dcadec?
Now eac3to use dcadec for DTS-HD 7.1 only.
Yes I recommend use always -dcadec for all DTS streams (except DTS Express)
I have written my own MPLS parser, but as far as I know, only the following codec values can be present.
...Do you know the codec ID of DTS Express, or where I can find mode doc on the MPLS format?
Seems than secondary streams don't have codes in MPLS.
Checked Snow White and the Huntsman (2012) and I don't see codes for secondary video and 2 secondary audios (one DTS Express and other AC3 2.0 eng)
r0lZ
4th August 2015, 17:08
Do you mean that the secondary streams are not referenced at all in the MPLS? It's strange, as I have already seen many director comments or similar tracks in MPLS files. But perhaps they were not considered officially as secondary tracks in that BDs? Anyway, indeed there are often audio or subtitle (or even PIP video) tracks present in the M2TS (or SSIF) but not in the MPLS. They are what I have called "phantom tracks" in earlier versions of BD3D2MK3D. They have caused serious problems (notably because the phantom subtitle tracks do not have a 3D-Plane number and I can't therefore convert them to 3D correctly), and I have therefore decided to show only the referenced tracks in the GUI. It is not possible any more to select the phantom tracks for inclusion in the MKV. Problem solved: BD3D2MK3D has probably not to worry about DTS Express. At least if it is true that a secondary stream is always absent from the MPLS, and that all streams encoded in DTS Express are secondary tracks. If you can confirm that, please let me know. In the meantime, I will simply ignore DTS Express.
I will add -dcadec for all DTS streams. Without the DTS Express problem, it's easy. ;-)
Thanks again!
thahandy
4th August 2015, 17:57
Oh, well, that's really strange. I did The Owls of Ga'Hoole without problem.
Are you sure that the copy on your HDD has been properly decrypted? Also, normally, you should use an ISO of the whole BD. Copying the files on HDD doesn't make sense for a 3DBD, because you'll have to copy the 3D video content twice (as M2TS and as SSIF files). Therefore, I suspect that there are missing or improperly decrypted files in your copy.
Try again with an ISO. (They can be mounted without special software in Win 8 or 10, but you need an ISO mounter program under Win 7 or XP.) You can also process the BD directly if it is decrypted on the fly with AnyDVD HD (not free).
And IMO forum rule 12 has not been violated. :)
Is this the reason BD3D2MK3D is encoding the wrong file? I just extracted the ISO file
00200.mpls, 0:01:36, 2 chapters, 00302.ssif
00301.mpls, 0:06:13, 2 chapters, 00301.ssif
00800.mpls, 1:41:52, 17 chapters, 00300.ssif
But its actually getting 00300.m2ts file (first 7 min of the movie) instead the 00300.ssif file
r0lZ
4th August 2015, 18:10
According to what I can see, 00800.mpls contains the main movie, since its duration is 1:51:52. Is it what you have encoded? And 00300.ssif (in BDMV\STREAM\SSIF) must contain the whole movie in 3D (AVC and MVC streams interleaved together), or 00300.m2ts (in BDMV\STREAM) must contain also the whole movie, but only in 2D (AVC stream only). If it's not the case, either there are other SSIF files in the playlist and you have not copied their names here, or your MPLS is severly damaged.
I don't know if the simple fact of extracting the files from the ISO is sufficient to truncate the movie. That should not be the case. Either the structure is damaged and tsMuxeR may crash or refuse to work, or it is correct and it should work. But anyway, it is never a good ides to extract the SSIF files from a BD3D. As I wrote, that doesn't make sense.
bigotti5
4th August 2015, 18:31
Codes for secondary audio are 0xA1 (161) for DD+ secondary audio and 0xA2 (162) for DTS Express, and yes - pure DD+ and DTS Express are allowed for secondary streams only in BD.
Afaik 3D playlists cannot contain PiP so you cant find secondary audio codes in 3D playlists. Secondary streams can exist in corresponding m2ts but they are referenced in (another) 2D playlists only.
r0lZ
4th August 2015, 18:48
Thanks. Useful info!
So, only streams for PiP are considered secondary. A director comment track, for example (as long as it is not the audio of the PiP) cannot be considered as secondary stream. Can you confirm that I have correctly understood? If it's the case, indeed I don't have to worry about DTS Express. :-)
tomilein
4th August 2015, 19:21
The Option with MkvMerge is probably better if Subtitle and Audio cut.
I try to read in the Topic with MkvMerge.
Thank you.
My englisch is bad, sorry for this :)
r0lZ
4th August 2015, 19:52
If you want to cut the video at a precise frame, you should add the frame number (followed by upper case i) in the "chapters_3D.qpfile" file before launching _ENCODE.cmd. Otherwise, you will only be able to cut at the next i-frame in the file, and the precision will only be something like 1 second or two. (By default, the chapters_3D.qpfile forces an i-frame at the beginning of each chapter, so if you want to cut at a chapter point, you don't need to edit it.)
Cutting with MkvMerge is easy. Look in the "global" options.
bigotti5
5th August 2015, 03:07
A director comment track, for example (as long as it is not the audio of the PiP) cannot be considered as secondary stream
It is possible to have secondary audio without PiP (even in 3D) but secondary audio is always mixed with primary audio at playback level (secondary audio must include mixing metadata).
00000000h: 4D 50 4C 53 30 32 30 30 00 00 00 3A 00 00 00 BE ; MPLS0200...:...¾
00000010h: 00 00 00 D2 00 00 00 00 00 00 00 00 00 00 00 00 ; ...Ò............
00000020h: 00 00 00 00 00 00 00 00 00 00 00 0E 00 01 00 00 ; ................
00000030h: 00 00 00 00 00 00 00 00 40 00 00 00 00 80 00 00 ; ........@....€..
00000040h: 00 01 00 00 00 78 30 30 30 30 32 4D 32 54 53 00 ; .....x00002M2TS.
00000050h: 01 00 00 07 FF F8 00 D5 CC 6F 00 00 00 00 00 00 ; ....ÿø.ÕÌo......
00000060h: 00 00 00 00 00 00 00 56 00 00 01 01 00 00 02 00 ; .......V........
00000070h: 00 00 00 00 00 00 09 01 10 11 00 00 00 00 00 00 ; ................
00000080h: 05 1B 61 00 00 00 09 01 11 00 00 00 00 00 00 00 ; ..a.............
00000090h: 05 86 6E 65 6E 67 09 01 1A 00 00 00 00 00 00 00 ; .†neng..........
000000a0h: 05 A1 61 65 6E 67 01 00 00 00 09 01 1A 01 00 00 ; .¡aeng..........
000000b0h: 00 00 00 00 05 A2 61 65 6E 67 01 00 00 00 00 00 ; .....¢aeng......
000000c0h: 00 10 00 01 00 01 00 00 00 07 FF F8 FF FF 00 00 ; ..........ÿøÿÿ..
000000d0h: 00 00 00 00 00 68 00 00 00 24 00 00 00 02 00 02 ; .....h...$......
000000e0h: 00 01 00 00 00 24 00 00 00 18 00 02 00 02 00 00 ; .....$..........
000000f0h: 00 3C 00 00 00 30 00 16 00 00 09 02 00 00 10 12 ; .<...0..........
00000100h: 00 00 00 00 05 20 61 00 00 00 00 20 00 00 00 00 ; ..... a.... ....
00000110h: 00 2C 00 01 00 00 00 24 00 08 00 00 00 01 00 1C ; .,.....$........
00000120h: 30 30 30 30 33 4D 32 54 53 00 00 00 02 00 00 07 ; 00003M2TS.......
00000130h: FF F8 00 D5 CC 6F 00 00 00 07 FF F8 00 00 ; ÿø.ÕÌo....ÿø..
tomilein
5th August 2015, 04:52
Ok i have test Mkvtoolnix and the Option "Global" with timecode format
00:10:00,01:20:00
and have after mux three files.
test (1)-001.mk3d (307mb),
test (1)-002.mk3d(1,74gb)
and
test (1)-003.mk3d (1,27gb)
I can cut the opening and final credits and have the "Movie" only.
Subtiles and Audio works fine with new files.
Thank you for Hint.
Airmiles
5th August 2015, 08:18
@Airmiles: Yes. An update should be available in a couple of days, but I have discovered another bug (not related to audio) and it is very difficult to fix...
BTW, the next version is not 0.7 but 0.70. It's already the 70th version of BD3D2MK3D! (The version number is not a floating point number.)[/QUOTE]
I am just happy you made this great tool. Thanks for all that work!!:thanks:
r0lZ
5th August 2015, 08:24
@bigotti5: Thanks for the info!
@others: Thanks for the thanks!
r0lZ
12th August 2015, 09:13
OK, finally v0.70 is ready.
This version fixes the strange bug with the apostrophe in numbers reported by Airmiles here (http://forum.doom9.org/showthread.php?p=1732365#post1732365) and two other bugs.
I have also had a problem with a Chinese BD3D. 3 of the subtitles are malformed in the original BD, and as a consequence, they cannot be converted correctly to 3D. If you hardcode the stream, the image is obscured by a large black rectangle during the display of these 3 subtitles. I have found a way to detect that malformed subtitles, and implemented a workaround to simply skip them. The workaround works well, but it is very slow. Therefore, I have added a new option in the Settings menu (as well as in the GUI to convert a subtitle stream to 3D) to turn it off. I recommend to leave it on anyway when you hardcode the subtitles on the video stream, as otherwise you may have to re-encode the whole movie. Note that the workaround is not applied to the 2D subtitle streams.
For the problem of the periodic slowdowns when playing a movie in frame sequential mode at 59.94 fps, I have added an option to force BD3D2MK3D to convert the frame rate to exactly 60 fps instead. Unfortunately, that frame rate seems incompatible with the current MVC decoders, probably because to encode at 60 fps, it is necessary to seek in the video, and that's something not yet supported by the available MVC decoders. As a consequence, the option to encode at exactly 30 or 60 fps is not in the GUI. However, it is possible to test it by editing the "::config(exactly30fps)" option at the end of the BD3D2MK3D.cfg file.
The dcadec DTS decoder is now always used when decoding a DTS, DTS-HD or DTS-HD-MA stream. (It is still possible to use the Libav decoder when the stream is decoded from the Convert Audio tool, but the help message about the Libav option does not recommend it.) As a consequence, the support for the commercial (and slow) ArcSoft decoder has also been removed.
x264 has also been updated to the latest version.
# v0.70 (August 12, 2015)
# - Fix: Invalid Character error under foreign Windows systems in some specific languages.
# - Workaround to skip malformed monochrome subtitles when converting them to 3D.
# - New Settings -> Verify Input Subtitles option to enable or disable the (slow) workaround.
# - New setting in Tools -> Convert Subtitles to 3D (with 3D-plane) to disable the workaround.
# - New hidden settings in BD3D2MK3D.cfg to select either 29.97 or 59.94 or exactly 30 or 60 fps.
# - Fix: Bug introduced in v0.69. The program could hang when converting audio to AC3 or AAC.
# - Fix: Little bug when trying to guess the language of a subtitle stream from its file name.
# - BD3D2MK3D forces now eac3to to use the dcadec DTS decoder (unless the "Libav" option is ticked in the GUI).
# - Removed the support for the commercial Arcsoft DTS decoder.
# - Removed the change change in v0.69 to avoid the not responding window when converting audio due to problems.
# - Updated x264 to the latest version (v0.148 build 2579)
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
Airmiles
12th August 2015, 20:03
So this also fixes the 7.1 DTS Master HD issue?
sneaker_ger
12th August 2015, 20:11
Yes, it should work now.
Airmiles
12th August 2015, 21:30
Just did a test run of The Lion King 3d, to see if there were any remaining errors. There are none. Thanks! Version 0.70 seems to be a success!
Airmiles
12th August 2015, 21:43
By the way. When 4K blu rays get here. Would it be hard to upgrade the tool to use the same GUI with an HEVC (x265) encoder?
That is, if there will be 3D 4K blu rays. I seem to remember reading that it was not sure whether there would be any, because this wasn't mentioned in the 4K BDA specs.
r0lZ
12th August 2015, 22:13
Thanks for the confirmation about v0.70.
It is already possible to encode with x265. See Settings -> AVC/HEVC Encoder.
But of course, currently I have no way to prepare BD3D2MK3D to 4K, as afaik there are no 4K BDs or specs right now.
thahandy
13th August 2015, 05:59
According to what I can see, 00800.mpls contains the main movie, since its duration is 1:51:52. Is it what you have encoded? And 00300.ssif (in BDMV\STREAM\SSIF) must contain the whole movie in 3D (AVC and MVC streams interleaved together), or 00300.m2ts (in BDMV\STREAM) must contain also the whole movie, but only in 2D (AVC stream only). If it's not the case, either there are other SSIF files in the playlist and you have not copied their names here, or your MPLS is severly damaged.
I don't know if the simple fact of extracting the files from the ISO is sufficient to truncate the movie. That should not be the case. Either the structure is damaged and tsMuxeR may crash or refuse to work, or it is correct and it should work. But anyway, it is never a good ides to extract the SSIF files from a BD3D. As I wrote, that doesn't make sense.
Hi, To get back to u.
This time i mounted the ISO and everything works fine. :)
It seems Winrar is extracting the m2ts files improperly.
It seems the m2ts are "virtual" files created from the siff files?
Size of BDMV is 91,2 GB (97.933.204.414 bytes)
Btw, any trick to merge 2 3D disks together at post processing? (Titanic 3D) or just use mkvmerge at the end?
r0lZ
13th August 2015, 06:34
It seems the m2ts are "virtual" files created from the siff files?
It's the opposite. For the compatibility with the 2D-only players, it is necessary to put the main movie in 2D in standard M2TS files. The second view is therefore in another M2TS, not readable directly with a 2D player, because it is encoded in MVC and is therefore dependent of the main 2D M2TS. The two M2TS files are interleaved at the file system level, and the SSIF file is a file level trick that references both streams at the same time, exactly as if it is a single file. It's why you copy two times exactly the same data if you copy the M2TS and the SSIF files to your hard disc. Normally, the SSIF is never created directly by the authoring program. It is created when the image of the BD is built. (BTW, I don't know if the 3D players prefer to read the two M2TS or the SSIF, but in any case a file is not necessary. The MVC M2TS is useless if the player reads the SSIF, and the SSIF is useless if it reads the two M2TS. The main M2TS is necessary to play the movie in 2D anyway.)
Btw, any trick to merge 2 3D disks together at post processing? (Titanic 3D) or just use mkvmerge at the end?
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.
Wolfy59
14th August 2015, 08:55
Hi r0lZ and thanks for the work you do here and on another topics in this forum. Unfortunatly I always have th " problème with your last release even if i modify the console. Sometimes i have an avs2yuv problème with some bd at the 2nde pass. It crash before the encoding end and mux the partial encoding.
Thanks by advance for your answers and sorry for my bad english.
r0lZ
14th August 2015, 09:17
th " problème
What is that problem?
I have never had crashes during the encoding of the second pass, and I can't help. I can only suggest to encode in CRF mode, requiring only a single pass and giving a slightly better quality. Unless you want to copy the MKV to a DVD or another medium with a small fixed size, you should never use 2-pass encoding. It's slow and totally useless.
Anyway, avs2yuv should not crash during the second pass if it has successfully processed the movie during the first pass. It is not at all related to the pass, and should work exactly the same way during the first and second pass.
Just to be sure: Are you sure you have enough disc space?
thahandy
14th August 2015, 12:25
I've noticed your ABR calculation is a bit off by 2GB if the MKV file size is set @ 15GB (~12.5Mbit). Do you include the audio and subtitle tracks as part of the calculation?
What I do now it just demux/convert and manually calculate the video bitrate afterwards @ Video Bitrate Calculator (http://www.silverjuke.net/forum/topic-213.html) (video target size = total size - audio and subs. (audio size 1MB, 4% overhead)) and edit the _ENCODE.cmd for the new bitrate. But this still leaves the old encoding values in the mediainfo property of the MKV. I can't find the file with this info. _MUX_3D_OPTIONS.txt seems not to be working.
Another (non BD3D2MK3D) issue I have with this subtitles it included on the BD (all languages,2D and 3D), they are not fixed centered and bottom (inside bounds), but placed all over the screen across the movie. I'm trying to fix this in BDSup2Sub/bdsup2sub++ and horizontal centering works just fine but there seems to
be an issue to force all to "bottom (inside bounds)" automatically. :mad:
Anything you can do?
Subtitle #181-184 for example (see link below)
http://tempsend.com/685ED5D426
Wolfy59
14th August 2015, 13:14
What is that problem?
I have never had crashes during the encoding of the second pass, and I can't help. I can only suggest to encode in CRF mode, requiring only a single pass and giving a slightly better quality. Unless you want to copy the MKV to a DVD or another medium with a small fixed size, you should never use 2-pass encoding. It's slow and totally useless.
Anyway, avs2yuv should not crash during the second pass if it has successfully processed the movie during the first pass. It is not at all related to the pass, and should work exactly the same way during the first and second pass.
Just to be sure: Are you sure you have enough disc space?
Thanks for your quick answer. yes i have 900go free space. For the others problème i will send you a screenshoot when the problème will come back. I will try crf 16 for the next encode
r0lZ
14th August 2015, 13:40
@thahandy
Yes, BD3D2MK3D include the audio and subtitle streams in the calculation, as well as the muxing overhead. I have changed already slightly the calculation, because someone else has reported that it was off, and the last tries I did were perfect. So I don't know how you obtain a wrong file size. I'll check again. Perhaps it happens when the audio streams are converted to AC3 or AAC?
The encoding settings are included in the tags.xml file (as well as the tags defined by the user in tab 3).
The fact that the subtitles are placed at different positions in some 3DBDs is intentional. One of the big problems with the 3D subtitles is that they force the spectator to focus on the subtitle to read them, then on the character in the image. That repeated actions are not pleasant, and therefore to minimize the problem, the subtitles are placed as close as possible to the character, and at approximately the same depth. For example, in Avatar, there are many subtitles placed largely over the standard bottom center position. It's especially important if there is an object in the bottom of the image that gets away from the surface of the screen, but the main character or action takes place in the background. The subtitles have to be in the background too, and cannot be placed "inside" the objects in the bottom of the screen. For that reason, they have to be placed higher. Some subtitles are placed at the left or right side, or even at the top, for the same reason.
If you move them in the bottom center of the screen, the 3D depth values used by BD3D2MK3D will not be correct, and the subtitle will "enter" in the objects in the foreground. It's extremely unpleasant, and that can cause severe headache. Therefore, I advice you to keep the original positions, at least for the 3D subtitles. (If you mux also 2D subtitles, they will be badly placed anyway, and therefore it doesn't matter much if you move them in the bottom center.)
Note the "Clone Subtitles positions from another file" function in the Tools menu. It does just the opposite than what you want. With that tool, you can modify the positions of the subtitles of a "standard" stream to place them in the positions of the corresponding subtitles of a good 3D stream (called "guide stream"). This allows you to convert a downloaded SRT file to SUP and then to 3D correctly, with the right depths and positions (as long as the guide stream has correct positions and its 3D-Plane file has correct values for all subtitles in the SRT).
So, you are lucky if your 3DBD has subtitles in different positions. The author did a great work! It's usually much better than the subtitles in the bottom center, even if they are placed in front of the foremost objects. And of course, I have no intention to create another tool to destroy the correct 3D positions!
Perhaps it's possible with BDSup2Sub, but I don't think so. IMO, the easiest way to do what you want would be to convert the original SUP to SRT (with SupRip), and then re-create a SUP file from the SRT (with SubtitleEdit). But again, I do not recommend to do that!
r0lZ
14th August 2015, 13:43
Thanks for your quick answer. yes i have 900go free space. For the others problème i will send you a screenshoot when the problème will come back. I will try crf 16 for the next encode
OK, but take care. CRF 16 is very low. You will end up with a very big MKV file. (I use CRF values between 18 and 23, depending of the quality of the image of the movie. And I use CRF 18 only for movies with very detailed and sharp images, such as Sin City 2.)
Wolfy59
14th August 2015, 14:05
OK, but take care. CRF 16 is very low. You will end up with a very big MKV file. (I use CRF values between 18 and 23, depending of the quality of the image of the movie. And I use CRF 18 only for movies with very detailed and sharp images, such as Sin City 2.)
I want a 20->25 Go mkv out to use with my nas and Kodi
r0lZ
14th August 2015, 14:13
OK, then 16 is a good bet. (Unfortunately, it is not possible to know the resulting bitrate, even approximately, when using the CRF mode, because it depends greatly of the original movie and encoding. But with CRF 16, you should have a "near perfect" quality anyway, regardless of the bitrate.)
Wolfy59
14th August 2015, 15:37
Thanks r0lZ
thahandy
14th August 2015, 16:37
@thahandy
Yes, BD3D2MK3D include the audio and subtitle streams in the calculation, as well as the muxing overhead. I have changed already slightly the calculation, because someone else has reported that it was off, and the last tries I did were perfect. So I don't know how you obtain a wrong file size. I'll check again. Perhaps it happens when the audio streams are converted to AC3 or AAC?
Tbh. I didn't encode with that value, as it was a bit high acording the calculator and calculated the size :rolleyes:
I've let it run again it its tells 11485Kbit @ 161min. With 2080MBytes to add I get ~15900MBytes calculated (14.8GByte)
So i guess you're using byte (2^) instead bytes?! Which clears a lot of things. Bytes is the thing I'm after! ;)
10.5Mbit + DTSHD-MA +SUBs -> 13,6 GB (14.674.780.160 bytes)
10,8Mbit + DTSHD-MA +Subs -> 13,8 GB (14.845.025.940 bytes) (target 14305MB)
11.1Mbit + DTSHD-MA +SUBs -> 14,3 GB (15.408.095.232 bytes)
11.4Mbit + DTSHD-MA +SUBs -> 14.8 GB (15.900.000.000 bytes) (estimated by BD3D2MK3D)
The encoding settings are included in the tags.xml file (as well as the tags defined by the user in tab 3).
thank you!!!!
The fact that the subtitles are placed at different positions in some 3DBDs is intentional.
[...]
So, you are lucky if your 3DBD has subtitles in different positions. The author did a great work! It's usually much better than the subtitles in the bottom center, even if they are placed in front of the foremost objects. And of course, I have no intention to create another tool to destroy the correct 3D positions!
Now u mention it it makes sens :rolleyes: Thanks for this extended explanation. :cool:
All the non-naive languages (dutch) are subtitled by default on TV and Disk as long I can remember and seems we're used to look down for text. The funny thing is when it ran in the cinema, the subtitles where at the bottom center like we used to and this BD is the first the subtitles are placed where we're looking as you mentioned.
(note that our subtitles are simplified of whats actually being said. Otherwise you're only reading the whole movie. Sadly not everyone sticking to this "rule")
Perhaps it's possible with BDSup2Sub, but I don't think so. IMO, the easiest way to do what you want would be to convert the original SUP to SRT (with SupRip), and then re-create a SUP file from the SRT (with SubtitleEdit). But again, I do not recommend to do that!
I can only fix horizontal to center, vertical it seems to refuse to fix(to all subs). I assume vertical is the easy things to fix, as it has only one offset from top.
Guess I'll just leave the subtitle it is, as it's just one movie. Thanks for the input!
r0lZ
14th August 2015, 16:51
So i guess you're using byte (2^) instead bytes?! Which clears a lot of things. Bytes is the thing I'm after! ;)
Sorry, but for me it's still terribly obscure. What do you mean? Bytes is the plural of byte, and nothing else.
In your example above, what is your target MKV file size?
thahandy
14th August 2015, 17:56
Sorry, but for me it's still terribly obscure. What do you mean? Bytes is the plural of byte, and nothing else.
15GB = 1.536MB = 15.728.640KB = 16.106.127.360Bytes
So in my case at the moment need to set it at 13969MB to get a output around 15.000.000.000Bytes
http://4.bp.blogspot.com/_HqwAcDB2RrQ/S8V5uu3CRjI/AAAAAAAAACQ/bQrBUC4mlIs/s1600/tabla_bytes.jpg
In your example above, what is your target MKV file size?
MKV set at 15000MB which was given an estimated 11485Kbit to be used
r0lZ
14th August 2015, 18:12
Ah, OK. BD3D2MK3D uses the real (computer) sizes, as it should. A GB is therefore 1024 * 1024 * 1024 bytes. And your final MKV file size should be around 15,728,640,000 bytes. (BTW, the right column in your illustration should not exist. There is officially no KB at 1000 bytes, or mega at 1000000. The industry of the CD-R, DVD-R, BD-R had adopted these wrong values for commercial reasons only. But it's a lie, and no program should use these values.)
BTW, I did just two very rapid tests on a small clip. The duration of the clip is 0:03:24, and the audio file size is 4788 KB. When I ask for a target file size of 300MB, the computed bitrate is 11571 kbps, and the final MKV size is exactly 300.098 MB. Not too bad!
If I ask for a final file size of 1000 MB with the same clip, the bitrate is 39006 and the final file size is 1001.361 MB. I agree that the bitrate is slightly too high, but only a little. I'm not sure I need to try to obtain a better value. Computing the overhead is extremely difficult, perhaps impossible. I can't guarantee extremely accurate results.
I am currently encoding a longer movie, but even with the superfast preset, the two passes will take some time. I have requested a final file size of 10 GB (10240 MB in the GUI). I'll report the result tomorrow. If it is true that the final size is really too different, I'll try to improve the formula...
[EDIT]
15GB = 1.536MB = 15.728.640KB = 16.106.127.360Bytes
Correct.
So in my case at the moment need to set it at 13969MB to get a output around 15.000.000.000BytesIf you want a final file size of 15,000,000,000 bytes, you have to compute the right number of real MBs: 15,000,000,000/1024/1024 = approximately 14305 MB, not 15000 (and not 13969 neither).
thahandy
14th August 2015, 18:49
Ah, OK. BD3D2MK3D uses the real (computer) sizes, as it should. A GB is therefore 1024 * 1024 * 1024 bytes. And your final MKV file size should be around 15,728,640,000 bytes. (BTW, the right column in your illustration should not exist.There is officially no KB at 1000 bytes, or mega at 1000000. The industry of the CD-R, DVD-R, BD-R had adopted these wrong values for commercial reasons only. But it's a lie, and no program should use these values.)
The picture was just random to get the idea.
yup, byte to GB is a but a mess in compute land
CD 700 = 734.000.000Bytes (700MB)
dvd-r 4.7 = 4.700.000.000Bytes (4.5GB)
16GB flashdisk = 14.700.000.000Bytes (13.7GB)
Thats why I was after the real Bytes.
I just need to make a 1,024^2 compensation in BD3D2MK3D, no worries
BTW, I did just two very rapid tests on a small clip. The duration of the clip is 0:03:24, and the audio file size is 4788 KB. When I ask for a target file size of 300MB, the computed bitrate is 11571 kbps, and the final MKV size is exactly 300.098 MB. Not too bad!
If I ask for a final file size of 1000 MB with the same clip, the bitrate is 39006 and the final file size is 1001.361 MB. I agree that the bitrate is slightly too high, but only a little. I'm not sure I need to try to obtain a better value. Computing the overhead is extremely difficult, perhaps impossible. I can't guarantee extremely accurate results.
[..]
Its off by 0.1%, no need to change :D
[EDIT]
[EDIT]
Correct.
If you want a final file size of 15,000,000,000 bytes, you have to compute the right number of real MBs: 15,000,000,000/1024/1024 = approximately 14305 MB, not 15000 (and not 13969 neither).
You're correct. A 1024 to much
http://www.dr-lex.be/info-stuff/videocalc.html
http://forum.doom9.org/attachment.php?attachmentid=14957&stc=1&d=1439575334
r0lZ
14th August 2015, 19:07
The CDR is correct and it uses the right (binary) size. 4,700,000,000 bytes for the DVD-R is not 4.5GB but 4.377 GB and not the false 4.7 GB! (BTW, when you select 2-pass in file size mode in BD3D2MK3D, the default value is 4470 MB, because it's a bit less than the size of a single layer DVD. It's handy if you want to burn a 3D movie on a DVD.)
And I didn't know that the flashdisks have adopted the wrong (decimal) values too. That's really stupid.
Since all file and disc sizes are displayed in Windows (and, afaik, also in Linux, Mac, Android and other OS) in real binary sizes, it is normal to use the same units in BD3D2MK3D. There is no reason to mix binary sizes for the audio and subtitle files, and decimal sizes for the target disc.
frank
15th August 2015, 00:21
At end of project creation I got an error message:
Warning: There is only 17.09 GB of free space on your target disc.
You may still need 21 GB...You cannot cancel that window and return to the main. The Abort button does the same as the Return button.
To end the program you must kill it's process in task manager.:scared:
r0lZ
15th August 2015, 09:24
Oh, I have added that warning recently, but I don't remember if I have tested it in real circumstances. I'll have a look.
Anyway, don't worry. It is displayed at the very end of the project creation and the project should be usable without problem (at least if you have enough disc space).
[EDIT] Indeed, there was a bug here. It is fixed, and I will release a new version soon...
r0lZ
15th August 2015, 09:38
Its off by 0.1%, no need to change :D
For your information, I have finished the test of the full movie (1:25:31). I have requested a final size of 10 GB and obtained exactly 9.997 GB. The difference is minimal, and therefore I will not change the formula. Especially because with the two first tests (with the short clip) the final file was slightly too big, and with this test, it is slightly too small. It will be probably very difficult to obtain a formula that gives perfect results in both cases.
Anyway, I have slightly changed the "MB" label in the last tab to make it obvious that it means "real MB" (1024KB).
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.
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.
r0lZ
27th October 2015, 21:47
It should work without problem. The bug related to the "missing" SSIF files has been introduced relatively recently (with a change in the way the free disc space is checked), but before BD3D2MK3D did not require the SSIF files, and should still not require them.
The only difference with a "real ISO" (with the SSIF) is that BD3D2MK3D skips now the test for sufficient disc space. You must therefore ensure yourself that you have enough free space before launching the creation of the project and before launching the encoding itself. The rest should be OK.
sfatula
27th October 2015, 21:58
The first part ran, and I am now running the 3D encode script to create the file(s). So, it appears you are correct! Thanks.
sfatula
28th October 2015, 07:31
Ok, I am assuming I did something wrong. The 3D movie does play, looks pretty good. But I lost the trueHD sound, it's DD 5.1. Since your very first page strongly implies I can keep the TrueHD audio, where did I miss that setting, or, option? What do I click or not click on which screen to keep it? I did select the TrueHD audio stream, but, it came out 5.1.
r0lZ
28th October 2015, 09:23
Be sure to untick the two options below the area with the streams in tab 2, and especially the first one: "Use the 5.1 core of DTS-HD and E-AC3 audio streams". The second option converts the "heavy" audio tracks to AC3 or AAC (max 5.1), so you should untick it too.
Take care however. TrueHD has NO AC3 core! It's ONLY in the blu-ray discs that an AC3 stream is associated with the THD strream. So, if you untick the first option, you will end up with a MKV that will have no audio if you try to play it with a player without a THD decoder. Ideally, you should include the THD AND the AC3 streams in the final MKV, but currently it's something not handled by BD3D2MK3D. You can however do it manually if you edit the __MUX_3D_OPTIONS.txt file. Let me know if you need both streams.
Note that you don't need to start everything over, especially if the thd track is already in the target folder. In that case, you can simply edit __MUX_3D_OPTIONS.txt and change the filename (and optionally the title) of the current audio stream to use the thd track instead. Then launch __MUX_3D.cmd to recreate the MKV, this time with the thd track.
And if the thd track has not been demuxed, you can either demux it yourself with tsMuxeR or eac3to, then again edit __MUX_3D_OPTIONS.txt and launch __MUX_3D.cmd. Or if you prefer a long but simple operation, you can move the XXXXX_3D.264 file in another directory, restart the generation of the project with the correct options in tab 2 (it will replace the whole content of the target directory), and finally move back the .264 file in the project dir and launch __MUX_3D.cmd.
Sidenote: I have decided to split the 3 operations (encoding, muxing and optional computer shutdown) in 3 different CMD files for reasons like this. In fact, __ENCODE_3D.cmd calls __MUX_3D.cmd and __POSTPROCESS_3D.cmd, but you can launch __MUX_3D.cmd yourself (if the 264 file generated by __ENCODE_3D.cmd is already present in the directory) to just redo the muxing phase, without having to compute the h264 file again. It's specially handy if you want to add an external stream (such as subtitles downloaded from the internet). You can modify the MUX file when the encoding is in progress, and if you need to modify the final MKV (for example because the subtitles are not correctly synchronised), you can do it without having to restart the whole process. Similarly, you can edit (or delete) the POSTPROCESS file if you change your mind and you don't want to shut the computer down any more. (The new Batch Mode, introduced with the latest version modifies also the POSTPROSESS file to chain the encodings together.) In your case, it is also sufficient to modify the MUX file because you already have the 264 file. Just be sure to not overwrite it accidentally.
sfatula
28th October 2015, 15:05
Well, "Use the 5.1 core" was my first guess so unticked that and reran over night along with other changes since first run was just a test anyway, still running with the encode since the machine isn't super fast, and, I am using slow. Looks like 11 hours totals will be the result, 64 bit x264. I know it can't be played on non TrueHD systems. Only play in the dedicated theater room though with TrueHD. I don't use subtitles, though, I should probably rethink that.
Question about 64 bit x264, is this referring to the app that does the encode, or what? Is the idea it may run a little faster?
BTW - this is an excellent tool you have created, as opposed to manually running all the various pieces. It makes experimenting super easy as you check or uncheck a few boxes. Good work!
r0lZ
28th October 2015, 15:31
You can already verify if the THD track has been demuxed. It should have the .thd or .ac3+thd extension. And it should be referenced in __MUX_3D_options.txt.
Yes, using 64-bit x264 is a bit faster (especially with slow presets). Note that avisynth is a 32-bit program, and therefore it cannot communicate directly with x264 64-bit. It's why its output is read by avs2yuv.exe (32-bit), and then piped to x264 (64-bit). There is a very little overhead due to avs2yuv, but anyway the speed gain is still interesting. Don't expect a major gain, though.
Thanks for your appreciation of BD3D2MK3D! :-)
sfatula
30th October 2015, 06:20
Anyone know, since this uses java 32 bit, if it can be installed in addition to existing java 64 bit, which I need for other purposes?
It's too bad there is no good player for mkv mvc yet except steroscopic player. Maybe some day.
r0lZ
30th October 2015, 10:36
Yes, you can install the 64 and 32-bit versions alongside. Not sure what version will be used by default by your java programs, but they are compatible. Be sure to update both versions when an update is available. For whatever reason, I am notified only for a single version.
Also, with some luck, the 64-bit version will work with BD3D2MK3D. Try this: Verify if the java version is selected in Settings -> BDSup2Sub, and launch Tools -> Open Subtitle in BDSup2Sub and select any subtitle stream. If the BDSup2Sub window opens, that means that the 64-bit version should work without problem, including when a project is created.
I have written that the 32-bit version is necessary after a lot of problems I've had with java, and the only way I've found to have it working was to uninstall all versions, clean the registry manually, and re-install properly the 32-bit version. But the problems were probably due to the absurd way java is installed under Windows, and perhaps not to a 64-bit incompatibility. Anyway, try to use the 64-bit version before installing the 32-bit. It may work fine. In the meantime, I'll do some tests here...
frank
30th October 2015, 12:08
Version v0.76 has not updated the number, shows old v0.75.
r0lZ
30th October 2015, 12:23
Oops, yes, sorry. Too late anyway. I have already added new things, and v0.77 is on the way. I'll try to release it as soon as possible...
sfatula
30th October 2015, 18:08
No, in settings, it shows BDSup2Sub as the ++ version only. It doesn't run with open either, I guess it really must have the 32 bit version. Somehow, it is restricted to that. I don't see where it says, on their "site", that it requires 32 bit though. Perhaps the restriction is built into your program?
r0lZ
30th October 2015, 19:59
Yes, maybe. I have to check my code. IIRC, I have added a function to check if Java is available, but since BD3D2MK3D is a 32-bit program, it "sees" only the 32-bit programs, and doesn't find java 64-bit. It's probably why you can't select BDSup2Sub.jar in the Settings menu.
I will verify that tomorrow, and if it's possible, I'll release a fix. In the meantime, you can probably use BDSup2Sub++. It has several bugs, but it works fine most of the times.
frank
31st October 2015, 11:30
Oh, it's not a good idea to write the encode-3d.log continuousely.
I had to comment out the line, or is there a switch?
1. On SSD I get a lot unwanted write cycles that shorten the life!
The CMD-window is entirely sufficient.
2. I've got buffer underflows, never had before. I'm working with my notebook, the encoder is running in background.
frank
31st October 2015, 11:40
Windows power management doesn't much care about operations in the cmd window. So my notebook will go to sleep/off after time. The enoding process will be interrupted.
To avoid that I have to manually set the power management to max. power for encoding.
Is there a better solution for BD3D2MK3D to maintain the cmd window running?
r0lZ
31st October 2015, 11:48
I agree that there is a lot of useless info in the x264 log. I have added it at the request of wiggaz (http://forum.doom9.org/showthread.php?p=1741871#post1741871). And the log may be useful if you encode during the night and you have enabled the option to shut the PC down. In that case, you cannot see the log in the command prompt window.
There is currently no option to disable it, but I can add it in the next version. In the meantime, just delete the end of the command in __ENCODE_3D.cmd (in red below):
"D:\Tcl\work\BD3D2MK3D\toolset\avs2yuv.exe" ^
"__ENCODE_3D_MOVIE.avs" -frames 139243 -o - ^
| "D:\Tcl\work\BD3D2MK3D\toolset\x264_x64.exe" ^
--crf 21 --preset slower --level 4.1 --vbv-bufsize 78125 --vbv-maxrate 62500 ^
--threads 4 ^
--sar 1:1 ^
--frame-packing 3 --qpfile chapters_3D.qpfile --frames 139243 --fps 24000/1001 ^
--output "00801_3D.264" --demuxer y4m --stdin y4m - ^
2>&1 | "D:\Tcl\work\BD3D2MK3D\toolset\tee.exe" ENCODE_3D.log
Don't forget to delete also the tailing ^ of the previous line!
r0lZ
31st October 2015, 11:53
Windows power management doesn't much care about operations in the cmd window. So my notebook will go to sleep/off after time. The enoding process will be interrupted.
To avoid that I have to manually set the power management to max. power for encoding.
Is there a better solution for BD3D2MK3D to maintain the cmd window running?
Hum, I have never encountered that problem, and honestly I don't think I can do something to avoid it.
There are stupid programs available on the net to simulate a mouse move of key press regularly while a certain window is open, or a certain program is running. Perhaps you can use that kind of trick, but I don't think it's something that should be hardcoded in BD3D2MK3D. After all, it's a Windows bug!
Perhaps there is also a power management option to NOT go into sleep mode when the notebook is connected to the AC power?
r0lZ
1st November 2015, 10:18
Here it is. There are several fixes and improvements, including for the bugs and requests reported here. I have also added a new "Chapterizer" tool that allows you to simply add evenly spaced chapters to an existing MKV file. It may be handy to add chapters to MKV files originally created without chapters, or to replace bad chapters with more useful ones.
And, this time, the version number is correct! ;-)
v0.77 (November 1, 2015)
- Added Tools -> Chapterizer (to add chapters to an existing MKV file)
- Added MkvInfo.exe (from the MkvToolnix package) in the toolset directory (necessary for the new Chapterizer).
- Added Settings -> AVC/HEVC Encoder -> Save (huge!) log of the encoder on disc (disabled by default)
- Workaround for a bug in the DcaDec DTS decoder. When it fails due to a (wrong?) synchronisation error, the conversion to AC3 or AAC is restarted with the Libav decoder.
- Fix: The wrong folder was opened in Explorer at the end of the Batch Encode procedure.
- Fix: Removed the requirement to have the 32-bit version of Java installed, since it appears that BDSup2Sub works well with the 64-bit version.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
frank
1st November 2015, 10:20
Yeah, I managed it with selecting 3 hours in balanced mode when the notebook is connected to AC.
It will be sufficient for an encoding.
Thanks. :)
________
Dell XPS 15, Windows 7 prof
r0lZ
1st November 2015, 10:57
Thanks for the confirmation. BTW, I've just found Shut It! (https://www.raymond.cc/blog/prevent-cancel-and-abort-a-windows-system-shutdown-or-restart-when-application-is-running/2/) that may be the tool you need to prevent the PC from shutting down or going into sleep mode, while still permitting it (or even forcing it) when the encoding and muxing processes are finished. I haven't tried it, and I'm not sure it will work, but you may want to have a look.
[EDIT] Sorry, but it seems that it is no longer possible to download it. If you find a copy somewhere, please let me know...
odyssey
2nd November 2015, 23:45
r0lz: I have a question. I have previously got the impression that 3D blurays had to be mounted as an image, because they contain "something" which is needed for 3D processing. Can't remember if it was a previous version of BD3D2MK3D, eac3to or whatever, or maybe I just misunderstood something.
Reason I'm asking, is that I tried to process a blu-ray that had been extracted to a folder, and it seemed to process with no problems. It would really ease my workflow, if I could just extract all my images, instead of running them through daemon-tools or similar.
sfatula
3rd November 2015, 00:11
Images per se are not necessary, depends what you are trying to do though. For my processing, I used MakeMKV to unprotect and backup my own BluRay disc to a folder. I then used BD3D2MK3D for it's own purposes against my backup (it would not have worked against the BluRay due to protection), worked just fine. I am storing my collection on disc instead of having to find the BluRay. I play the resulting 3d via Kodi. It all just works. Heck, I actually edited the TrueHD track for my own purposes as well.
Now, there are certainly formats that you may need a special player for, etc. But, no need for the original BluRay, just depends what specifically you are trying to do. MakeMKV can also create a 3D MVC mkv file for example, however, as far as I know, only one player will play it. Stereoscopic player, and it's not cheap.
So, doubtful you need to use daemontools or other such programs.
r0lZ
3rd November 2015, 00:57
Previous versions of BD3D2MK3D (and BD3D2AVS as it was called at the beginning) used eac3to to demux the tracks, and for technical reasons it was necessary to use the SSIF files, except in very special cases, where the M2TS files were used. It was therefore necessary to copy on HDD a lot of files, including the M2TS (in BDMV/STREAM) and the SSIF files (in BDMV/STREAM/SSIF). Since the SSIF files are some kind of clones (or hard links) of the M2TS files but without physical data on BD, when they were copied, the result was that the content of the 3D movies was copied twice. It was therefore totally inefficient to copy a 3DBD as files on HDD, and much more rapid and economical to create an ISO. For that reason, it was recommended to use a mounted ISO, or the original BD decrypted on the fly by AnyDVD HD. And if you used a decrypter program that copies only the M2TS, BD3D2MK3D was unable to create the project due to the missing SSIFs.
In more recent versions, BD3D2MK3D uses tsMuxeR to demux the streams and tsMuxeR uses only the M2TS files. So, after a few modifications in my code, the necessity to have the SSIF files has been removed. The M2TS files are sufficient. It's why the copies released by MakeMKV work fine. Of course, a copy with any other decrypter should work equally well, even if the program ignores the 3D content and/or the SSIF files. However, I have recently fixed a bug causing BD3D2MK3D to fail when there was no SSIF on disc, and currently, due to that fix, BD3D2MK3D doesn't check any more if the free disc space is sufficient if it cannot find the SSIF files.
Conclusion: Yes, it is now possible to use a copy of the files on disc (with or without the SSIF files), but if the SSIF files are missing, be sure to verify yourself if there is sufficient disc space on the target drive, before launching the creation of the project and before launching the encoding.
blublub
5th November 2015, 21:09
Hi
That tool is awesome. I did encoding normal 1080p for years now but never had the time to try a 3D encode because it involved a lot more steps and therefore time.
This tool finally made me do it..and yeah it cool :-)
Since I have a fully capable 4k setup I wonder if it is possible to make a 4K 3D SBS from a 1080p 3D bluray to achieve a higher quality?
r0lZ
5th November 2015, 21:25
Thanks!
You can resize the video up to 4K manually (by editing the AVS script or the x264 command), but you won't get a higher quality. And don't forget that 3D requires twice the frame rate than 2D. Are you sure your hardware supports 4K 3D?
IMO, as long as the resolution of the 3DBDs is "standard" hi-res (1080p), the best thing to do to preserve the video quality is to encode in Full-SBS, with a low CRF value, to be as close as possible to the original video stream. Upscaling the video will not improve it and will require much more disc space.
blublub
5th November 2015, 21:44
Thanks!
You can resize the video up to 4K manually (by editing the AVS script or the x264 command), but you won't get a higher quality. And don't forget that 3D requires twice the frame rate than 2D. Are you sure your hardware supports 4K 3D?
IMO, as long as the resolution of the 3DBDs is "standard" hi-res (1080p), the best thing to do to preserve the video quality is to encode in Full-SBS, with a low CRF value, to be as close as possible to the original video stream. Upscaling the video will not improve it and will require much more disc space.
ahh ok.
Which setting do I need for full SBS? I just selected SBS, crf 17, preset slow, ang profile high with preset film - so encodimg should be os good quality
sfatula
5th November 2015, 21:51
Uncheck the box on the "Options and GO" tab labelled "Half", right next to "Side by Side" This presumes you can actually play full side by side. crf 17 should turn out very nice.
blublub
5th November 2015, 22:08
Uncheck the box on the "Options and GO" tab labelled "Half", right next to "Side by Side" This presumes you can actually play full side by side. crf 17 should turn out very nice.
ok will try. I hope I an convince Kodi to play it :-)
sfatula
5th November 2015, 22:41
It might, be, you would need to be able to define a screen resolution of 3840x1080, which my system does not allow. I also use Kodi. I think it's more of a graphics issue. Even if my computer system supported it, don't think it would work anyway as the projector does not.
r0lZ
6th November 2015, 00:41
If Full-SBS or 4K video is rejected by many hardware players, it's due to the relatively low capacity of their graphics buffers and/or the speed of the rendering engine. Every hardware has its limits, and currently most 3D TVs or projectors support only Half-SBS (or Half-T&B) in 1080p (but some can support Full-SBS/T&B in 720p).
Also, for totally different reasons, it is currently not possible to convert the subtitles to 3D in Full-SBS or Full-T&B format, because the graphics format (BD SUP and DVD VobSub) are made for "standard" resolutions like PAL, NTSC, 720p or 1080p, but not for left+right combined views such as Full-SBS (3840x1080). It is however still possible to hardcode the subtitles on the video.
So, be sure to know what you are doing. If you untick the Half option in the last tab, the compatibility of the MKV with most hardware players will be very low, and you won't have the possibility to include 3D subtitles. But if your hardware supports it, the video quality will be very good, especially with a low CRF like 17.
blublub
6th November 2015, 08:33
Hi
I will give it a try.
In Kodi I can set 4K resolution that works and I tested it already.
It upscales 1080p content with spline36 just fine with no hiccups so I hope it will play a native 4K stream.
Hardware is:
AMD A10 6700
AVR Denon x6200
Samsung HU7590 UHD LED TV
sfatula
6th November 2015, 09:03
I'd love to hear back once you have tried it.
blublub
6th November 2015, 23:40
OK just watched a whole movie and it works like a charm. Had two little stutters but I am not sure if it was HTPC or the Samsung TV - I will check decoding stats next time but it is neglectable.
However Samsung IR 3D emitter is a pain and the glasses dropped frequently out if 3d mode.
Could be because I have an IR bud on the TV for my home automation system. I have to find out where that IR emitter is located.....
r0lZ
7th November 2015, 00:32
Recent Samsung TVs use bluetooth to transmit the signal to the glasses, and I have never missed a single frame. The glasses continue to work even when I'm outside the room!
The stutters can be caused by the TV itself, or the hard disc, the connectivity or a glitch during the decoding. Usually, when I see that kind of problem, I go a few seconds back to replay the part that has caused the problem, and there is no glitch any more. I suspect the TV connecting to the internet to verify the updates for the Smart Hub, or things like that.
blublub
7th November 2015, 03:07
The glasses lost connection every 5-10 minutes or so. Very annoyingly and u are correct it's BT what makes it even more arrange just 3m in front if the TV.
Batteries were new.. Mhhhh
blublub
7th November 2015, 18:58
OT:
I used the wrong batteries cr2016 where as it should have been cr2025 :-)
blublub
7th November 2015, 19:00
Whenever I try to use a DTS HD or HD MA track I get errors and conversion stops.
Why us a DTS HD / MA stream copy such a problem?
r0lZ
7th November 2015, 20:43
I have reported that problem to the authors of eac3to and DcaDec (here (http://forum.doom9.org/showthread.php?p=1745158#post1745158) and here (https://github.com/foo86/dcadec/issues/38)) but currently there is no good solution. As you can see, the error happens only when the DcaDec is configured with the "strict decoding" option turned on. Unfortunately, the author of DcaDec doesn't want to fix the problem, and the author of eac3to doesn't want to remove the "strict flag", so currently we're stuck. I have requested an option to turn the strict flag off with the command line of eac3to, but it will be implemented only in the next version of eac3to.
I have therefore implemented a workaround in the latest version of BD3D2MK3D (v0.77): When the DcaDec DTS decoder fails with the synchronisation error, the conversion is restarted with the Libav decoder. Libav works but it is less good (because it decodes only the lossy DTS core), so I've kept DcaDec by default. I have also been able to verify that a lot of DTS HD or MA tracks can be decoded correctly by DcaDec with the strict flag (but I agree that the problems are frequent too). AFAIK, the Libav workaround works when it should, but I've implemented it ONLY when the error reported by DcaDec is the synchronisation error. If you encounter often another error and the conversion is not restarted automatically, please post here the part of the log with the error message. I may have to trap other errors as well.
Note that the workaround is not automatic when you convert manually the DTSHD/MA track with Convert Audio from the Tools menu. In that case, if the error happens, you have to manually select the Libav option and restart the conversion.
blublub
7th November 2015, 23:08
Uhh I see, a more complicated matter. Thx for filling me in
mini-moose
13th November 2015, 15:09
Is there any importance to the Attachments on the mux process?
--attachment-mime-type
text/plain
--attachment-name
__ENCODE_3D_MOVIE.avs
--attach-file
__ENCODE_3D_MOVIE.avs
--attachment-mime-type
text/x-msdos-batch
--attachment-name
__ENCODE_3D.cmd
--attach-file
__ENCODE_3D.cmd
--attachment-mime-type
application/zip
--attachment-name
3D-Planes.zip
--attach-file
3D-Planes.zip
and another question: the program pack comes with TSMuxer 2.6.9, which is slightly older than the last version availble (2.6.12). Any specific reason for it (like a bug in the latest one)?
r0lZ
13th November 2015, 18:17
The 3 attachments listed above are not really necessary. They are added just to document the process, and keep track of the encoding parameters. You can remove them if you wish. (Note that if you define some cover art images in tab 4, they are also added as attachments. And, if you have requested to convert at least one subtitle track to 3D, a zipped archive with the 3D-planes is also attached, so that it will be easy to convert a new subtitle stream to 3D if necessary.) Anyway, all these files are very light, so IMO it is worth keeping them.
And yes, the development of tsMuxeR has stopped (again) and I have included the latest version that works correctly. If you go to Help -> tsMuxeR Version, you'll see this:
---------------------------
BD3D2MK3D
---------------------------
Network Optix tsMuxeR. Version 2.6.9. www.networkoptix.com
WARNING: Do NOT use v2.6.11 or v2.6.12 as they have a big bug with the time codes of the subtitle streams of some BDs. The last known good version is v2.6.9.
Visit home page?
---------------------------
Yes No
---------------------------
I don't think that v2.6.10 has been released officially, so you should stick with v2.6.9. Anyway, the improvements in the two last versions are related to the muxing process only. Nothing has changed for the demux, except the new subtitles timecodes bug.
Nico8583
13th November 2015, 21:07
Just because I'm curious : what do you use to read Full SBS or Full OU ? A software player ? A hardware player ? A 1080p Full HD ? A 4K TV ?
Thank you !
r0lZ
13th November 2015, 22:31
I encode always in Half-SBS, because my Samsung TV doesn't support Full-SBS, and I'm not rich enough to buy a new 4K TV. When I need to do tests in Full-SBS, I use PotPlayer on my PC, but I don't like to watch full movies with my PC.
I'm tired of hardware multimedia players. They are always too limited, and obsolete very rapidly. The last one I bought doesn't play 3D well.
I suppose that a good solution would be to buy a mini PC and install Linux + XBMC/Kodi. Maybe it's something I'll do soon, but I'm still not sure they are powerful enough...
Anyone has a good experience of a cheap but good solution to play Full 3D?
mini-moose
13th November 2015, 23:13
The 3 attachments listed above are not really necessary.
And yes, the development of tsMuxeR has stopped (again) and I have included the latest version that works correctly.
As always, thanks for the info, r0lZ!
Was just curious if attachments have any relevance for the playback or not. Assumed not but can't hurt making sure :)
r0lZ
15th November 2015, 11:53
Whenever I try to use a DTS HD or HD MA track I get errors and conversion stops.
Why us a DTS HD / MA stream copy such a problem?
The problem should be fixed in the new version (v0.78).
r0lZ
15th November 2015, 12:23
v0.78 (November 15, 2015)
- Due to problems with the DcaDec DTS decoder, the support for the ArcSoft DTS decoder has been added back. (It has been removed in v0.70.)
- Added the Settings -> Preferred DTS Decoder menu to select the ArcSoft, DcaDec or LibAv DTS decoder.
- Small cosmetic changes
- Fix: The message displayed by the [?] button next to the Convert to AC3 or AAC option in tab 2 was truncated.
- Updated eac3to to the latest version (v3.31) - The DTS decoding problems with DcaDec should be fixed.
- Updated MkvMerge, MkvPropEdit and MkvInfo to the latest version (v8.5.2)
- Due to problems in the latest versions of the Intel MVC decoder, libmfxsw32.dll has NOT been and should not be updated, and is still v6.14.11.28 (28-11-2014).
I have tried to implement a workaround for the problems of the DTS-HD and DTS-HD-MA decoding with eac3to and the new DcaDec DTS decoder (explained in this post (http://forum.doom9.org/showthread.php?p=1745660#post1745660)). The workaround is simply to implement a new option (available via the Settings -> Preferred DTS Decoder menu) to allow the user to select his preferred DTS decoder, instead of forcing DcaDec by default. It is now possible to select the commercial ArcSoft DTS decoder (but only if it is properly installed on your system), the free DcaDec that caused the problems, or the simple but relatively inefficient LibAv decoder. (See the Help item in the Settings menu for more info about the advantages and disadvantage of these decoders.)
But soon after I did that modifications in the code, a new version of eac3to has been released. It includes the latest version of the DcaDec decoder, and that version can now distinguish between a fatal error or a simple warning. Therefore, the small discrepancies in the DTS-HD or DTS-HD-MA streams that caused the previous version of eac3to to fail often are now simply logged in red in the BD3D2MK3D console, but the conversion continues without problem. It should therefore be safe to use the DcaDec DTS decoder by default now. However, I have decided to leave the option to select the preferred DTS decoder, because DcaDec is still a very young decoder, and it may have other bugs. You may also prefer the ArcSoft decoder, if you have it. However, if you don't have the ArcSoft decoder, I recommend to use the DcaDec decoder, at least to decode DTS-HD and DTS-HD-MA audio tracks. (The LibAv decoder should give good results with the standard 5.1 DTS tracks.)
For your information, I have also tried to update the Intel MVC decoder (libmfxsw32.dll) to the latest version (v6.15.6.2), but unfortunately it has a big bug. Some movies cannot be decoded at all, and the decoder outputs only pure black frames! (It's the case, notably, with the US BD3D of Creature from the Black Lagoon.) Therefore, I have tried to replace the DLL with the penultimate version (v6.15.3.12) and that one doesn't output black frames, but it produces strange stuttering in some scenes. I'm not totally sure it's a bug, but the latest version distributed with BD3D2MK3D (v6.14.11.28) works without problem. Therefore, I don't recommend to update yourself the Intel library, unless you want to check yourself if it works for you. (That may be useful if you need to update the drivers for your Intel processor and v6.14.11.28 is not compatible with your hardware.) If someone has good results with the latest versions in hardware mode, please let me know. (If you need a sample, you can download this short extract from Creature from the Black Lagoon (http://download.videohelp.com/r0lZ/tmp/DGMVCSource%20bug%20with%20libmfxsw32%20v6.15.6.2.7z).)
The MkvToolnix exes have also been updated. AFAIK, they do not cause problems! ;-)
As usual, you can download the update here: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
tebasuna51
15th November 2015, 12:42
...It should therefore be safe to use the DcaDec DTS decoder by default now. However, I have decided to leave the option to select the preferred DTS decoder, because DcaDec is still a very young decoder, and it may have other bugs...
Thanks r0lZ!
I hope than this new version solve the problems detected.
BTW, I encourage the users to use DcaDec to help developers, providing samples, if a new problem is detected.
tomilein
3rd December 2015, 10:10
Hello,
i have a big Problem with Hardcoded Subtitle in my 3d Movies.
I have the Subtitle only in the Left Side but not in the Right Side.(SBS).
Would like to have correct on Right and Left.
My Movie Encode:
http://fs5.directupload.net/images/151201/temp/3vq9un8s.jpg (http://www.directupload.net/file/d/4189/3vq9un8s_jpg.htm)
Another Movie Encode [not from me]:
http://fs5.directupload.net/images/151201/temp/5ddwiwvi.jpg (http://www.directupload.net/file/d/4189/5ddwiwvi_jpg.htm)
Subtitle is available in 3D before i encode this Movie.
I do not know if I need to add what in the Avisynthscript?
http://fs5.directupload.net/images/151201/temp/cj78fd35.jpg (http://www.directupload.net/file/d/4189/cj78fd35_jpg.htm)
Here the generated Avisynthscript:
# Avisynth script generated Tue Dec 01 05:26:56 CET 2015 by BD3D2MK3D v0.78
# to convert "G:\BDMV\PLAYLIST\00100.mpls"
# (referencing the M2TS/SSIF files 00049)
# to 3D Side-by-Side.
# Hardcoded subtitles from file "00100.track_4614.Deu.3D.sup".
# Movie title: test
#
# Source MPLS information:
# MPLS file: 00100.mpls
# Video : Und AVC, 1080p, 23.976 fps, left-eye
# Video : Und MVC, 1080p, 23.976 fps, right-eye (32 3D-Planes)
# Audio : Eng DTS-HD-Master, Multi-channel, 48 Khz
# Audio : Deu DTS-HD-Master, Multi-channel, 48 Khz
# Audio : Spa AC3, Multi-channel, 48 Khz
# Subtitle: Eng PGS, 3D-plane: 1
# Subtitle: Deu PGS, 3D-plane: 1
# Subtitle: Spa PGS, 3D-plane: 2
# Subtitle: Hrv PGS, 3D-plane: 2
# Subtitle: Ell PGS, 3D-plane: 2
# Subtitle: Tur PGS, 3D-plane: 2
# Subtitle: Deu PGS, 3D-plane: 1
# Subtitle: Spa PGS, 3D-plane: 2
LoadPlugin("D:\#Backup#\DVD\BD3D2MK3D\toolset\DGMVCDecode.dll")
#LoadPlugin("D:\#Backup#\DVD\BD3D2MK3D\toolset\FRIMSource.dll")
#LoadPlugin("C:\Program Files (x86)\BDtoAVCHD\MVCSource.dll")
#LoadPlugin("D:\#Backup#\DVD\BD3D2MK3D\toolset\VSFilter.dll")
LoadPlugin("D:\#Backup#\DVD\BD3D2MK3D\toolset\SupTitle.dll")
# Load the two video streams (130771 frames per stream)
interleaved = DGMVCSource("00100.track_4113.264", "00100.track_4114.mvc", view = 0, frames = 130771, hw = 0)
#interleaved = FRIMSource("mvc", "00100.track_4113.264", "00100.track_4114.mvc", num_frames = 130771, cache = 2, platform = "")
#interleaved = MVCsource("00100.track_4113.264", "00100.track_4114.mvc", 130771, 2)
# Current base view: left eye.
# The views are in the common order: AVC stream = left view, MVC stream = right view.
left = SelectEven(interleaved)
right = SelectOdd(interleaved)
# Build Side-by-Side stream
StackHorizontal(Left, Right)
AssumeFPS("ntsc_film")
# Hardcode subtitles
#VobSub("00100.track_4614.Deu.3D.sub")
SupTitle("00100.track_4614.Deu.3D.sup")
# Resize to 720p
BicubicResize(1280, 720)
# Return the 3D clip.
Return(last)#.Info()
and here the __ENCODE_3D.cmd
@echo off
set path=D:\#Backup#\DVD\BD3D2MK3D\toolset;%path%
echo Encoding __ENCODE_3D_MOVIE.avs
echo Movie: test
echo Encoding started %date% %time%
@echo on
"D:\#Backup#\DVD\BD3D2MK3D\toolset\avs2yuv.exe" ^
"__ENCODE_3D_MOVIE.avs" -frames 130771 -o - ^
| "D:\#Backup#\DVD\BD3D2MK3D\toolset\x264_x64.exe" ^
--crf 20 --preset medium --tune Film ^
--bluray-compat --profile high --level 4.1 --open-gop --keyint 24 --slices 4 ^
--colormatrix bt709 --colorprim bt709 --transfer bt709 --b-pyramid strict ^
--vbv-bufsize 30000 --vbv-maxrate 40000 --aud ^
--sar 1:1 ^
--frame-packing 3 --qpfile chapters_3D.qpfile --frames 130771 --fps 24000/1001 ^
--output "00100_3D.264" --demuxer y4m --stdin y4m - ^
2>&1 | "D:\#Backup#\DVD\BD3D2MK3D\toolset\tee.exe" ENCODE_3D.log
@echo off
echo Encoding finished %date% %time%
REM Optionnaly mux the video and demuxed streams to MKV.
REM Note: The mux is disabled if no streams are demuxed.
if exist "__MUX_3D.cmd" cmd /c "__MUX_3D.cmd"
REM Everything done: do the post-processing (Shutdown computer...)
if exist "__POSTPROCESS_3D.cmd" cmd /c "__POSTPROCESS_3D.cmd"
exit /B
What am I doing wrong?
r0lZ
12th December 2015, 11:52
This release includes notably the possibility to encode the movie with low CPU priority. It's handy if you want to keep some CPU power to do other tasks while the encoding is in progress. However, do not launch CPU intensive tasks during an encoding in low priority mode, because x264 may stop almost completely. The effect is that the estimated time remaining becomes completely wrong, and, more importantly, that x264 may fail completely. To launch the encoding in low CPU priority mode, just launch __ENCODE_3D_LOW_PRIORITY.cmd instead of __ENCODE_3D.cmd. Of course, it is still possible to change the priority of the x264 task with the Windows Task Manager.
There are also some little enhancements and bug fixes:
v0.79 (December 12, 2015)
- When a stereo DTS or LPCM audio track is converted to AC3 (due to the option in tab 2), the bitrate is now 256 Kbps instead of 640.
- Tools -> Chapters File Converter: Added the possibility to grab the chapter names from the clipboard (one line per chapter)
- Two new batch files are now created, allowing you to launch the 3D or 2D encodings with low CPU priority.
- When the option to "exit and encode after successful demux" is ticked, the encoding is now launched with the low task priority.
- Fix: The character encoding was wrong in the *.cmd files, leading to problems when there were aforeign characters in the file or movie names.
- Fix: The Paste (Control-V) operation in the entry and combo widgets did not work correctly when a part of the existing string was selected.
- Fix: Error when converting subtitles to 3D with the option to search for valid depth values in other 3D-Planes and the OFS files are not in the source folder.
- Updated MkvMerge, MkvPropEdit and MkvInfo to the latest version (v8.6.1)
Enjoy!
Download BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
r0lZ
14th December 2015, 13:18
Subtitle is available in 3D before i encode this Movie.
I do not know if I need to add what in the Avisynthscript?
How is it possible that your post, dated 3rd December, appears only now (14th December)? It was not there when I wrote my previous post about BD3D2MK3D v0.79! Anyway, it's not the question.
If I understand correctly, the 3D subtitle is already present in the original BD? That's really strange. Anyway, if the subtitle has already the right format (3D Half-SBS 1080p), then you don't need to convert it again to 3D. You should replace the file name of the subtitle string in the avisynth script with the original version of the 3D subtitle (or the version with the "2D" extension if you are sure that it is really in 3D). The subtitle shown in the BDSup2Sub image should be OK, but I don't know its file name. So, you should have something like this:
SupTitle("00100.track_4614.Deu.2D.sup")
But I don't understand what you did in the first place, because if BD3D2MK3D has converted the original subtitle to 3D and that subtitle was already in 3D, it should contain 4 times the same subtitles instead of 2 times, and you should see two subtitles at the same time in the two views. But you explain that you "have the Subtitle only in the Left Side but not in the Right Side". That's very bizarre, and therefore I can't guarantee that the change of the filename explained above works as expected.
Note also that if the original subtitle is already in 3D, it has probably not the right depths computed from the 3D-Planes of the BD, and the subtitles may be a pain to read. If you want to be sure to have good results, you should convert yourself a 2D version of the subtitles to 3D with BD3D2MK3D, using a correct 3D-Plane.
Anyway, I'm curious. Can you confirm that the 3D subtitle you are using has been downloaded from the internet? I suppose so. Right?
Also, can you confirm that you have really encoded the movie from the 3D BD with BD3D2MK3D? It seems that the final SBS picture has not the correct 16:9 aspect ratio. The horizontal black borders have been cropped. BD3D2MK3D doesn't allow you to do that stupid thing, because ALL 3D movies MUST be encoded in 16:9. Also, the original movie seems to contain already hardcoded English subtitles. That's very strange too. I have never seen a commercial 3DBD with hardcoded subtitles.
So, if your movie comes from the internet and has not been encoded with BD3D2MK3D, I can't guarantee that the result will be correct, and anyway the D9 rules prohibit to help you for illegally downloaded material. So, sorry, but you will have to find the way to hardcode your 3D subtitles yourself.
Nico8583
14th December 2015, 13:45
How is it possible that your post, dated 3rd December, appears only now (14th December)? It was not there when I wrote my previous post about BD3D2MK3D v0.79! Anyway, it's not the question.
Yes same issue for me :rolleyes:
frank
17th December 2015, 13:39
I prefer professional DD 5.1 (AC3) conversion of DTS. (cinemas use Dolby Digital! Nowadays dts is only blu-ray avertising feature...) Certified DD is much better for home devices (tv, tablets, notebooks) because of switchable compression.
So far I used a simple eac3to batch file to make a 6 channel wav.
But because of the wav size (>2GB), no editor can read the wav header properly. The trick: mkvtoolnix reads big wav files, no channel mismatch! The wav file has to be muxed with mkvtoolnix to mkv. This audio mkv can be read by certified converters ->Mainconcept Totalcode Studio.
Certified Dolby Digital (ac3) files include 3 "versions" of the stream, that ffmpeg cannot:
uncompressed
standard compression (line)
heavy compression at -20 dB for noisy enviroment, notebooks etc.
with downmix params and a specified dialog level (standard -27 dB).
So I ask to add the feature to BD3D2MK3D:
Convert DTS audio tracks to WAV-MKV
for further processing.
Important eac3to parameter: -no2ndpass
Otherwise spikes require 2nd pass with lower volume. That is not necessary, you don't hear interferences.
r0lZ
17th December 2015, 14:07
So I ask to add the feature to BD3D2MK3D:
Convert DTS audio tracks to WAV-MKV
for further processing.
Hum, sorry, but IMO it's not something for BD3D2MK3D. The main process is supposed to produce the final MKV without the need for additional manual processing. And, since the video is re-encoded in (normally) Half SBS or T&B, the quality is lower than the original BD anyway, and IMO it doesn't make sense to include huge DD audio stream. IMO, if you want to keep the original quality of the audio, you should also avoid to re-encode the video, and therefore you should simply copy the BD3D. In other words, the philosophy of BD3D2MK3D is to make a relatively good conversion to a relatively small MKV file, not to clone the original video and audio as closely as possible. And anyway, if you really want to keep the optimal quality, you should simply NOT re-encode the audio at all. Therefore, I don't see the advantage to output to WAV and re-encode for no gain at all.
If you really want to encode the sound in a format not supported by BD3D2MK3D, you have to do it yourself, and edit the MUX_3D_OPTIONS.txt file to mux the final audio stream instead of the original. That's not really difficult, and there are many good GUIs for eac3to to do it. Adding this as an option in BD3D2MK3D will only confuse the casual users, and you will not gain much processing time.
So, sorry, but I will not do it, unless there are several peoples interested in this.
frank
17th December 2015, 16:26
Ok, I can help myself. And without any guis. :)
...it doesn't make sense to include huge DD audio stream. No, I reencode to DD with certified converter, then delete the wav/mkv.
Read a bit closer. I only wanted a better DD with compression for normal equipment as TV. Compression is basically required for downmix to stereo. Television broadcast sends with DD -23 dB and normal compression.
if you really want to keep the optimal quality, you should simply NOT re-encode the audio at all.No!
Blu-ray DTS has too much dynamics for NORMAL devices. You need a sound system with decoder that manages high dynamics (home cinema). The built-in decoders of tv-sets or stream-boxes are not able to manage that dynamics. Too much you have to use the volume control.
Downmix from blu-ray dts has NOT THE OPTIMAL QUALITY on normal devices with stereo sound.
r0lZ
17th December 2015, 17:33
I understand your point, but IMO, BD DTS is perfect (although I have only a simple decoder in my TV). I have never noticed a too high or too low volume (but it is true that I don't have neighbours, and I like high contrasts). Anyway, changing the dynamics of the audio tracks is beyond the scope of BD3D2MK3D.
tebasuna51
18th December 2015, 02:34
@frank
You can always preserve the original DTS-HD or TrueHD tracks and after do yourself the conversion to DD.
Store the wavs in mkv is only spend disk space.
If you have problems with wavs greater than 2 or 4 GB you can always use W64 or RF64 output with eac3to.
Airmiles
19th December 2015, 12:09
r0lZ,
I have updated to version 0.79 but suddenly can't run the program anymore. Windows 10 now says: "This app can't run on your PC. To find a version for your PC, check with the software publisher". Is there anywhere where I can download v0.73 again? That version worked fine for me under my parallels VM.
Hope you can help me out.
r0lZ
19th December 2015, 12:36
Hum, strange. Nothing related to the OS has changed in v0.79. IMO, it's a problem with Windows 10 (still VERY unstable) rather than with BD3D2MK3D.
And sorry, but I don't have v0.73 any more.
I will try v0.79 under Win10 as soon as possible, but I can't do it right now, because a long test encoding is in progress. Be patient...
Anyway, try to download the latest version again. IMO, the problem could be caused by a damaged exe.
Airmiles
19th December 2015, 12:48
OK. Strange, everything worked fine under windows 10 with version 0,73. I will try reinstalling windows 7 and run it again. Then I can always upgrade to windows 10 again.
AKI84
19th December 2015, 16:04
I just tested v0.79 with Windows 10 x64 and it works fine for me. I can't test it in a paralles VM because I don't own a Mac.
I don't have v0.73. I only have v0.72 & v.0.74 on my computer. I uploaded v0.74 to a File Hosting service. Maybe v0.74 works for you.
BD3D2MK3Dv0.74.7z (http://www20.zippyshare.com/v/iUL36aUs/file.html)
r0lZ
19th December 2015, 16:10
Thanks for him, and welcome to the Doom9 forums, AKI84 !
Airmiles
19th December 2015, 18:39
On windows 7 same problem with 0.79. Won't open, saying, this is not a valid windows 32 command (strange since it is a x64 windows 7 that's running). Thanks AKI84!!! Version 0.74 will open, but when I want to open the disc, it says:
Error: invalid command name " get3d playlists"
invalid command name "Get3Dplaylists"
invalid command name "Get3Dplaylists"
while executing
"Get3Dplaylists [file join $::bd_dir BDMV PLAYLIST] $::config(debug)"
(procedure "OpenBD" line 76)
invoked from within
"OpenBD $r"
(procedure "SelectBD" line 9)
invoked from within
What can the cause of this error be? I have done everything as I have always done before (avisyth 2.5 64 bit installed, as is version 0.74 with its toolbox). Would appreciate the help.
AKI84
19th December 2015, 20:17
My guess is that newer versions of BD3D2MK3D don't like to run in a Paralles VM. You could try using a different version of Paralles or try another VM Software like Virtualbox.
I also uploaded v0.72. Maybe that version will work in your VM.
BD3D2MK3Dv0.72.7z (http://www4.zippyshare.com/v/bRUaw5Bp/file.html)
r0lZ
19th December 2015, 20:18
Get3Dplaylists is a function defined in BD3D2MK3D. It has always worked, since it is an essential function called when a BD3D is opened.
I don't know what's happening, but obviously your system is ill, or the copy of BD3D2MK3D you are using are systematically damaged, and in that case, chances are that you have a very bad internet connection.
Anyway, I can't give support for an old version. Have you tried to download the latest version again, as I suggested in my previous post? It should work, and it is developed under Windows 7 64-bit.
Airmiles
20th December 2015, 09:15
OK, seems I copied some errors from unzipping the 7z format on my mac and then copying it to my windows VM. Did everything within windows now and v.079 starts up fine now. It loads the disc, but when I hit "do it", I get the following error:
*** Welcome to BD3D2MK3D v0.79
*******************************************************************************
*** Trying to open "D:\" as a 3DBD...
*** Opening BD disc "D:\"...
*** Filtering 11 MPLS files...
*** 2 3D MPLS files loaded on a total of 11 3D playlists.
*** BD disc or folder "D:\" opened successfully. 2 3D playlists loaded.
Generating project "Jurassic Park 3D\00800"...
*******************************************************************************
Main job started Sun Dec 20 09:12:28 CET 2015.
Saving file "00800.demux.meta"...
Saving file "chapters_2D_no_delay.ogm.txt"...
Saving file "chapters_2D_no_delay.qpfile"...
Saving file "chapters_3D_delay.ogm.txt"...
Saving file "chapters_3D.qpfile"...
-------------------------------------------------------------------------------
*** Demuxing the streams...
Network Optix tsMuxeR. Version 2.6.9. www.networkoptix.com
*** tsMuxeR.exe demux error: child killed: segmentation violation
Command was:
> tsMuxeR.exe "00800.demux.meta" "C:/Users/iMac/Documents/Jurassic Park 3D/00800"
Oops! tsMuxeR has crashed due to a segmentation violation.
This tsMuxeR error happens usually when you try to process a protected commercial BD3D directly.
BD3D2MK3D (and tsMuxeR) cannot decrypt the BD3D, and you have to rip it to an ISO on HDD with a good decrypter program first, and then mount the ISO (with an ISO Mounter program if you use Windows 7 or XP, or with the native mounter under Windows 8 or 10).
You can also install and run the commercial program AnyDVD HD to decrypt the original BD on the fly.
Please retry with a properly decrypted BD3D or ISO.
() 1 %
Strange, because AnyDVD HD is running and has removed protection. Have you come across this before? What can I do about it? And I hope no child was killed in actual life...:-)
Airmiles
20th December 2015, 09:47
OK, r0lZ,
I seem to have it running again. Seems it was a problem with my VM. It is kind of picky when it comes to how the VM is configured regarding access rights to the external BD reader. It seems, when it is shared with the mac, tsMuxer crashes and doesn't recognise it as a decrypted disc. When the access rights to the external device are solely/primarily given to the windows VM in the parallels configuration, it doesn't crash. I have now given access rights to the disc as well as usb ports to the VM only and it now works.
Sorry for wasting your time. I know it is probably to much to provide support to VM users as well. I am not on this forum too much, with busy lives and kids and all, but if somebody has problems with your program on a VM, or you need testing, and I am actually around then I am always glad to help.
Best,
Airmiles
r0lZ
20th December 2015, 12:01
Interesting findings, Airmiles. When I have read that "AnyDVD HD is running" in your VM, I have immediately suspected a problem with the combination of AnyDVD with the VM. AnyDVD is essentially a driver, working at a low level in the system, and it may not be compatible with a VM emulating only a higher level. It seems that it can work, but only with exclusive access.
I'm glad you have found the solution yourself, because I would have been unable to help you. And I remember your proposition to help in case of similar problems with a VM (although I'm not sure we can trust a child killer like you! ;-) In the meantime, I'll add a short sentence about the VMs in the message displayed when tsMuxeR crashes. Thanks for having reported the solution!
Airmiles
20th December 2015, 12:24
Great. Glad to have helped. Keep up the great work.
sfatula
21st December 2015, 10:45
So, I have backed up my copy of a bluray disc via makemkv. The backup plays just fine using VLC, as you know, makemkv removes the protection. I take that backup, and, run it into bd3d2mk3d. It opens fine, and, shows the left and right eye streams on the open bluray tab, along with subtitles, audio. It shows a length of just over 2 hours. All is good. It does the demux, and, the .264 file shows 19GB + 10GB for the mvc. Still correct. It does the encode, and, I end up with a 5GB file with no video. It's just a black screen, sounds plays fine. Confused. This is with v0.79.
I can see the mkvmerge log (the final merge to create the mk3d), and, it shows the input dts-ma file of 5GB, and, a .264 file of only 13MB! The question is, where did the 13MB file come from? The 13MB input file to mkvmerge was named 00800_3D.264. It appears that comes from avs2yuv and x264_x64.exe. So, maybe it has to do with 64bit x264. So, will try turning off 64 bit. Tomorrow, I will see I guess. But strange?
Assuming 32 bit fails in the same manner, any ideas?
r0lZ
21st December 2015, 12:32
I have had that problem (all black frames) only once, when I've tried to update libmfxsw32.dll from the INDE 2015 (a recent development toolkit of Intel). It appears to have a bug causing that problem with DGMVCSource. The bug happens only with some 3DBDs. (In my case, I've noticed it with Creature from the Black Lagoon.) I've tried less recent versions and the new 2016 version too, and they have the same bug. So, finally, I kept the version that is still distributed with BD3D2MK3D (v6.14.11.28 from Nov 2014), that works fine. Curiously, FRIMSource doesn't have that problem when it uses one of the bad libmfxsw32.dll. I don't know why.
If you have an Intel CPU that supports the hardware optimisation, chances are that you have installed the driver, and therefore the libmfxhw32.dll installed with the driver is used instead of libmfxsw32.dll. And if it's a recent version, it has probably the same bug.
So, I suggest to try to encode in software mode (Settings -> MVC Decoder -> Hardware acceleration -> Disabled), or to try the other MVC decoder (Settings -> MVC Decoder -> Use FRIMSource). Note that you don't need to wait the end of the encoding to know if the decoding works correctly. If the process is much faster than usual (after, say, 5% of the encoding), that means probably that x264 is encoding black frames. You can also try to encode this short sample (http://download.videohelp.com/r0lZ/tmp/DGMVCSource%20bug%20with%20libmfxsw32%20v6.15.6.2.7z) (from Creature from the Black Lagoon), to verify if you are experiencing the same bug.
Please try the two solutions above, and report if they worked. I'm also interested in the title of the BD3D that causes the problem, and if you have experienced that problem with other 3DBDs as well. Thanks in advance.
For more information and the history of this bug, see this report (http://rationalqm.us/board/viewtopic.php?f=5&t=324&p=4352#p4352) of the bug to Donald Graft, the author of DGMVCSource, and the last paragraph of this post (http://forum.doom9.org/showthread.php?p=1746627#post1746627), where I explain why I haven't updated libmfxsw32.dll.
sfatula
21st December 2015, 19:15
Turning hardware encode off now, however, over night, it appears 32 bit was working, until it hung? The 00800_3D.264 was 12GB, however, the console window showed how many frames encoded and just sat there, never did the mkvmerge, so, was not sure if it was truly done. No activity per task manager. Hitting keys did nothing, just closed the window and started over with HW encode off. It never showed the text from the echo that it was done (Encoding finished). Definitely have Intel CPU that does hardware acceleration, it's used in kodi. I do have a libmfxhw32.dll, date was 10/02/2015. Sounds pretty new to me. Version 6.15.7.10.
The name of the bluray is Jurassic World 3D. Have not had any trouble with other blurays, but, I don't own a lot of them at this time.
Anyway, it's running, we'll see if it works, and, it will take a long time without hardware. About a day apparently. If it works, I will still try hardware with FRIMSource just to see how that works (and turning back on hardware as AUTO). Any particular reason FRIMSource is not preferred, or, why DGMVCSource is preferred?
r0lZ
21st December 2015, 20:00
Well, in the beginning, FRIMSource was somewhat unstable (according to other users - I have never noticed personally real problems.) Currently, I think that FRIMSource is probably as stable as DGMVCSource. The problem is almost certainly in the Intel libs, not in the avisynth plugins.
Anyway, thanks for the report. I hope we'll be able to pinpoint the culprit, but that's not always easy.
sfatula
22nd December 2015, 18:42
The conversion without hardware on auto worked fine, I got a good mk3d file that plays without blank frames. Now, just for fun, put hardware back to AUTO, and, using FRIMSource. Seems to be encoding. Which step actually uses the hardware accelerator, I guess just FRIMSource, right? avisynth is just as slow as ever, so, I presume it does not.
The demux part is not very time intensive anyway, so, I suppose using hardware or not is mostly irrelevant.
r0lZ
22nd December 2015, 19:00
Yes, it's only the MVC decoder (FRIMSource or DGMVCSource) that can use the hardware acceleration. The rest of the avisynth script, and the x264 encoding are not accelerated. Usually, it's x264 that is the most CPU demanding, and therefore, indeed, enabling the hardware acceleration gives probably only a small improvement on the overall duration of the process.
Anyway, thanks for testing also FRIMSource with hw enabled. I'm curious to know if it works fine, like with Creature from the Black Lagoon.
pistacho
23rd December 2015, 13:42
Since here compared between DGMCSource and FRIMSource there is a third option that can be used, is enough to have installed BDtoAVCHD and MVCsource option appears on the menu:
http://105.imagebam.com/download/EsTA1JocawqwPUAIBVxTBQ/45413/454120817/BD3D2MKV.png
MVCsource (http://forum.doom9.org/showthread.php?t=170004) not has a blank frames or other knows bugs and is compatible with latest Intel Media SDK 2016 (API 1.17) and actual Intel Graphics Drivers.
There are also significant differences in performance (even in SW mode):
Tested with AVSmeter on I7-3770k / HD4000
http://114.imagebam.com/download/aJsLPkPXkYdxdkxoulpzBg/45413/454120818/FPS.png
In a few days I will be able to retest on a Skylake system :)
sfatula
23rd December 2015, 23:03
So, FRIMSource also worked fine. With HW on AUTO. The files are actually the same size, the resultant mk3d files. So, no difference there. Just two tools that do the same thing apparently in the same way. Apparently from the previous post, there's actually a third method that can be used. Though, this is the tiniest part of the process as far as time goes. I just want it to work. :-)
r0lZ
24th December 2015, 09:39
Thanks for the result of your test. Very useful for me.
Yes, decoding speed doesn't matter much. And that kind of test has been made in non-standard conditions, so you can't really extrapolate the real speed of the decoder in normal circumstances. There are benchmarks on the Intel's site pretending that the decoding in hw mode is thousands of times more rapid than in sw mode, but in practice, the gain is only a few %, and the benchmarks are mainly ads for the Intel processors.
And yes, you can also use Pistacho's MVCSource, but you need to install his BDtoAVCHD, and you should take care. Not sure if that bugs have been fixed, but the last time I've checked it, MVCSource had big problems, notably with a periodic inversion of the left and right views. Also, I don't use it myself and I can't give support because I don't know it sufficiently. It appears in the choice of the MVC decoders when BD3D2MK3D detects it, just because I wanted a simple way to test it, and because BDtoAVCHD users may want to use it.
And yes, theoretically all decoders should return exactly the same clip, so if you don't change other settings, the final MKV should be strictly identical in all cases.
Now, the question is: Should I make FRIMSource the default decoder for BD3D2MK3D? Previously, it was less stable than MVCSource, but currently, it seems better. Therefore, I may change the default setting in the next version. Anyway, that setting will not change for existing users, if it has been saved in the config file.
[EDIT] I've reported the problem again at Donald Graft (here (http://rationalqm.us/board/viewtopic.php?f=5&t=324&p=4462#p4462)). I hope he will find the solution.
@Pistacho: Can you help him?
sfatula
24th December 2015, 19:33
I think you should make it the default for now (FRIMSource). Yes, I know the files should be the same, but, when they are, it tells me it works. You could probably save a few people trouble if you make it the new default, for now. According to pistacho, it's faster too. Not that that matters much.
r0lZ
24th December 2015, 19:38
Yep, I'll do it. But Donald Graft has accepted to try to find the problem in DGMVCSource. He is very busy for now, and I don't know if a new version will be ready when I'll release v0.80, but if it's the case and it is confirmed that the bug is fixed, I will probably keep DGMVCSource as the default.
sfatula
24th December 2015, 20:05
If he " confirms" it, let me know, would be happy to retest with my disk.
pistacho
25th December 2015, 19:20
And yes, you can also use Pistacho's MVCSource, but you need to install his BDtoAVCHD, and you should take care. Not sure if that bugs have been fixed, but the last time I've checked it, MVCSource had big problems, notably with a periodic inversion of the left and right views. Also, I don't use it myself and I can't give support because I don't know it sufficiently. It appears in the choice of the MVC decoders when BD3D2MK3D detects it, just because I wanted a simple way to test it, and because BDtoAVCHD users may want to use it.
Yes, this bug is already fixed.
masken
30th December 2015, 22:37
Awesome work :) I too had problems with hardware acceleration on Intel HD Graphics 4400 (HP Elitebook 840), disabled works fine. A humble request; any way to prevent power saving mode on laptops while encoding?
r0lZ
31st December 2015, 10:46
I don't know how to do it, except by manually disabling the power saving mode when you encode.
I know that there are programs available on the net to temporarily disable the feature (while a certain program is running or when a window is opened), but I can't find them any more.
If you wish, I can perhaps write a little program that will simulate mouse moves or key presses so that the system will "think" that someone is still using the computer, but that method has several drawbacks. It will also disable the screen blanker, and the mouse or keyboard activity may interfere with other programs. Therefore, I don't think it's a good solution.
If someone can find a way to disable and enable power saving mode from the command line, I should be able to add these commands in the __ENCODE*.cmd scripts to disable it when the encoding starts and re-enable it when it finishes. But I don't know that commands and even if it's possible. Someone?
[EDIT] "powercfg (https://technet.microsoft.com/en-us/library/cc748940%28v=ws.10%29.aspx)" is the command to do it. It has a lot of options, including the possibility to change the current power scheme (for example to switch from "Power saver" to "High Performance" or the opposite). It can also change any setting within the current power scheme (including the "sleep after" and "hibernate after" settings). It can also examine the current configuration and list the available power schemes. Therefore, it seems that everything is possible.
But I don't know what I should do. I must take into account that the PC may crash during an encoding (for example due to a power failure), or the encoding may be interrupted by the user. In that cases, the original settings will not be restored, and the PC will never go to sleep mode automatically any more, unless the user restores manually the original settings. So, what should I do? IMO, it is simpler to change completely the power scheme and use the High performance scheme during the encoding, and restore whatever was the original scheme when the project has been created when the encoding finishes. That way, if the scheme is not restored, the user will only have to select the original scheme manually to restore it.
But some users may prefer to leave the current scheme, and change only the minimum number of things: the delays for the automatic sleep and hibernate operations. IMO, that's not the best solution, because the "Power saver" scheme may not save much power anymore after a crash. Also, should I change the settings for the PC connected to the DC power only, or also for the PC running on battery? I suppose that an encoding is always made when the PC is connected, but who knows?
It is also possible to force the user to create a special "Encoding" scheme for the encoding, and switch to that scheme automatically only if it exists. The advantage is that the user can freely configure it, but he will have to turn off the sleep and hibernate features anyway.
There are many possibilities. Do you have a preference? Personally, I think that I can add a menu with the list of available power schemes in the GUI, to let the user select the power scheme to use during the encoding, and the one to restore after the encoding. I can also add a menu that will allow the user to restore immediately any power scheme. That may be useful to facilitate the restore after a crash. Is it OK for everybody?
thahandy
1st January 2016, 17:21
Hm. ya tricky.
You can try create a mini program and run it next to BD3D2MK3D which only purpose is to disable sleep/hybernate with a certain delay when cpu load is >50% or so. (this will help a lottttttt of users :cool:)
r0lZ
1st January 2016, 18:32
Well, I have already implemented something similar within BD3D2MK3D. The Power plan can now be changed when the ENCODE.cmd script is launched, and restored when POSTPROCESS.cmd is executed (at the end of the encoding). That works well, but I can't avoid completely the risk that the new power plan stays active in case of a crash. The same thing can certainly also happen if the trick is implemented as a standalone program, with the additional difficulty that it will be necessary to configure it, and it may restore the original power plan too early if the CPU load falls below 50% for a short moment.
I will release a new version soon, probably tomorrow...
thahandy
1st January 2016, 21:07
Maybe you can build in a check when running BD3D2MK3D from last state and after a client or BSOD crash (imho having BSOD is a whole other ballgame and 99.9% NOT related to BD3D2MK3D)
And you have a way to detect ENCODE window is aborted? (= windows closed) As it will not execute POSTPROCESS and so not restore power scheme.
Note:
I'm not using any form of sleep/hibernation when my PC or laptop is connected to AC source unless I said so. It's the first thing I do at clean install. So personal I don't require this at all :rolleyes:
I just want to make sure it's semi "bulletproof". :)
r0lZ
2nd January 2016, 00:03
Yes, a check to verify if the power plan has changed when BD3D2MK3D is opened is a good idea. I will add it...
And no I can't test if the encode window has been closed, since it's the process running in that window that must restore the power plan.
BTW, there is another case that can cause problems. If the user prepares a project while another project is encoding, the "current power plan" will be the plan that has been temporally forced by the encoding process, and the new process will add the command to restore a wrong plan in the POSTPROCESS.cmd file. I have to verify also if the current plan is different than the temporary plan, and if it's not the case, warn the user and offer to restore another plan. Not easy!
I don't use the automatic sleep mode neither, because the guys at M$ are unable to understand that it's not because there is no human working on the computer that the computer is not working! I understand that the screen blanker can be activated when the human is not present, but powering down the PC should happen only when the CPU is (almost) idle for a long time. Since that's not taken into account, I prefer to control myself when I can manually put the computer to sleep. But I understand that simply turning off the automatic sleep mode is not a good solution for everybody.
r0lZ
2nd January 2016, 15:17
OK, here it is. It is now possible to define the power plan to use when encoding. If you do so, you will also have to define the power plan to restore at the end of the encoding (for safety purposes). There are also some useful tools in the Settings -> Power Plans menu, including the possibility to activate another power plan directly from BD3D2MK3D.
When BD3D2MK3D starts, it checks also several things related to the power plans, and it warns you if it detects something wrong. I did my best to be sure that the original power plan is restored or to warn the user if it's not the case, but I can't certify that the power plan will not change after a crash during an encoding and before you launch BD3D2MK3D again. Let me know if you think that something can still be improved.
It is also possible to open the Power Options control panel from the Power Plans menu, but I don't know if that feature works well under all versions of Windows. Please let me know if that feature doesn't work for you.
Also, FRIMSource is now the default MVC decoder, but note that that setting will not change for existing users. I may come back to DGMVCSource later if it doesn't have the black frames problem any more.
v0.80 (January 2, 2016)
- FRIMSource is now the default and recommended MVC decoder. (That setting doesn't change for existing users.)
- Added the Settings -> Power Plans menu to easily avoid problems with the PC going to sleep or hibernate mode.
- Updated the MkvToolnix exes to the latest version (v8.7.0)
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
masken
3rd January 2016, 22:01
Awesome, thanks - will try it :)
r0lZ
4th January 2016, 00:33
DO NOT USE v0.80! MkvMerge v8.7.0 doesn't work!
Sorry, the last thing I did before releasing v0.80 was to check if newer versions of the 3rd party programs were available, and I have updated the mkvtoolnix exes to the latest version, without testing if they work. I just finished an encoding right now, and I have noticed that the final mkv is not produced. After some investigation, my conclusion is that MkvMerge v8.7.0 is totally buggy, at least the Windows version. It cannot mux anything, and is not recognised by the MkvToolnix GUI. I've tried all versions available, and it's always the same problem. I will report the bug to the authors, but in the meantime I have made a new release of BD3D2MK3D that includes the previous version of the mkvtoolnix exes, v8.6.1.
Note: If you have made an encoding and you can't find the final MKV, you don't need to re-encode everything. Just install this version and launch __MUX_3D.cmd to create the MKV.
v0.81 (January 4, 2016)
- Due to huge bugs in MkvMerge v8.7.0, reverted the MkvToolnix exes to the previous version (8.6.1)
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
If you have already downloaded and installed BD3D2MK3D v0.80, you can also simply overwrite mkvmerge.exe, mkvpropedit.exe, mkvinfo.exe and the "data" directory in the toolset directory of BD3D2MK3D with the versions from this MkvToolnix archive: mkvtoolnix-32bit-8.6.1.7z (http://www.videohelp.com/download/mkvtoolnix-32bit-8.6.1.7z). (Nothing else has changed in BD3D2MK3D itself.)
Sorry for the inconvenience.
r0lZ
4th January 2016, 11:01
I forgot to change the version number in v0.81. Don't worry if you still see v0.80. Since the code has not changed, the version number doesn't matter much, as long as you see v0.80 or v0.81 AND Help -> Mkvmerge version shows version 8.6.1. However, if you use Help -> Check for update, it will tell you that v0.81 is available.
I have uploaded a new v0.81 with the correct version number. You can download it if you wish: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
slavanap
4th January 2016, 20:08
Hum, I have never encountered that problem, and honestly I don't think I can do something to avoid it.
There are stupid programs available on the net to simulate a mouse move of key press regularly while a certain window is open, or a certain program is running. Perhaps you can use that kind of trick, but I don't think it's something that should be hardcoded in BD3D2MK3D. After all, it's a Windows bug!
Perhaps there is also a power management option to NOT go into sleep mode when the notebook is connected to the AC power?
There's nice WinAPI function intended for your case:
https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa373208(v=vs.85).aspx
Just call it like this:
SetThreadExecutionState(ES_SYSTEM_REQUIRED|ES_CONTINUOUS);
P.S. Call it in your main program thread of course. Or I can write a simple program that monitors a state of other executable and calls this function.
r0lZ
4th January 2016, 21:00
Thanks for the suggestion, but I can't call WinAPI functions from the command line, and the encoding is made from a batch (.cmd) file only. Anyway, I've found the solution: powercfg.exe. That should work fine with all versions of Windows.
If you wish, you can write a small program to automate the change when a certain program is running (or, IMO, better: when the CPU usage remains high for a long time). I'm sure it will be very useful to others, and perhaps also to me, but I don't need it for BD3D2MK3D. Thanks anyway.
DarkCinema
7th January 2016, 16:11
Hi r0lZ,
I recently came across your great BD3D2MK3D program. I needed a way to keep the 3D Blu-ray PGS subs displaying correctly. Most media-players I tried like the Open Hour A400 and various Android KODI boxes display the subs of a 3D Blu-ray ISO in 2D. With BD3D2MK3D I now can convert to Full Res T&B with burned-in subs using the original 3D Plane information.
I am wondering if it is possible to convert the 3D Blu-ray to 3D MVC MKV with burned-in subs. Maybe in combination with MakeMKV this can be achieved? The MVC-3D MKV files can be played from the Android KODI boxes in I own while the FHD T&B can’t.
See: http://www.makemkv.com/forum2/viewtopic.php?f=1&t=4781
r0lZ
7th January 2016, 16:38
Thanks for your kind words and welcome to the D9 forums!
You can already save as full-size frame sequential mkv (with hardcoded subs if you wish), but not as AVC/MVC, because that would require a totally different approach, due, among others, to the necessity to use another video encoder. In frame-sequential mode, the two streams are encoded in AVC. However, it should be possible to edit __ENCODE_3D.cmd to encode with the intel MVC encoder instead of with the current procedure. But sorry, I'm not interested to add the code to do it automatically, mainly because too few peoples are interested. Note also that the current free MVC encoder (from Intel) doesn't do a good job. IMO, for the same file size, it is much better to encode in Full-T&B or frame-interleaved with x264.
Also, I think that there are other tools closer to what you want to do than BD3D2MK3D. Perhaps you should try the FRIM encoder? I don't think it can hardcode the subtitles, but you can probably ask videofan3d to add that feature. (You will have to generate the 3D subtitles with BD3D2MK3D anyway, but that should be easy.) I have no idea of what should be done to produce the final MKV.
Note also that if you can find yourself the modifications to the AVS script and __ENCODE_3D.cmd to produce the AVC and MVC streams (and, if possible, also the modifications to do to __MUX_3D.cmd to create the final MKV) AND if it is not too difficult to implement that method in BD3D2MK3D, I may do it later. But I can't do it alone, because I don't have the right hardware to test AVC+MVC MKVs.
DarkCinema
7th January 2016, 17:23
Wow that's a lot of information to take in. I am not that skilled in encoders and such. I tried the full-size frame sequential mkv, but it won't play on my TV.
I will have a look at the options you gave. Thanks.
slavanap
9th January 2016, 01:27
There's nice WinAPI function intended for your case:
https://msdn.microsoft.com/ru-ru/library/windows/desktop/aa373208(v=vs.85).aspx
Just call it like this:
SetThreadExecutionState(ES_SYSTEM_REQUIRED|ES_CONTINUOUS);
P.S. Call it in your main program thread of course. Or I can write a simple program that monitors a state of other executable and calls this function.
Thanks for the suggestion, but I can't call WinAPI functions from the command line, and the encoding is made from a batch (.cmd) file only. Anyway, I've found the solution: powercfg.exe. That should work fine with all versions of Windows.
If you wish, you can write a small program to automate the change when a certain program is running (or, IMO, better: when the CPU usage remains high for a long time). I'm sure it will be very useful to others, and perhaps also to me, but I don't need it for BD3D2MK3D. Thanks anyway.
Here's .exe file: http://sendfile.su/1191348
Here's the source if you want to compile it yourself: http://pastebin.com/wMJ2nE0r
r0lZ
9th January 2016, 09:48
Good work! Seems easy to use. I will probably use it instead of the current method using powercfg.exe. But I need two precisions. Can you confirm that the original EXECUTION_STATE is restored when the PC reboots after a crash?
Also, if I use blocksleep to launch x264, the PC will never sleep while the process is running. Fine. But when x264 has finished its job, the whole process is not finished yet. The batch file must still mux the elementary streams to MKV, and that can take up to 15 minutes or so. The question is: When the original execution state is restored because the x264 process ends, is it a risk that the PC goes to sleep immediately, or can I assume that the normal delay before going to sleep (due to no user actions) starts over at that time?
slavanap
10th January 2016, 01:19
Good work! Seems easy to use. I will probably use it instead of the current method using powercfg.exe. But I need two precisions. Can you confirm that the original EXECUTION_STATE is restored when the PC reboots after a crash?
The state restored after child process is terminated. No matter what happened: crash or successful finish. I give the same return code of the child process as return code of blocksleep.exe
Also, if I use blocksleep to launch x264, the PC will never sleep while the process is running. Fine. But when x264 has finished its job, the whole process is not finished yet. The batch file must still mux the elementary streams to MKV, and that can take up to 15 minutes or so. The question is: When the original execution state is restored because the x264 process ends, is it a risk that the PC goes to sleep immediately, or can I assume that the normal delay before going to sleep (due to no user actions) starts over at that time?
Well, I suggest to use blocksleep either for the whole .bat file (run cmd.exe), or use it for every long command. Note, if blocksleep won't be run for about 90 sec (Windows feature), there's a possibility the PC will go sleep. More than that, blocksleep does not change power profile, so if you use "battery save" kind a mode, the x264 performance may be slow.
This blocksleep functionality still has to be tested.
r0lZ
10th January 2016, 10:09
OK, I see. I will have to check it. At least, 90 seconds is enough to launch another blocksleep command. Thanks!
frank
11th January 2016, 13:03
Here 2 Disney BD with the black frame Intel dec bug:
- The Monster AG
- The Monster Uni
With software decoding it works fine.
I use DGMVCsource as standard decoder. Fast and safe on all my devices.
I'm sure Donald Graft will find the bug, he is a good scientist and developer.
BTW: Pistachos (adware) MVC decoder was never faster than DGMVCsource with BD3D2MK3D on my notebooks (I7 3th-5th gen).
r0lZ
11th January 2016, 14:27
Thanks for the info.
Can you try these movies with FRIMSource in hardware mode?
mini-moose
11th January 2016, 17:18
DO NOT USE v0.80! MkvMerge v8.7.0 doesn't work!
There is MkvMerge v8.80 now. Does it fix the issues?
r0lZ
11th January 2016, 20:54
Yes, the problem should be fixed. But I haven't checked v8.80 personally yet. Try to update MkvMerge, but keep the old version in case of...
Also note that the previous version did not work only with specific elementary streams. It worked most of the time.
frank
12th January 2016, 10:13
Can you try these movies with FRIMSource in hardware mode? Monsters Inc 3D: FRIM works in hw mode.
But I had to set platform="hw" to get the hw-acceleration, not platform="" (auto).
Tested with BD3D2MK3D v0.79
I7 5th gen, Win10
r0lZ
12th January 2016, 10:50
Strange. Have you verified the avisynth script generated in "auto" mode? Does it contain the right ooption for FRIMSource? If it's the case, maybe there is a bug to notify to videofan3D?
Anyway, I will have a look muself on the syntax generated by BD3D2MK3D. But I will not be able to verify if hardware mode is used in "auto" mode, bacause I don't have the right CPU.
frank
12th January 2016, 12:43
Yes, I look at the fps too. hw mode is ~30 % faster.
I have edited the FRIMsource param in the script.
I use Avisynth 2.6.0
Laptop Asus UX303LA, I7 5th gen, Intel GFX5500, Win10.
Maybe FRIM has a problem to recognize the new hardware in auto mode, but acceleration worked with "hw".
DGMVCdecode has not this issue.
r0lZ
12th January 2016, 12:52
Even more strange. I thought that it's the Intel library that has to determine if the hardware mode can be used (in auto mode of course), not the avisynth plugin. But I may be wrong.
GamBIT_Rus
17th January 2016, 15:32
BD3D2MK3D - Excellent program, thanks a lot!
Some issues:
1. Forced subs cant be hardcoded. While it is shown in movie.
I got many bd3d-iso with the forced subs in pgs, but each time I try to hardcode it, I get an error and braking the process before encoding the video. Like that:
Avisynth error:
Script error: there is no function named "SupTitle"
(__ENCODE_3D_MOVIE.avs, line 53)
x264 [error]: could not open input file `-'
or smth like that:
Done with warnings!
* No forced captions in "00001.track_4608.Rus_forced.2D.sup"! Stream skipped.
* BDSup2Sub "00001.track_4608.Rus_forced.2D.sup": No forced subtitles found.
Generating the avisynth script anyway. You may have to convert the subtitles to IDX/SUB manually.
* No forced captions in "00001.track_4608.Rus_forced.2D.idx". Stream skipped.
I tried to choose between different discs & forced subs - the same. Both "Hardcode subtitle methods". BDSup2Sub ++ & jar (I got java).
Sometimes happens the successful hardcode of the full sub stream. Forced subs - never. As it doesnt exist at all, although is shown in the list at 2 tab.
Another subs-problem is - auto-forced subs do not play in rip even at the PC. "Forced subtitles (auto)" point is present in MKV, and it tries to play as default, but empty always.
My opinion - BD3DMK3D doesn't read correctly forced subs, while shows a lot of it. Or the demuxing process gives the empty stream, or the program doesnt see it.
2. Would be great if BD3DMK3D could set checkbox "Exit and encode after successful demux" on. It's boring to set it manually every time the process started. Please make this setting in the options.
And would be great having option "low cpu priority" in the options too (such cmd-file is made anyway, why not to use it?)
3. h.265 encoded files are not playable at the LG 4K TV. Some 265-files made in DVDFab are playable. Tried different options - couldn't understand what's wrong with BD3D2MK3D. At the PC everything is OK. What is needed for TVs?
r0lZ
17th January 2016, 16:29
Hi, GamBIT_Rus, and welcome to the Doom9 forums.
1. The "No forced captions" warning happens only when, well, there are no forced captions in a subtitle stream.
It might be difficult to determine the right stream to encode, because it depends of the authoring of the original BD.
In some BDs, the same subtitle stream contains the forced and non-forced captions. In that case, the BD usually contains only a single stream in that language, and the forced captions are individually flagged as forced within the stream. You should select that stream, but with the "(forced captions only)" extension if you don't want to hardcode all subtitles. Unfortunately, it is impossible to count the number of forced captions in a stream without demuxing it, and it's way too long to do it when the BD is loaded in the GUI. So, you have to try yourself. If the subtitle stream doesn't contain forced captions at all, you'll get the warning, and the stream is skipped (and therefore not hardcoded). That's not a bug.
The second method to include forced captions in a BD is to create two streams in the same language. One stream contains all captions (including the forced captions, but they are not flagged as forced), and the other stream contains only the forced captions (again not flagged as forced). You have therefore to select the right stream. And in that case, you should NOT select the stream with the "(forced captions only)" extension, because since the stream has no forced flags, it will be skipped. You should instead tick the "Forced" checkbox, that instructs BD3D2MK3D that all captions in that stream are forced.
Unfortunately, in that second case, it is not possible to know for sure if it's the first or second stream in your language that contains the demuxed streams. And other streams in the same language can also be present, such as the subtitles for the director comments or the hearing impaired. To know what stream you should select, the best way is to play the MPLS with a good player that shows you all subtitle streams (in the same order than in the BD). I use PotPlayer for that purpose and it is easy to locate the stream with all subtitles. Locating the stream with the forced subtitles only might be more difficult, but if there are only two streams in your language, it's necessarily the other stream.
If you wish, you can also simply tick all streams in your language, to demux them all. When they are demuxed, you can easily load them in BDSup2Sub to examine them. Then, you must edit the AVS script to modify the file name of the stream to hardcode, and delete the unnecessary streams from the __MUX_3D_OPTIONS.txt file. That's not difficult, and you can be sure of the result.
You should now understand why BD3D2MK3D shows each subtitle twice in tab 2. When the first authoring is used and there are forced subs, you can use the "(forced captions only)" variant to extract the subtitles with the forced flag only. When the second authoring is used, they are useless (and always empty) and you must locate the right stream yourself, with a good player.
Anyway, there is no bug in the detection of the subtitle streams. There is currently nothing that can analyse the subtitle streams sufficiently rapidly without demuxing the streams to present you the complete information, and you have to figure out yourself what stream to use.
The "there is no function named "SupTitle"" problem is more difficult to understand. I have never encountered it, and if you don't try to add yourself a subtitle in the AVS script, and if you encode the final MKV with __ENCODE_3D.cmd (and not with another program!) it should work. Maybe for whatever reason your PC cannot run SupTitle.dll? Can you verify that it is in the "toolset" directory of BD3D2MK3D, with SupCore.dll, msvcp100.dll and msvcr100.dll ? Also, in the AVS script, the command LoadPlugin("path\to\BD3D2MK3D\toolset\SupTitle.dll") should not be commented out. (It should NOT begin with the "#" character). If all these conditions are met, the error message should never be displayed.
If really SupTitle doesn't work for you, try to change the "Hardcode subtitle method" in the Settings menu, and select VobSub. The quality is less good, but at least that plugin doesn't need M$ libraries to work, and it should be easier to run.
2. Sorry, but IMO, it is very important that the user waits at least until the demux process has started, just to be sure that everything works well. And it is not difficult to tick that box at that time.
3. The compatibility of the players with h265 depends of the player, its codecs and the hardware. I can't tell you what settings to use for YOUR TV. IMO, for a good compatibility, you should NOT use x265, still very new and somewhat experimental. (BTW, I have added the support for x265 in BD3D2MK3D at the request of some experienced users, but I can't assume the responsibility if that doesn't work. And I have added a warning when you select it. Have you read it?) You have to figure out yourself the parameters suitable for your TV. And the fact that DVDFab's encoding in h265 work fine means just nothing. I don't know its h265 encoder, but I know that it encodes in h264 with very basic settings (hence the bad quality) and x264 or x265 are much more powerful encoders. But you have to learn how to use them. Also, honestly, personally I don't use x265, and therefore I don't know it well.
GamBIT_Rus
18th January 2016, 11:42
Hello! Thanx for answer.
Now I've found that the problem is BD3D2MK3D shows the subs streams as they are twice, with fake "forced' streams. Let's look
here are screenshots
http://i73.fastpic.ru/big/2016/0118/7a/ee37968299fd452cc0e1315f5e9a897a.png
Rus Eng Rus Eng. 4 streams.
Really - Rus Full, Eng, Rus forced, Eng. Sadly but isnt pointed which one full or forced. Maybe due to BD author, dont now. But players commonly do now what to do with it.
Further
http://i73.fastpic.ru/big/2016/0118/32/311343d8614837cf0ee506457cbd4832.png
any attempt to use the forced subs will bump with the error until you somehow begin to know that exactly the second stream (and exactly with no checkbox forced on) is forced indeed. worth to be genius, isnt it? :-))
an attempt to use that fake forced subs-streams will give an error and interrupt. its been long to understand this to me, each time you must wait whole BD3D demux.
By the way, I offer yoг to set checkbox "Exit and encode after successful demux" on by default. It wouldnt be complex to uncheck the box to smbd who anyway wants to stop process after dumux. To the majority it isnt necessary, I think, only annoying.
So, at first sight the problem may be solved by finding out which subs-stream is forced. That may be not easy if the forced subs are written 5 times a film, for ex. So, the better way could be if BD3DMK3D would not show "fake" channels that produce its crash. And if a BD does really contain any mark of "forced" or not stream is - to show it (for a coder to understand if a stream is full or forced only). If it is possible to make.
What for 265 - this codec is very effective, equally twice to 264. Huge CPU usage to code, but it costs. 4K Tvs support it in common, but not so easy like 264. So it does matter to code correctly. DVDFab has given my only one 265 movie to play easily like 264. BD3DMK3D no one. I want to understand why. Media info still doesnt make me understand. Maybe reframes or smth. Asking to know. Full SbS or Full O/U are made for 4K internal players, to watch this instead of BD, so its important that 265 would run easy.
By the way, totally agree that x264 gives the best quality, so want to figure out with x265. Think you underestimate to power and future of 265 codec. It's great you added this into a program.
r0lZ
18th January 2016, 13:48
So, at first sight the problem may be solved by finding out which subs-stream is forced. That may be not easy if the forced subs are written 5 times a film, for ex. So, the better way could be if BD3DMK3D would not show "fake" channels that produce its crash. And if a BD does really contain any mark of "forced" or not stream is - to show it (for a coder to understand if a stream is full or forced only). If it is possible to make.
Re-read my previous post and you will understand that it is unfortunately impossible to do what you suggest. There is NO indication that a subtitle stream is globally forced. And there is NO safe way to know if a specific stream contains forced subtitles without demuxing it. Unfortunately, the commercial BDs are NOT made to facilitate their conversion to SBS or T&B by a program like BD3D2MK3D. :(
Depending of the authoring program, the forced subtitles can be authored in two totally different ways. They can be included within normal streams and individually flagged as forced within that stream (method 1), or two totally different streams can be added, one for the normal subtitles and one for the forced subtitles only (method 2).
In fact, the content of a stream can be one of the following:
Only normal captions, nothing forced. (Can be present with methods 1 and 2).
Normal captions including some forced captions (individually flagged as forced). It's the authoring method 1.
Only forced captions, but without any indication that all captions are forced. It's the authoring method 2.
Only forced captions, with all captions being flagged as forced. It's also authoring method 2, but somewhat better. Unfortunately, this case is very rare.
Since there is nothing that tells if a stream is globally forced or not, it is theoretically possible to discover only if some or all captions within the stream have been flagged as forced (cases 2 and 4). But that requires to analyse the subtitle stream. And analysing the subtitle stream requires to demux it. And demuxing a stream from a long movie takes age! Do you really want to wait 20 minutes or so just to be able to see tab 2 with (more or less) correct information about the forced subtitles? I don't think so. And anyway, case 3 will not be discovered, and therefore it is impossible to display that information without big risks of errors. That are the facts. And we must live with them.
That's why BD3D2MK3D offers both possibilities to define yourself what you want to do.
If you're interested in all captions (case 1), you should just select the corresponding stream.
If you're interested in the forced captions from a stream containing also non-forced captions (case 2), you should select the "forced captions only" variant (what you call "fake" stream).
If the forced captions are in a specific stream containing ONLY forced captions (cases 3 and 4), you should select that stream AND tick the "Forced" flag (to tell BD3D2MK3D that that stream is globally forced).
Same as point 3. But in addition, if all captions are forced in a stream and you have NOT ticked the Forced flag, BD3D2MK3D is smart enough to correct automatically your error and set the global forced flag after having demuxed and analysed the stream. Finally, the result is strictly identical than case 3.
As you can see, all cases are necessary. I can't simply remove the "forced captions only" fake stream, as the users will have no way to mux or hardcode a stream with the forced captions any more if the BD has been authored with method 1.
Your findings are exactly what I have explained in my previous post. Except that the "forced captions only" streams are not "fake". They correspond to the option "export only forced subtitles" of BDSup2Sub. And if there are no forced subtitles in the stream, contrary to what you wrote, it DOESN'T CRASH. It just ignores the stream and issues a warning. IMO, it's the most reasonable solution.
The "forced" checkbox, as explained above, has its utility too. When a BD has been authored with the second method (like yours), the "forced captions only" streams contain no captions and it is useless to select them (but it's not an error). But if you know (like in your example) that the second Russian subtitle contains the forced captions, you should tick the "forced" checkbox. You will see that the "forced captions only" stream becomes unavailable, because it doesn't make sense to extract the forced captions from a stream containing only forced captions. And, more importantly, when BD3D2MK3D build the MUX_OPTIONS files, it knows that that stream is globally forced, and that it must set the forced flag for the MKV stream. The players will be able to display the language and type of stream correctly. It's not possible if you don't tell BD3D2MK3D what are the forced streams and what are the normal ones. (Of course, if you just want to hardcode the forced subtitles, it is not necessary to tick the "Forced" box, since the subtitles are never included as a stream in the final MKV. But that doesn't hurt to do it.)
I have also explained in my previous post that it is easy to find what subtitle stream contains what with a good software player. It's also why there is a "Preview MPLS" button in tab 1. I have installed PotPlayer on my PC, and since it is associated with the MPLS files, when I click that button, the movie is played automatically (in 2D). A simple look at the Subtitle menu of PotPlayer can tell you what stream contains what, and if a specific stream contains also some forced captions.
In conclusion, that may seem complex, but it's because the authoring of the BDs is complex. There is no indication in the MPLS file that tells if a stream is forced or not, and if there are forced captions among the normal captions in a specific stream. Even when the streams are demuxed, it is still not possible to know for sure if a specific stream is globally forced or not. Only an human can do that without problem. So, BD3D2MK3D must handle all possibilities, and it's the responsibility of the user to select the right stream and options.
However, I must agree that tab 2 may be currently somewhat confusing. Perhaps I could add a button to toggle between method 1 (with the "forced subtitles only" streams) and method 2 (only the main streams, with the "Forced" box to declare any stream as globally forced). And, if BD3D2MK3D detects that there are several streams in the same language, it can perhaps assume by default the method 2. However, it's somewhat dangerous, because several streams in the same language can also be present with method 1 (for example the main Russian stream with some forced subtitles, and a stream with the director comments). In that case, BD3D2MK3D will assume wrongly method 2, and it will be the responsibility of the user to change the display mode to method 1. Is it really simpler to understand? I don't think so, but if several users prefer that method, I can implement it. Just let me know.
Anyway, I have never seen a BD with both methods 1 and 2. So, if the user selects the "Forced" option for a specific stream, it is perhaps possible to disable all "forced captions only" fake streams at the same time, instead of only for the current stream. I think I'll do that right now...
frank
19th January 2016, 04:12
Originally Posted by r0lZ:
I have installed PotPlayer on my PC, and since it is associated with the MPLS files, when I click that button, the movie is played automatically (in 2D). A simple look at the Subtitle menu of PotPlayer can tell you what stream contains what, and if a specific stream contains also some forced captions.Best method. No need to change B3D2MK3D.
frank
19th January 2016, 04:29
Latest example with the DGMVCsource black frame bug: EVEREST (2015)
FRIM works in hw mode.
EDIT:
The bug only exists on my I7 5th gen with GFX5500 (Intel 20.19.15.4300, ASUS Zenbook)
Dell XPS I7 3th gen GFX3000 (Intel 9.17.10.4229) works.
hw mode: DGMVCsource 19 fps, FRIMSOURCE 14 fps
r0lZ
19th January 2016, 09:54
Best method. No need to change B3D2MK3D.
I have already modified it slightly. But it will still be necessary to use a player to examine the subtitles, especially when method 2 is used.
Latest example with the DGMVCsource black frame bug: EVEREST (2015)
FRIM works in hw mode.
Thanks. That confirms definitively the DGMVCSource bug. I hope it will be fixed soon...
GamBIT_Rus
20th January 2016, 16:38
Re-read my previous post and you will understand that it is unfortunately impossible to do what you suggest. There is NO indication that a subtitle stream is globally forced. And there is NO safe way to know if a specific stream contains forced subtitles without demuxing it. Unfortunately, the commercial BDs are NOT made to facilitate their conversion to SBS or T&B by a program like BD3D2MK3D. :(
Depending of the authoring program, the forced subtitles can be authored in two totally different ways. They can be included within normal streams and individually flagged as forced within that stream (method 1), or two totally different streams can be added, one for the normal subtitles and one for the forced subtitles only (method 2).
In fact, the content of a stream can be one of the following:
Only normal captions, nothing forced. (Can be present with methods 1 and 2).
Normal captions including some forced captions (individually flagged as forced). It's the authoring method 1.
Only forced captions, but without any indication that all captions are forced. It's the authoring method 2.
Only forced captions, with all captions being flagged as forced. It's also authoring method 2, but somewhat better. Unfortunately, this case is very rare.
Since there is nothing that tells if a stream is globally forced or not, it is theoretically possible to discover only if some or all captions within the stream have been flagged as forced (cases 2 and 4). But that requires to analyse the subtitle stream. And analysing the subtitle stream requires to demux it. And demuxing a stream from a long movie takes age! Do you really want to wait 20 minutes or so just to be able to see tab 2 with (more or less) correct information about the forced subtitles? I don't think so. And anyway, case 3 will not be discovered, and therefore it is impossible to display that information without big risks of errors. That are the facts. And we must live with them.
That's why BD3D2MK3D offers both possibilities to define yourself what you want to do.
If you're interested in all captions (case 1), you should just select the corresponding stream.
If you're interested in the forced captions from a stream containing also non-forced captions (case 2), you should select the "forced captions only" variant (what you call "fake" stream).
If the forced captions are in a specific stream containing ONLY forced captions (cases 3 and 4), you should select that stream AND tick the "Forced" flag (to tell BD3D2MK3D that that stream is globally forced).
Same as point 3. But in addition, if all captions are forced in a stream and you have NOT ticked the Forced flag, BD3D2MK3D is smart enough to correct automatically your error and set the global forced flag after having demuxed and analysed the stream. Finally, the result is strictly identical than case 3.
As you can see, all cases are necessary. I can't simply remove the "forced captions only" fake stream, as the users will have no way to mux or hardcode a stream with the forced captions any more if the BD has been authored with method 1.
Your findings are exactly what I have explained in my previous post. Except that the "forced captions only" streams are not "fake". They correspond to the option "export only forced subtitles" of BDSup2Sub. And if there are no forced subtitles in the stream, contrary to what you wrote, it DOESN'T CRASH. It just ignores the stream and issues a warning. IMO, it's the most reasonable solution.
The "forced" checkbox, as explained above, has its utility too. When a BD has been authored with the second method (like yours), the "forced captions only" streams contain no captions and it is useless to select them (but it's not an error). But if you know (like in your example) that the second Russian subtitle contains the forced captions, you should tick the "forced" checkbox. You will see that the "forced captions only" stream becomes unavailable, because it doesn't make sense to extract the forced captions from a stream containing only forced captions. And, more importantly, when BD3D2MK3D build the MUX_OPTIONS files, it knows that that stream is globally forced, and that it must set the forced flag for the MKV stream. The players will be able to display the language and type of stream correctly. It's not possible if you don't tell BD3D2MK3D what are the forced streams and what are the normal ones. (Of course, if you just want to hardcode the forced subtitles, it is not necessary to tick the "Forced" box, since the subtitles are never included as a stream in the final MKV. But that doesn't hurt to do it.)
I have also explained in my previous post that it is easy to find what subtitle stream contains what with a good software player. It's also why there is a "Preview MPLS" button in tab 1. I have installed PotPlayer on my PC, and since it is associated with the MPLS files, when I click that button, the movie is played automatically (in 2D). A simple look at the Subtitle menu of PotPlayer can tell you what stream contains what, and if a specific stream contains also some forced captions.
In conclusion, that may seem complex, but it's because the authoring of the BDs is complex. There is no indication in the MPLS file that tells if a stream is forced or not, and if there are forced captions among the normal captions in a specific stream. Even when the streams are demuxed, it is still not possible to know for sure if a specific stream is globally forced or not. Only an human can do that without problem. So, BD3D2MK3D must handle all possibilities, and it's the responsibility of the user to select the right stream and options.
However, I must agree that tab 2 may be currently somewhat confusing. Perhaps I could add a button to toggle between method 1 (with the "forced subtitles only" streams) and method 2 (only the main streams, with the "Forced" box to declare any stream as globally forced). And, if BD3D2MK3D detects that there are several streams in the same language, it can perhaps assume by default the method 2. However, it's somewhat dangerous, because several streams in the same language can also be present with method 1 (for example the main Russian stream with some forced subtitles, and a stream with the director comments). In that case, BD3D2MK3D will assume wrongly method 2, and it will be the responsibility of the user to change the display mode to method 1. Is it really simpler to understand? I don't think so, but if several users prefer that method, I can implement it. Just let me know.
Anyway, I have never seen a BD with both methods 1 and 2. So, if the user selects the "Forced" option for a specific stream, it is perhaps possible to disable all "forced captions only" fake streams at the same time, instead of only for the current stream. I think I'll do that right now...
Thanks a lot for such a big answer!
Briefly:
- Yes, I'd like to wait 20 minutes (or less if I use the SSD) if BD3D2MK3D will show me the much precise result with the subs. Perfect would be having a button like "analyse" or smth. I think it would save much more time than having the wrong rip.
- Would you mind to explain the difference between setting the checkbox "forced" on the real subs-channel, and choosing the fake forced channel below?
- Do I have to choose any subs-stream in tab2 if I only want to hardcode one of the streams? Will BD3D2MK3D always demux that stream if I choose it to hardcode?
- If the second subs-stream contains only the forced subtitles (maybe not marked as forced but that type only) than do I have to set the checkbox "forced"? Will it give anything else besides the flag "forced" setted on this sub in mkv?
Also I I've noticed, my TV(at least) will not give the ability to select the subs if at least one has this forced flag - usually that's enough to mark such stream as "default". Forced flag often makes the other streams unchangeable for the hardplayers. Even more, any subs from BD play never on my LG, only textual SRT, that used to find for compiling the mkv. That's why I want to hardcode the nice raster subs from BD (forced of course).
- Would you mind to explain the figures of additional depth of hardcoding subs? What means every step? How much the depth could be, how much pixels will be shifted to gain the depth and so on. Will it make the 2D raster subs the 3D?
- Is it possible to know what settings would be in h.264 if I code Full O/U with the forced to L5.0 compatibility? For ex, [veryslow]+[compatibility 5.0] how much the reframes will give? and so on. Now the only way to me is to wait for the process ending.
Thanks.
r0lZ
20th January 2016, 19:50
Thanks a lot for such a big answer!
Briefly:
- Yes, I'd like to wait 20 minutes (or less if I use the SSD) if BD3D2MK3D will show me the much precise result with the subs. Perfect would be having a button like "analyse" or smth. I think it would save much more time than having the wrong rip.
I don't think I'll do that. It's totally useless, since you can already examine the subtitles with a player, as explained above, and much more rapidly. Also, it's a big work for me, and since you are probably the only guy who want that, I don't want to spend too much time on that feature. Sorry.
- Would you mind to explain the difference between setting the checkbox "forced" on the real subs-channel, and choosing the fake forced channel below?It's also something I have already explained two times. "Forced subtitles only" extracts the forced subtitles from a stream authored with method 1. The "Forced" flag instructs BD3D2MK3D that ALL subtitles of the stream (made with method 2) are forced. Re-read my two previous posts for more info.
- Do I have to choose any subs-stream in tab2 if I only want to hardcode one of the streams? Will BD3D2MK3D always demux that stream if I choose it to hardcode?
No, and yes. Tab 2 is used to specify the streams to mux in the final MKV, and the Hardcode subtitle option is independent. Normally, when you hardcode a stream, you should not tick any subtitle stream in tab 2. (But BD3D2MK3D will automatically ignore a stream selected in tab 2 if that stream is used in the hardcode option.) Of course, to mux or hardcode it, a stream must be and will be demuxed.
- If the second subs-stream contains only the forced subtitles (maybe not marked as forced but that type only) than do I have to set the checkbox "forced"? Will it give anything else besides the flag "forced" setted on this sub in mkv?No. If you hardcode the stream, setting the Forced flag as no effect. Again, I have already explained this.
Also I I've noticed, my TV(at least) will not give the ability to select the subs if at least one has this forced flag - usually that's enough to mark such stream as "default". Forced flag often makes the other streams unchangeable for the hardplayers. Even more, any subs from BD play never on my LG, only textual SRT, that used to find for compiling the mkv. That's why I want to hardcode the nice raster subs from BD (forced of course).Forced doesn't mean that the TV must display it. It's a bug of your TV.
And indeed, most hardware players (including my Samsung TV) can only display SRT files (and usually only if they are outside the MKV container). And most other players display the 3D subtitles in 2D, and you end up with two little 2D subtitles instead of a single 3D subtitle. It's why I hardcode also often the subtitles when the audio is not in my native language. It's the only way to obtain good 3D subtitles regardless of the player you use.
- Would you mind to explain the figures of additional depth of hardcoding subs? What means every step? How much the depth could be, how much pixels will be shifted to gain the depth and so on. Will it make the 2D raster subs the 3D?
Normally, you should leave the additional depth to 0, at least if you convert an original stream from the BD with the right 3D-plane. However, in some rare cases, the subtitles are too close to the objects, and give the impression to stick to them. In that case, adding 1 or 2 pixels of additional depth might be a good idea.
When you convert a stream for which the 3D-plane is empty or when you don't have the 3D-plane, the additional depth is the only way to force a global depth for all subtitles. In that case, unfortunately, you have to guess what depth you should use. Personally, I try often 8 as a starting point.
Negative values are behind the surface of the screen, and positive values are toward the spectator. Usually, the values in the 3D-planes are between -6 and 30, but of course, that depends of the 3D effects of the movie.
- Is it possible to know what settings would be in h.264 if I code Full O/U with the forced to L5.0 compatibility? For ex, [veryslow]+[compatibility 5.0] how much the reframes will give? and so on. Now the only way to me is to wait for the process ending.
Thanks.
You can specify any additional argument for x264 in the "Additional options" field of tab 4, including the number of reference frames. But you have to be cautious and not give incompatible arguments. x264 may issue a warning or, in some cases, refuse to work, but most of the time, it will accept your settings, and produce an odd h264 stream. Personally, I think that the default options are very good, and I use the preset Slower most of the time. IMO, there is no need to specify additional parameters.
Anyway, please post questions about x264 and h264 parameters in the relevant forums. I'm not an expert in encoding, and much more knowledgeable peoples can reply if you use the right forum.
r0lZ
21st January 2016, 14:48
OK, here is the new version.
I have changed somewhat the tab 2 so that it should be more obvious that there are two authoring systems for the forced subtitles. BD3D2MK3D does its best to guess what authoring system has been used and selects it automatically. But since it has no way to know the content of the subtitle stream, it's only a guess and it can be wrong. You have to verify yourself the content of the subtitles with a good player, as explained in my 3 posts above. (Of course, if you're not interested in forced subtitles, you don't need to worry. Just be sure to select the streams you're interested in.)
There are other minor improvements and a bug fix too.
v0.82 (January 21, 2016)
- New option to select the authoring mode of the forced subtitles in tab 2, as an attempt to clarify the subtitles options.
- Added the "Edited by" tag in tab 3, and modified some desctiptions of the tags.
- Tools -> Clone Subtitle Positions: Added the possibility to process only the subtitles loacted in the upper half of the screen.
- Fix: Tools -> Convert Subtitle to 3D: Malformed XML after adding depth tags in some circumstances
- Updated the MkvToolnix exes to the latest version (v8.8.0) because the bugs in v8.7.0 have been fixed.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
GamBIT_Rus
23rd January 2016, 04:31
May I guess a little more suggestions?
- Would be useful to choose the destination of the resulted rip.
For ex, 50 Gb for iso-file, 50 Gb for demuxed project and 30 for rip will give ~130, while the empty space of SSD may be less. The main work runs with the project, while writing the final file doesnt demand a good speed. And often this file will be removed to another disk anyway. For ex, I'd like to choose a project stored on SSD, but result written on the HDD.
- An ability to set the priority low seems to be useful. This doesnt make the encoding slower if a user doesnt make smth. But if he does then it takes its reasons, so the encoding process have not to interfere. Of course a user may set it manually in the task manager, but it's worth if a program would do this itself. IMO.
- Are you able to make choosing a range of timeline to encode? By the chapter or by the time interval. It's good for checking a result without having to spent a lot of time waiting for the whole movie to be encoded (especially with the strong settings of quality). Many transcoding progs have such an ability.
- Is it possible to return to main window after the encoding ends, like in any other windows-based program? It's good if I want to see the used settings or want to encode again with the small change of it. Unfortunately now the program ends at the final and can't reopen the project.
- Would be great if BD3D2MK3D could save project and reopen it like many programs. Demuxing each time takes a long. Sometimes it happens 5 times or more, just to check smth. This program cant work directly with iso, so the reuse of a done demux would help a lot.
- Another "wish" is if the program could not harm of the system suspend or hibernate. I've noticed that if I temporary stop the system and continue then the encoding will always give the unplayable file. Sometimes the encoding lasts for 1,5-2 days, and at the night it would be very pleasant if a computer was in the power-safe state. :-)
Thank you.
r0lZ
23rd January 2016, 11:58
- Would be useful to choose the destination of the resulted rip.
For ex, 50 Gb for iso-file, 50 Gb for demuxed project and 30 for rip will give ~130, while the empty space of SSD may be less. The main work runs with the project, while writing the final file doesnt demand a good speed. And often this file will be removed to another disk anyway. For ex, I'd like to choose a project stored on SSD, but result written on the HDD.
Totally agree. It's something on my ToDo list since a long time, but it has never been a priority. I will do it right now...
(However, note that the ISO must not be on the same disc than the project. The demux operation will be much faster if they are on two different physical discs, unless you use a SSD of course.)
- An ability to set the priority low seems to be useful. This doesnt make the encoding slower if a user doesnt make smth. But if he does then it takes its reasons, so the encoding process have not to interfere. Of course a user may set it manually in the task manager, but it's worth if a program would do this itself. IMO.
It's already implemented. If you use the option "Exit and encode after a successful demux", the encoding is automatically launched at low priority. Otherwise, you should launch __ENCODE_3D_LOW_PRIORITY.cmd manually. It's a very simple batch file that launches __ENCODE_3D.cmd at low priority.
- Are you able to make choosing a range of timeline to encode? By the chapter or by the time interval. It's good for checking a result without having to spent a lot of time waiting for the whole movie to be encoded (especially with the strong settings of quality). Many transcoding progs have such an ability.
No. Unfortunately, the MVC decoders are currently unable to seek to a specific time in the movie, and therefore it is not possible to begin the encoding at a certain point. However, it is (relatively) easy to stop it at any point. It's not possible with the GUI, but you can easily change the total number of frames to encode in the __ENCODE_3D.cmd script. The number of frames is present two times in the script, and 4 times if you encode in 2-pass. You have to change all occurrences. Have a look at the script, and you'll see that it's easy to do. Of course, to do that, you cannot use the "Exit and encode after a successful demux" option.
If you want to cut the movie just at a chapter point, have a look at chapters_3D.qpfile. It contains the frame numbers of the beginning of all chapters.
- Is it possible to return to main window after the encoding ends, like in any other windows-based program? It's good if I want to see the used settings or want to encode again with the small change of it. Unfortunately now the program ends at the final and can't reopen the project.
The main window is closed only if you use the "Exit and encode after a successful demux" option. I did that option to let the user launch a demux and an encode at the evening. Normally, he should use also the option to shut down the computer, and in the morning, everything should be finished and the computer down. Therefore, it doesn't make sense to leave the main program opened.
Also, I don't want to have to leave the window opened during the encoding, because that's only an useless waste of memory. Depending on your encoding options, x264 may need that memory.
If you want to remember easily what encoding options you have used for your last project, you can tick Settings -> Save Settings on Exit. When you will re-open the program, you'll see the last encoding options in the last tab.
Furthermore, the encoding options are documented in two places. x264 stores the encoding options in the h264 stream, and a good program like MediaInfo or PotPlayer can show you that info at any time. However, it contains all options the encoder has really used, and not the simplified options provided by the user (such as the Preset). It's why BD3D2MK3D saves also the arguments it has used for the command line in the ENCODER_SETTINGS tag. Again, that tag (along with the tags you may have defined yourself in tab 3) can be displayed by MediaInfo or PotPlayer. You can also open the __TAGS_3D.xml in a text editor to examine the ENCODER_SETTINGS tag. (Note that that tag is only saved if the "Include encoder settings tags" option is ticked in tab 3.)
Also, the __ENCODE_3D.cmd script (with the command line used to compute the h264 stream) is automatically included as an attachment in the final MKV. You can extract it with MkvToolnix and gMkvExtractGUI, or open it in a text editor if you have still the project on disc.
As you can see, I did my best to document the encoding options as far as possible. I don't see any reason to leave the window opened to add still another way to verify the encoder settings.
- Would be great if BD3D2MK3D could save project and reopen it like many programs. Demuxing each time takes a long. Sometimes it happens 5 times or more, just to check smth. This program cant work directly with iso, so the reuse of a done demux would help a lot.
Again, if you do not tick the option to exit after an encoding, you can relaunch the project several times. And the only thing that may be long to do is to fill the tags in tab 3. It's why you can save and reload them if you wish. That way, you can easily re-create a new project with the same movie. I don't think that selecting the streams again or verifying the encoder settings is so time consuming that it would require to save the project.
Anyway, IMO, restarting the project is not the best method to try different settings. I did my best to produce files with easy to understand file names and comments, so that the user can easily modify them AFTER the generation of the project. If, for example, you want to change an x264 option, you can simply edit __ENCODE_3D.cmd (and __tags_3D.xml to reflect the change in the ENCODER_SETTINGS tag) and relaunch it.
Similarly, if you know Avisynth, you can edit the AVS script to add filters or effects if you wish.
Also, if you just want to change some muxing options (such as the order or labels of the audio or subtitle streams), you can edit __MUX_3D_OPTIONS.txt and then launch __MUX_3D.cmd to remux the movie without having to re-encode it.
Similarly, you can change the labels of the chapters points by editing chapters_3D_delay.ogm.txt.
One of the big advantages of BD3D2MK3D over its commercial competitors is that possibility to modify almost everything manually. Commercial programs are black boxes, and if you are not happy with the result, you're stuck. BD3D2MK3D creates just a basic project, that you can use as it is if you're happy, but that you can also modify if you wish.
(BTW, it's also a reason why I don't want to set the Exit and encode after a successful demux option on by default. It's not the philosophy of BD3D2MK3D. If you prefer a simple "one button click" program, you should buy DVDFab and accept its bad quality.)
- Another "wish" is if the program could not harm of the system suspend or hibernate. I've noticed that if I temporary stop the system and continue then the encoding will always give the unplayable file. Sometimes the encoding lasts for 1,5-2 days, and at the night it would be very pleasant if a computer was in the power-safe state. :-)
The problem of the bad encoding after an interruption is not related to BD3D2MK3D. It's x264 that doesn't support to be interrupted by a sleep/hibernate. If you want a fix for that problem, contact the authors of x264. I can't do it myself.
See also Settings -> Power Plans. And especially the Help topic in that menu.
You can also use BlockSleep" created by Slavanap (here (http://forum.doom9.org/showthread.php?p=1752513#post1752513)) to force the PC to stay "alive" during the encoding, without having to modify temporarily the power plan. You will have to edit __ENCODE_3D.cmd to move the x264 command within blockspeed. I may add that feature in BD3D2MK3D later, but I'm not sure, because currently blockspeed.exe is detected as a virus by many antivirus programs, due to the way it works. That detections are certainly false positives, but I don't want to release it within the toolset directory of BD3D2MK3D because that may scare most users. So, currently, only the power plan setting is available in BD3D2MK3D.
r0lZ
23rd January 2016, 16:12
Here is v0.83.
As promised, I've added the possibility to specify an output folder different than the project's directory for the final MKV file.
This version fixes also a bug introduced in v0.82. The program crashed when the user selects a MPLS without subtitle streams in tab 1. Since it's an important bug, I have decided to release this version immediately, but I haven't had much time to check the new output folder feature. It seems to work correctly, but I may have introduced new bugs (especially in the code that checks if there is enough available disc space). Please let me know if you find a bug.
v0.83 (January 23, 2016)
- New option in tab 5 to define two different output folders: one for the project files, and one for the final MKV.
- Fix: Bug introduced in v0.82: Crash when parsing the languages of the MPLS without subtitles.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
frank
23rd January 2016, 19:54
Old Version No...
r0lZ
23rd January 2016, 20:11
Damn! Right. I've replaced the archive. Nothing else has changed.
Sorry.
GamBIT_Rus
24th January 2016, 20:56
Thanks for answers!
I can't agree that there's any need to save memory by closing the gui. Maybe 20 years ago it could help smth but in the presence it takes so less memory that isnt neccesary to account. What a per cent of my 16 Gb it could be? Even of 4 - not much. BTW the speed of encoding doesnt depend on amount of memory - much more of cpu speed and instruction sets, and the algorithms.
So I'd suggest you to divide the 'encoding' and 'exit' - not 'encode & exit' since that things are different and not interconnected. For ex, yes, I would like to run the encoding just after the demux, but not to exit the gui. The other benefit is the ability to prepare the next transcoding process while the first is running already. Maybe by simple change.
An other ability that often ask-able is the 'crop'
Yes, I see you did smth to this direction by making 720p (image change between the decode-encode operation). But It would be nice if a user could enter the 4 offsets to cut the frame and ability to choose - whether to leave the frame simply cutted or to upscale it to initial size.
Many people ask to make the cropped rips to them, for ex to take standard BD3D with 1920*1080 frame, next cut it to 800 lines and cut the sides so too, that a frame would have the 16:9 proportion, and after that to upscale to the initial 1920*1080. The result would be the cropped image on the whole screen. After that the encoder may do half or full stereopair, never mind. That 'crops' I know you may do by adding the proper code to avisynth, like you did with 720p. Would be great if a crop could be qualified done with the BD3D2MK3D by one click in fact. I dont ask too much, hope? :-) It's really need.
r0lZ
24th January 2016, 23:55
I will certainly NEVER implement a crop feature for 3D output. It's a total absurdity. The 3D video standard IMPOSES the 16:9 aspect ratio. And the 3D clips must be in HD. So, ONLY 1920x1080 and, to some extent, 720x1280 are legit for 3D clips. Many TVs do not support other aspect ratios at all, or they deform the image horribly to restore a full-screen display (like my Samsung). And anyway, probably all 3D TVs are optimised to play the 3D features in full HD, and are much less good when they must play butchered 3D videos. And it's not because other aspect ratios or resolutions can be played without problem by some (relatively rare) players that it's a good idea to do it.
I add that cropping the black bars is not really a gain of disc space, because the pure black can be compressed extremely well, and therefore it is really a bad idea to sacrifice quality and compatibility just for a few MBs of disc space.
In short, cropping the 3D videos is unfortunately a common mistake, and I will certainly not encourage peoples to do it.
r0lZ
25th January 2016, 00:06
For the Exit and Encode option, I really can't understand your point.
Either you tick the option because you want to leave your computer immediately and in that case there is no need to leave the program opened, or you want to prepare another encode and in that case it is not that difficult to double-click the __ENCODE_3D.cmd (or __ENCODE_3D_LOW_PRIORITY.cmd) file manually, since the window is opened automatically by the program at the end of the preparation of the project. And as a benefit, you can have a look at the final dialog to verify easily if everything went fine.
And I disagree on the memory necessary for the encoding. With some encoding options and a moderately powerful PC (with, for example 4GB of RAM), x264 may need some swap space, even when x264 is alone in memory. And when a PC swaps, it becomes extremely slow. If that situation can be avoided simply by closing useless programs, it's certainly a very big advantage. (However, I agree that usually, with standard parameters in Half-SBS or T&B, much memory isn't really necessary.)
Anyway, splitting that option will be just confusing. What is the benefit to exit without launching the encode?
Also, I repeat that originally, that option was not present, and I have added it at the request of an user. But IMO it is important to verify if everything is OK before launching the encoding. Personally, I don't use that option, and I think that it can be removed. So, please don't ask again to modify it, or I may be tempted to simply remove it completely.
Nico8583
25th January 2016, 10:28
Just to know : does anyone have already tried to resize 3D SBS to 720p ? I don't know if it is a good thing...
r0lZ
25th January 2016, 11:41
Good thing, well, probably not. But I did some tests when I've added that option to BD3D2MK3D, and it works, and even my picky TV accepts it. The result is not too bad, although there is only 640 pixels of horizontal resolution in HSBS or 360 vertical in HT&B.
BTW, the first 3D media, long before the BD and 3DBD, were 3D interlaced DVDs (afaik always NTSC), where each view was encoded in a field. The active glasses were synchronised with the frequency of the AC power. The advantage of that system is that all DVD players and TVs were able to play the video, without even "knowing" that it was a 3D movie. The drawback is the vertical resolution: 240 pixels only! And the horizontal resolution is only 720. I've converted for the fun 3 examples of these 3D DVDs, after having composed and resized them to Half-T&B (854x240 for each view), and I've watched them with my TV. The picture is horribly pixilated, but the 3D is correct. That means that the resolution of the image (and, as a consequence, the precision of the parallax) is not really important for the 3D. Most of the job is done by the brain anyway.
Of course, the same is true for Half-SBS. The precision of the parallax is divided by 2, but the 3D is as good as with T&B or Full-SBS. So, it seems that only the precision of the picture is somewhat degraded when a 3DBD is converted to 720p. The depth effects of the 3D are not really affected.
GamBIT_Rus
25th January 2016, 20:53
I will certainly NEVER implement a crop feature for 3D output. It's a total absurdity. The 3D video standard IMPOSES the 16:9 aspect ratio. And the 3D clips must be in HD. So, ONLY 1920x1080 and, to some extent, 720x1280 are legit for 3D clips. Many TVs do not support other aspect ratios at all, or they deform the image horribly to restore a full-screen display (like my Samsung). And anyway, probably all 3D TVs are optimised to play the 3D features in full HD, and are much less good when they must play butchered 3D videos. And it's not because other aspect ratios or resolutions can be played without problem by some (relatively rare) players that it's a good idea to do it.
I add that cropping the black bars is not really a gain of disc space, because the pure black can be compressed extremely well, and therefore it is really a bad idea to sacrifice quality and compatibility just for a few MBs of disc space.
In short, cropping the 3D videos is unfortunately a common mistake, and I will certainly not encourage peoples to do it.
I think you didnt understand me.
I was telling not about smth like 1920*1600 mkv (instead of 1920*2160). BTW I encode only 1920*2160.
Crop is not ONLY the chopped black borders. Such cutting is really bad of the proportion problems indeed, I know it as the LG owner (1920*1600 are never going right, although 1920*800 play well - LG TV soft peculiarities).
A CROP I was telling about is the following:
1. encoder cuts and the up/bottom black borders and some vertical columns - so that the resulted aspect is still the same, 16:9, but in the picture are only the bright info pixels.
2. After that, the image is upscaled to the initial 1920*1080 due to compatibility, so that we get the standard aspect and size. Both.
YES, the picture is not the same, it is like focused on the centre so that there's no borders at all nowhere. 3D effects are not harmed, that's important. There's some resolution loss, yes indeed, but everything plays well anywhere. Especially do love this thing the owners of a small diagonal TVs. Unfortunately most of the TVs are able to change the aspect in the very rare cases. My 4K LG (for ex) is almost helpless to change the aspect. More cheaper TVs are all the more helpless. The only way is to hardcode such a picture. BTW people assume that such 4-way cropped videos get the better 3D rolls and effects than the standard picture. I think of the bigger details in visual.
Even if you do not desire to do such crops, I think it would be good if the others could. Like 720 that you do not use (and I do not use) but the others do. And it is not a simply cutted up/bottom video.
I see that the BD3D2MK3D can do it easy and with the best quality due to x.264 and a perfect avisynth algorithms.
Hope, now you did understand me right.
?
If so I could set out the vision of how it could be implemented with the best usability. Thanks.
GamBIT_Rus
25th January 2016, 21:18
And I disagree on the memory necessary for the encoding. With some encoding options and a moderately powerful PC (with, for example 4GB of RAM), x264 may need some swap space, even when x264 is alone in memory. And when a PC swaps, it becomes extremely slow. If that situation can be avoided simply by closing useless programs, it's certainly a very big advantage. (However, I agree that usually, with standard parameters in Half-SBS or T&B, much memory isn't really necessary.)
Anyway, splitting that option will be just confusing. What is the benefit to exit without launching the encode?
Also, I repeat that originally, that option was not present, and I have added it at the request of an user. But IMO it is important to verify if everything is OK before launching the encoding. Personally, I don't use that option, and I think that it can be removed. So, please don't ask again to modify it, or I may be tempted to simply remove it completely.
Well... I launched the BD3D2MK3D, opened the first BD3D image and looked at how much memory it takes. It takes.... huge 10 Megabytes! :-)
Take my congratulations of the very good programming, really. Such a small amount of used memory is not meeting often. So I think closing the program will help the encoder less than nothing. 10 Mb is only a 1/400 of 4Gb, although I cant believe the video-encoder who use 4Gb in the present days. It also is 1/800 of 8Gb and 1/1600 of my very modest 16Gb.
Yes, using 64-bit OS we can gain all the memory to process, but I cant imagine the x.264 encoder does effectively use 8 Gb for ex. Usually it is used by the system cache, important of course but not necessary to be huge. I promise to look after the memory consumption of x.264 encoding the 1920*2160 Full T/B at the veryslow preset.
I think you did the best with the tiny small program that doesnt obstruct smth. So closing it most likely will not help smth. It will not be probably swapped as the system will not notice it.
***
Oh no, please do not exclude the "exit and encode" as it is very useful checkbox and that user who had asked this checkbox was really a good guy, God save him :-)
r0lZ
25th January 2016, 23:25
OK, I understand your wish for some kind of zoom feature within the full video, but I don't think it's a good idea. Except in some very rare circumstances, the black borders are present only in one direction, not both. Usually, the black borders are horizontal (for Cinemascope movies), and sometimes vertical (for old 4:3 movies). But (almost) never in the two directions. Therefore, if you want to crop the borders AND maintain the full aspect ratio, you will have to cut important parts of the image (for example the left and right sides of a Cinemascope movie), and if that can work well for some shots, that may be very bizarre elsewhere.
In fact, you want to do something like pan&scan, but without the pan! The effect will be terrible, unless you cut only a very small portion of the image. And if you cut only some pixels, the advantage on small TVs is lost. Pan&Scan is one of the worst invention ever, and if it has been used often in USA (only!), it is now abandoned almost completely, luckily! So, again, I don't want to encourage peoples to revive such butchering.
Note also that the left and right borders are sometimes intentionally not vertical in 3D movies, to minimize the effect of the cut of the foreground objects near the border of the TV. If you crop the movie, you will lose that advantage.
And I have also a technical argument. Since currently it is not possible to seek in the MVC video, I cannot easily do a GUI for the user. He will have to cut the borders simply by defining margins of a certain number of pixels or a certain percentage of the image, but without the possibility to see the result. Therefore, that will be too bizarre and complex to be appreciated by most users.
Anyway, if your intention is really to crop and enlarge a part of the image to keep the original AR and size unchanged, it is easy to modify the avisynth script to do it yourself. You can add the Crop() and *Resize() commands on the left and right views, and you'll get the zoom you want. That's really simple, if you know some basis of avisynth scripting. I can help you if you wish. So, sorry again, but I don't think I'll do that in the GUI, especially because I'm sure you're alone wanting that feature, despite what you think.
Thanks for your positive appreciation about the memory usage of BD3D2MK3D, but the memory is not the sole argument against the split of the Exit and Encode option. I have explained them several times, and I don't want to do it again.
GamBIT_Rus
26th January 2016, 11:17
I can definitely say that almost any movie has the 'crop' rip edition. It is very very popular indeed, at least in our segment. Each movie usually gets such rips like 'half o/u', 'full o/u' (much rare yet) and 'crop half o/u', with s/b/s versions too ('crop full o/u' I havent seen but maybe and this takes place).
But unfortunately many coders have to use the very poor methods or to use not so qualified progs.
People who watch this movies do understand that some part of image is lost and could be some problems with the borders (You have noticed) but they are agree with it.
I ask this not personally but for the people who does encode crops. BD3D2MK3D is not popular now amongst them due to the lack of the used options like cutting the borders. If they could do this then they would use BD3D2MK3D and it would give the much better quality of the rips - that's great.
For You could better understand the cutting, I would example the following - usually they cut approx 140 pixels up and 140 down the BD frame (to cut the black borders) and 244 left and 240 right to gain the normal aspect. Later this 1432*800 they upscale to initial 1920*1080 and are happy :-)
Unfortunatelly I'm not a programist anymore, it was many years ago when I was doing this, so I personally cant modify the BD3D2MK3D code or fix the demuxed project with the strings of avisynth code. Especially it is useles to try (even if I could) because the others would not do it each time they want to transcode the BD3D. It is too much complicated. Whey simply will take the other instruments, bad but easy. You can help.
I would suggest you to take the special TAB named like 'image conversion' or smth, where would be placed all the present and future image works. Transform to 720p already, for beginning. Maybe and subtitles hardcode too (as it is the image-changing action).
I recall with a pleasure the VirtualDub project, now discontinued, where we could do almost anything without 'everytime programming', only using a similar GUI like yours. I hope You know this program and understand that I'm talking about. The conception was decode -> image manipulation -> encode.
It used avisynth too (or smth like that), got a set of effects, including the resize, zoom, denoise etc. Combining that plugins I could do almost anything with avi.
So I dont ask You to repeat all the functionality of VurtualDub, but such a TAB can definitely attract many people to your very good program. You dont even have to think how people would calculate the pixels to cut, for example. Whey could easily do it in any other program like DVDFab. The only thing you could easily help them would be the checkbox 'preserve the aspect' - if they enter blackborders cut the BD3D2MK3D will fulfil the remainings. And that's all, people are responsible themselves for the result, You dont have to worry. Whey do understand that they're doing.
Please, think it over, dont quick refuse. If I haven't could ensure You to add the image-transformation functionality then it is the last try (for not to bother You). Thanks.
r0lZ
26th January 2016, 11:51
You dont have to worry. Whey do understand that they're doing.
Well, I don't think so. There are too many butchered (or cropped to 800 pixels) 3D video on the net to even imagine that it is a good think to let the users do that. They do NOT understand the implications of cropping a 3D video, otherwise you'll NEVER see cropped 3D movies.
Also, I forgot to give the most important argument against cropping, resizing and/or zooming: subtitles. The 3D subtitles are authored to be placed on a precise position on screen, and they cannot be moved elsewhere because the depth of a precise subtitle is computed so that it doesn't enter within the surrounding objects or characters. So, if you crop and resize the original video, even if you maintain the 16:9 aspect ratio, the subtitles will still be at their original positions on screen, now wrong in the scene. That's also something to take into account. Do you imagine a crop option available only when no subtitles are demuxed, and prohibited elsewhere? (I agree that it should be possible to hardcode the subtitles BEFORE the crop and resize, so that they are still at the right position, but unfortunately BD3D2MK3D hardcodes the final 3D subtitles on the combined Half-SBS/T&B video, at the very end of the operation. I don't want to change that. And anyway, that will not work for muxed subtitles.)
So, there are too many good reasons to refuse to implement that, and no good reason to do it, except perhaps the popularity of BD3D2MK3D. But since BD3D2MK3D is not a commercial program, the number of users doesn't matter much. I want it to be the best 3DBD converter, and I will not add features that will lower its quality just to attract more peoples. In other words, peoples who think that cropping is a good thing should use DVDFab. (IIRC, it does the cropping automatically by default!) I keep BD3D2MK3D for the expert and demanding users, and they should know that cropping is never an advantage.
If I add a "Crop" button somewhere in the GUI, that will be ONLY to display a message explaining why a 3D clip should NEVER be cropped. Certainly not to do it!
GamBIT_Rus
26th January 2016, 17:14
If You really want to know smth about crops then I'd say that there's no such a problem for people with the subs You described since almost nobody hardcodes the pgs. In 99.99% crops is used the SRT format. And I use it always for good compatibility since my rips are downloaded very often. Even because the TVs usually do not support anything else except SRT. Even more, most of the people do not watch the subs at all. If it is not the Avatar for example.
People who watch crops dont demand the professional abilities, but the most important thing they want is 'no squares' in the picture. BD3D2MK3D can get it. If it would be able to encode not only the full picture. The most loss of picture in the crops is not of the things You said but of the wrong methods to get such a crop. They usually encode twice to get the crop, sometimes with the 1 pass - of course the picture is bad. They need an instrument to do it good, as much as possible, that's the problem. It's not of they do not want a quality at all.
Having done the 'Image Works' tab You could make the hardcode box to be disabled if a crop action is chosen. And no problem. If anyone wants the crop - he will not get the hardcoded subs, and I believe he will not even notice that. Because he doesnt need it at all.
If You do the program not for youself only but for the people then it might be a good idea to give them a chance to choose what they really want. With be best quality of possible. Crop is the existing and popular occurrence. You could warn the people of the problems with crop, but let them.
Anyway you did 720p although it is a very bad thing too, isnt it? It makes a loss of detail, looks like absolutely non-professional. BUT. It is needed to someone, and that's why it's done. And it's good.
I dont look crops. Personally. I dont look halfs. I've got 4K and watch only the full frame with 2160p. But it doesnt mean that I guess people are wrong watching the crop halfs. It is their decision, not mine.
If You do not make it nothing would happen with crops, they will still. Since there's a lot of encoding progs. Yes, it would be much better being done with BD3D2MK3D, but BD3D2MK3D isnt able to stop it, if it would not be implemented, I think You understand this.
I see that BD3D2MK3D is a very new promising project and it has a lot to grow. I've suggested a lot but if you are not interested in the suggestions so its your choice, of course.
r0lZ
26th January 2016, 17:58
SRT for 3D is another absurdity. Have you tried to watch 2D subtitles over a 3D video? Your head explodes after 10 subtitles or so! Subtitles must be in 3D to watch a 3D video. Unfortunately, it is not always easy to display the 3D subtitles correctly. Only a few software players have the necessary options, and probably no TV can do it (yet). It's why BD3D2MK3D has an option to hardcode the 3D subs. You know that. But with the right combination of a good software player and a 3D monitor or TV, it is possible to watch muxed 3D subs correctly. I don't want to ruin that possibility to add an useless crop option.
I'm convinced that many peoples begin to understand that cropping a 3D movie is not a good idea. It's certainly not now that I will tell them that they are wrong by adding that option. Anyway, I have already added a Help -> Why no Crop option? menu to explain why I will never add that possibility. I hope that will help the remaining crop fanatics to change their minds.
Like Coluche (a French humorist) said, "It's not because they are numerous to be wrong that they are right."
r0lZ
27th January 2016, 10:45
Donald Graft has just released a beta of DGMVCSource that should fix the black frames bug, occurring with some movies like Everest or Creature from the Black Lagoon and discussed here (http://forum.doom9.org/showthread.php?p=1750491#post1750491).
I will test it myself in software mode, but since I don't have the right CPU, I can't test it in hardware mode. Someone can test it with a recent version of libmfxhw32.dll? Frank? You can download the beta here (http://rationalqm.us/board/viewtopic.php?f=5&t=324&p=4533#p4533). And, if you need it, you can download this short sample from Creature from the Black Lagoon (http://download.videohelp.com/r0lZ/tmp/DGMVCSource%20bug%20with%20libmfxsw32%20v6.15.6.2.7z).
Thanks in advance!
frank
29th January 2016, 00:32
Originally Posted by r0lZ
I will certainly NEVER implement a crop feature for 3D output. It's a total absurdity. The 3D video standard IMPOSES the 16:9 aspect ratio. And the 3D clips must be in HD. So, ONLY 1920x1080 and, to some extent, 720x1280 are legit for 3D clips. Many TVs do not support other aspect ratios at all, or they deform the image horribly to restore a full-screen display (like my Samsung). And anyway, probably all 3D TVs are optimised to play the 3D features in full HD, and are much less good when they must play butchered 3D videos...
I add that cropping the black bars is not really a gain of disc space, because the pure black can be compressed extremely well, and therefore it is really a bad idea to sacrifice quality and compatibility just for a few MBs of disc space.
In short, cropping the 3D videos is unfortunately a common mistake, and I will certainly not encourage peoples to do it. Right! As a professional I have to agree. 3D standard and acceleration chips need uncropped sizes like 1920x1080.
BTW
If you resize a 1080p BD to 2160p for the 4k LG TV you never get more resolution! Sharpness stays on the source res 1080. No need to resize a BD, modern 4k TVs can scale up.
Much more important is a good 3D player. Built-in players of TVs are very stupid and mostly accept only standard 3D stuff.
frank
29th January 2016, 01:59
Problem solved!
DGMVCSource100b24 works, no black frames anymore.
Many thanks to Donald Graft.
Tested with sample TEST.avs and Everest 2015.
Asus Zenbook, I7 GFX5500, Win 10 prof
r0lZ
29th January 2016, 12:18
Thanks for the test! I'll report it to DG, and I suppose he will release the new version officially soon. I'll release an update of BD3D2MK3D when it will be available.
slavanap
29th January 2016, 14:25
...
See also Settings -> Power Plans. And especially the Help topic in that menu.
You can also use BlockSleep" created by Slavanap (here (http://forum.doom9.org/showthread.php?p=1752513#post1752513)) to force the PC to stay "alive" during the encoding, without having to modify temporarily the power plan. You will have to edit __ENCODE_3D.cmd to move the x264 command within blockspeed. I may add that feature in BD3D2MK3D later, but I'm not sure, because currently blockspeed.exe is detected as a virus by many antivirus programs, due to the way it works. That detections are certainly false positives, but I don't want to release it within the toolset directory of BD3D2MK3D because that may scare most users. So, currently, only the power plan setting is available in BD3D2MK3D.
Here's a lightweight version re-written in assembler.
binary (http://sendfile.su/1198689)
source (http://pastebin.com/1EXh7Jc3)
virustotal report (https://www.virustotal.com/en/file/e19981a1ea611066c0246e2801251f246a0093cc77de4d12558f987459ec4b3e/analysis/1454073785/)
There's still possibility that some less-known antiviruses will detect virus even in that small executable. Unfortunately, I can do nothing about it.
r0lZ
29th January 2016, 15:27
Great! 0 false positive detection. Perfect!
Of course, it is always possible that a not-so-good antivirus flags it as infected, but now the user can verify with VirusTotal, and have the evidence that it's a false positive. So, nothing stops me to use it any more. I will remove the power plan settings in BD3D2MK3D and use blocksleep instead in the next version.
frank
30th January 2016, 15:28
Oh, I like the power plan solution. Works perfectly and safely without adding software.
Please make it selectable.
r0lZ
30th January 2016, 17:00
OK. Anyway, currently, the BlockSleep solution doesn't work. I can't launch the exes with arguments. It seems that there is a bug. Therefore I will not change the power plan stuff yet. And probably, later, I'll add BlockSpeed as an alternative solution, but I'll keep the Power Plans too.
slavanap
31st January 2016, 02:30
OK. Anyway, currently, the BlockSleep solution doesn't work. I can't launch the exes with arguments. It seems that there is a bug. Therefore I will not change the power plan stuff yet. And probably, later, I'll add BlockSpeed as an alternative solution, but I'll keep the Power Plans too.
Oh, excuse me, I had to include usage example. First of all, first argument for blocksleep must me a full path for executable, and you can't execute arbitrary batch command with it, but if you run cmd.exe with /C argument, then you can.
Here's a batch file example with switch whether use blocksleep or not:
set command=^
dir "c:\Program Files" ^| ^
more
for %%i in (cmd.exe) do set "cmd=%%~$PATH:i"
echo %cmd%
set use_blocksleep=1
if %use_blocksleep%==0 %command%
if %use_blocksleep%==1 blocksleep.exe %cmd% /C "%command%"
note this part: ^| -- you need to escape | signs, or any other signs (< -- ^<, etc.) that could be interpreted as i/o redirection.
And I found one minor bug in blocksleep, as it always complaning to GetProcessExitCode. Here's a fix:
binary (http://sendfile.su/1199249)
source (http://pastebin.com/Uqxjz8eN)
virus total report (https://www.virustotal.com/en/file/644b19d2e0b77bc6fc3f19a8f7d7eb2b7fce5c2b1713c0cc809ea088682c61eb/analysis/1454203124/)
and again this Qihoo-360 antivirus detects it as a virus for whatever reason... It detected virus for previous executable but later its result was fixed. Let's see how long it'll take to fix result for this 1 byte different version.
r0lZ
31st January 2016, 10:51
OK, I'll try it that way.
But is it really necessary to provide the full path if the exe is in the current directory? IMO, that doesn't make sense, and it's a major drawback for BD3D2MK3D. Currently, a project generated by BD3D2MK3D can be moved elsewhere, because I have paid attention to never use absolute paths (except to the toolset directory). I really want to keep that feature.
slavanap
31st January 2016, 23:18
OK, I'll try it that way.
But is it really necessary to provide the full path if the exe is in the current directory? IMO, that doesn't make sense, and it's a major drawback for BD3D2MK3D. Currently, a project generated by BD3D2MK3D can be moved elsewhere, because I have paid attention to never use absolute paths (except to the toolset directory). I really want to keep that feature.
You need absolute path only for cmd.exe. In the script above I'm showing how to get it without specifying full path, e.g. "c:\Windows\system32\cmd.exe"
Just replace
dir "c:\Program Files" ^| ^
more
with the command you want to execute. And don't forget to escape with ^ i/o redirection characters: | < >, as I did in this example.
r0lZ
31st January 2016, 23:47
Yep. I succeeded with some simple commands, but I can't get the command I need for BD3D2MK3D to work. avs2yuv seems unable to write to stdout, and doesn't recognise the parameter - (a simple dash) as a valid output file. Therefore, I can't pipe its output to x264.
The solution is to launch the entire __ENCODE_3D.cmd script within BlockSleep. That works fine, and it's also much more simple for me. I have just to modify slightly __ENCODE_3D_LOW_PRIORITY.cmd.
Currently:
start /low __ENCODE_3D.cmd
With BlockSleep:
start /low "D:\BD3D2MK3D\toolset\BlockSleep.exe" __ENCODE_3D.cmd
But that means that the user will have to launch that script instead of the main batch file __ENCODE_3D.cmd. Not a big problem IMO, as it's already necessary to encode with the low CPU priority.
slavanap
1st February 2016, 06:20
I suggest this code -- I'm not sure that your will work.
for %%i in (cmd.exe) do set "cmd=%%~$PATH:i"
start /low "BlockSleep.exe" %cmd% /C call __ENCODE_3D.cmd
r0lZ
1st February 2016, 12:06
Right. I did a test, and my method doesn't work.
[EDIT] Just tested with your method and it doesn't work either. The computer goes to sleep when it is encoding. I'm puzzled.
[EDIT2] Tried again today, because yesterday Windows Update was working in the background, and it may have influenced the result, but I have the same result now. The computer goes to sleep anyway. So, it appears that either BlockSleep doesn't work, or there is something special with cmd.exe. Could it be because cmd.exe is loaded from system32 and is therefore a 64-bit program, but the main x264 process is 32-bit? Anyway, the CMD window is not closed, so I assume that its process remains active, and BlockSleep should work. I don't understand.
GamBIT_Rus
2nd February 2016, 14:24
http://www.softwareok.com/?seite=Microsoft/DontSleep
maybe to try this?
GamBIT_Rus
2nd February 2016, 14:39
Right! As a professional I have to agree. 3D standard and acceleration chips need uncropped sizes like 1920x1080.
BTW
If you resize a 1080p BD to 2160p for the 4k LG TV you never get more resolution! Sharpness stays on the source res 1080. No need to resize a BD, modern 4k TVs can scale up.
Much more important is a good 3D player. Built-in players of TVs are very stupid and mostly accept only standard 3D stuff.
As a professional I can't agree with you because you havent understood what I was talking about.
Nobody wants to simply upscale 1920*1080 to 2160, it's wrong and useless in 3D. If you do really know what is the stereopair then would know that it is the couple of the frames, one above another.
1920*1080+1920*1080= 1920*2160. And it's the ONLY way to watch the 1080p initial picture on the passive 4K 3D TV if you watch exactly the stereopair (not the BluRay3D).
If to upscale smth to 2160 - it means that the initial picture is changed in any way (zoomed for ex) and then is upscaled to 1920*1080, and after that is combined into full stereopair - 1920*2160.
And nobody talks about to cut the picture to non-standard resolution. Crops (but more likely to be called "Zooms") are made to match exactly the initial resolution 1920*1080 or 1920*2160. It is only zoomed.
The real "Crop-only" - yes, they are non-standard, and that's why LG (for ex) cannot show right o/u 1920*1600 (while plays half o/u 1920*800 without a problem - due to very raw firmware). I was not asking this feature. I asked a real zoom.
slavanap
4th February 2016, 14:51
Right. I did a test, and my method doesn't work.
[EDIT] Just tested with your method and it doesn't work either. The computer goes to sleep when it is encoding. I'm puzzled.
[EDIT2] Tried again today, because yesterday Windows Update was working in the background, and it may have influenced the result, but I have the same result now. The computer goes to sleep anyway. So, it appears that either BlockSleep doesn't work, or there is something special with cmd.exe. Could it be because cmd.exe is loaded from system32 and is therefore a 64-bit program, but the main x264 process is 32-bit? Anyway, the CMD window is not closed, so I assume that its process remains active, and BlockSleep should work. I don't understand.
Well, let's figure that out. I guess, this info will be useful to other users that's why I post in in the thread instead PMing you.
Please, run "powercfg -requests" under administrator 2 times (when blocksleep is running and when it's not) and post its output or PM it to me. "powercfg -requests" shows what processes/drivers/etc. blocks computer to go sleep. Moreover, if you're using a notebook, then go to "Explorer -> right click Computer -> Manager -> expand Event Viewer -> Windows Logs -> System" and see if there're recent messages with source UserModePowerService coming and what process generates them. Note, when this message appears, then sleep timer resets, so your computer may never go to sleep or go to sleep by explicit external call (which still logs in Event Log). Usually, some third-party notebook related programs can influence Windows power settings behavior.
[ADDED] I have this output (first is for running blocksleep, second if it's not running). Btw, don't forget to check your selected power plan settings.
P.S. Here's a thread @ sevenforums (http://www.sevenforums.com/performance-maintenance/333391-sleep-mode-stopped-occurring-automatically.html) that shows how to deal with issue when auto sleep does not work.
http://s30.postimg.org/heccxyv74/Untitled.jpg
r0lZ
4th February 2016, 17:22
To do my tests, I use the "Power saver" plan, modified with the "Turn off the display" and "Put the computer to sleep" options both set to 1 minute. The power plan itself works fine. The display turns black after exactly 1 minute, and the computer goes to sleep between 10 and 50 seconds later. (I don't know why there is an additional variable delay, but that's acceptable.)
I have also noticed that Foobar2000 blocks the computer from going to sleep during the playback of a song. That works fine, and it's reported by powercfg -requests, so it's not something wrong with the way my computer sleeps. Of course, for my tests, I have to stop Foobar2000.
Before and after launching the __ENCODE_3D.cmd batch with BlockSleep, powercfg -requests displays this:
DISPLAY:
None.
SYSTEM:
None.
AWAYMODE:
None.
Also, the result is identical with or without the c:\windows\system32\cmd.exe /c trick.
I have also used BlockSleep with a simple DOS command:
D:\BD3D2MK3D\toolset\BlockSleep.exe c:\windows\system32\cmd.exe /c pause
And in that precise case, powercfg -requests reports correctly this:
DISPLAY:
None.
SYSTEM:
[PROCESS] \Device\HarddiskVolume6\BD3D2MK3D\toolset\BlockSleep.exe
AWAYMODE:
None.
Obviously, BlockSleep doesn't block the computer from going to sleep, but apparently only when __ENCODE_3D.cmd is launched. Now, the question is: why?
slavanap
4th February 2016, 17:47
How do you launch blocksleep with __ENCODE_3D.cmd ?
I hope you launch it like this:
blocksleep.exe c:\windows\System32\cmd.exe /c call __ENCODE_3D.cmd
r0lZ
4th February 2016, 17:59
No, no "call". But I've found why it doesn't work. And you will not believe me! It's really totally immensely strange! So Microsoft!
This command doesn't work:
start /low "D:\BD3D2MK3D\toolset\BlockSleep.exe" c:\windows\system32\cmd.exe /c __ENCODE_3D.cmd
But this one works fine:
start /low D:\BD3D2MK3D\toolset\BlockSleep.exe c:\windows\system32\cmd.exe /c __ENCODE_3D.cmd
The ONLY difference are the quotes around "D:\BD3D2MK3D\toolset\BlockSleep.exe" ! :eek:
How is it possible!
Anyway, even if removing the quotes works in this case because there is no space in the path, I can't assume that it will work everywhere. So, currently, it is not possible to use BlockSleep with BD3D2MK3D. Or is it another trick to avoid the problems inherent to the bad programming of windows and CMD.exe?
[EDIT] BTW, the cmd.exe /c trick is not necessary. Same for the "call" command. As long as there are no quotes around the BlockSleep command, it works. This one works fine:
start /low D:\BD3D2MK3D\toolset\BlockSleep.exe __ENCODE_3D.cmd
r0lZ
4th February 2016, 18:27
Yeah! I've found a solution to avoid the problem of the quotes. This script works fine:
set path=%PATH%;D:\BD3D2MK3D\toolset
start /low BlockSleep.exe __ENCODE_3D.cmd
It's strange anyway. Perhaps you can find a solution to avoid the quotes bug from within BlockSleep itself, although I don't need imperatively a fix to use it with BD3D2MK3D.
slavanap
4th February 2016, 20:40
There's easier way to do the same thing. After reading "help start" documentation I got this working:
blocksleep.exe c:\windows\System32\cmd.exe /c start /low /b /wait __ENCODE_3D.cmd
although I advice to use this code snippet to guarantee that cmd.exe will be picked up from current Windows installation (defaults to c:\Windows\System32\cmd.exe)
for %%i in (cmd.exe) do set "cmd=%%~$PATH:i"
blocksleep.exe %cmd% /c start /low /b /wait __ENCODE_3D.cmd
P.S. blocksleep does not consume any CPU time anyway.
r0lZ
4th February 2016, 21:23
Indeed, that work with or without quotes. But I prefer my method, because Control-C doesn't work with yours (due to the /B argument). And anyway, adding the path to the toolset in the %PATH% variable doesn't hurt. I need it anyway.
I still don't understand why the quotes make it fail, especially because it's only a problem with my syntax and not with yours! :confused:
And to determine the cmd.exe path, I will probably use another method. I can retrieve it with BD3D2MK3D with the command
where cmd.exe
It is probably also possible to use the ComSpec environment variable. On my machine, %ComSpec% is exactly C:\Windows\system32\cmd.exe
However, I don't know if it can point to another exe on some systems.
slavanap
4th February 2016, 22:17
Yes, %ComSpec% is good way to call cmd.exe. Please use it instead my method. Also, this one
start /low "D:\BD3D2MK3D\toolset\BlockSleep.exe" %COMSPEC% /c __ENCODE_3D.cmd
works on my PC if I put it in .bat file. Maybe you need to escape " quotes in TCL?
[ADDED] I advise to add your path at the beginning of PATH variable,
set PATH=D:\BD3D2MK3D\toolset;%PATH%
because scanning for executables in PATH starts from the beginning, e.g. if you have
set PATH=%PATH%;D:\BD3D2MK3D\toolset
and there's blocksleep.exe in folder, that is in %PATH% then that first executable will be started (i.e. not one from D:\BD3D2MK3D\toolset).
r0lZ
5th February 2016, 01:32
Yep, but AFAIK I don't need cmd.exe at all (and %ComSpec%). This works perfectly: start /low BlockSleep.exe __ENCODE_3D.cmd
It's very simple, and sleep mode is correctly disabled. I don't see a good reason to launch cmd.exe a second time, since launching a .cmd file with start calls it anyway.
Your order of the %PATH% is better, that's right.
r0lZ
6th February 2016, 15:46
This version implements BlockSleep (as discussed just above), and a dialog to explain why a crop option will never be implemented (as discussed above above!).
It has also 4 new "From DB" buttons in the Cover Art tab, enabled only when the program can find some JPEG images in the metadata of the current BD. It is therefore much easier to associate a cover with your MKV now, since you have just to click a button. (Some BDs do not have cover art, and of course in that case that doesn't work.)
The latest DGMVCSource is included with this version, and since its black frame bug has been fixed, it is now the default MVC decoder again. The latest FRIMSource is NOT included, because it crashes when it is used with Avisynth v2.58. It works fine with Avisynth 3, but most peoples continue to use v2.58 (including me), and therefore I think it is too dangerous to update it.
The new x264 arguments --range tv --colormatrix bt709 are not really necessary, and should not change the final result at all. These arguments are simply added in the video header, to help the players to determine the correct luma range and color matrix. When they are not specified, a good player should use TV and bt709 for HD video anyway.
v0.84 (February 6, 2016)
- Added the arguments "--range tv --colormatrix bt709" in the x264 command line.
- Added Help -> Why no Crop option?
- Implemented the BlockSleep method to prevent the computer from going to sleep during an encoding. Thanks Slavanap!
- Since BlockSleep will remain active as long as the command prompt window is open, the \"When encoding is finished\" option in tab 5 is now saved with the settings.
- Added 4 "From BD" buttons in tab 4 to get the cover art images from the metadata of the current BD.
- Since the black frames bug with DGMVCSource has been fixed, DGMVCSource is now the default MVC decoder again.
- Updated DGMVCDecode.dll to the latest version 1.0.0.24. Thanks Donald!
- Updated the Intel library libmfxsw32.dll to the latest version 7.15.10.28 (from INDE 2016)
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
r0lZ
20th February 2016, 14:12
A lot of small changes and improvements in this version, and two bug fixes. Not a fundamental release, but you should download it anyway.
v0.85 (February 20, 2016)
- Added Search Wikipedia for Title and Search Google Images for Title in the Web menu of tab 3.
- Added the possibility to define a custom search engine for the Web menu of tab 3.
- Added Settings -> Chapters -> Include Dummy Chapter Near End of Movie to remove the last chapter at less than 5 seconds before the end of the movie.
- Added Help -> Version History to consult the BD3D2MK3D version history online.
- The tools menu has been split, with the subtitle tools in their own menu.
- Small cosmetic changes.
- It is now possible to encode the AVS script with any GUI thanks to the LoadHelper plugin. Thanks Slavanap!
- Bug introduced in v0.84: _ENCODE_2D_LAUNCHER.cmd launched __ENCODE_3D.cmd instead of the 2D version.
- Little bug: The palette analysis was skipped when converting XML/PNG subtitles not generated with BDSup2Sub to VobSub.
- Changed the web address to download x265 (because Snowfag doesn't compile 32-bit versions any more).
- Updated x264 to v0.148.2665 and x265 to v1.9+3
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
The full version history has been removed from this thread and is now available online here: Version history (http://download.videohelp.com/r0lZ/BD3D2AVS/history.txt)
mini-moose
24th February 2016, 13:01
A lot of small changes and improvements in this version, and two bug fixes. Not a fundamental release, but you should download it anyway.
Thanks for continuing to develop your great software r0lZ!
I'm sure it's been discussed in depth in the past but I'll take a chance and ask again.. Is DGMVCSource the better choice compared to Frim? I used Frim during while DGMV was being fixed and it seemed quite a bit faster. Encoding time is not really a bg conern, just wondering if it there are substantial benefits to using DGMV over Frim.
r0lZ
24th February 2016, 13:52
Normally, the two decoders should give the same result since they use the same decoder library (unless there is a bug in one of them of course). Slightly different speeds are of course possible, but I have never really tried to compare them.
However, I remember that someone (I think it's Frank, but I'm not sure) has reported decoding problems with FRIM in the past. It's why I have considered DGMVCSource as better, but honestly, I have never noticed that problems personally. And the last bug was in DGMVCDecode (or more precisely, in DGMVCDecode when used with the latest Intel libs), while FRIM worked fine, as you know. That bug is fixed now, so currently I think we can consider the two plugins as equivalent.
I keep the two decoders anyway, because each time Intel releases a new version of the decoder, new bugs can appear, and it is better to leave the possibility to the user to try if the other decoder plugin gives better results.
If you are sure that FRIM is faster, I think you can safely use FRIM by default. Of course, let me know if you find a bug or a problem with a specific BD.
mini-moose
24th February 2016, 13:58
Normally, the two decoders should give the same result since they use the same decoder library (unless there is a bug in one of them of course). Slightly different speeds are of course possible, but I have never really tried to compare them.
Thanks r0lZ. I'm not even 100% sure anymore Frim is faster as I never encoded the same movie with both. I remember thinking last time I tried, that I Frim seems faster than what I remembered DGMVC to be. I may just test it out to be sure.
r0lZ
24th February 2016, 14:12
OK, if you do benchmarks tests, please let us know the results. I'm curious. But IMO, on the whole encoding process, the decoding part is small anyway, and it's x264 that requires most time.
konikpolny
28th February 2016, 15:34
I have just started using BD3D2MK3D. Many thanks for this excellent tool.
I just tried to make a full SBS movie and noticed that --sar 1:2 is enforced. Can I disable it or overwrite this with --sar 1:1? I know the implications of having 2 full frames with original ratio.
r0lZ
28th February 2016, 16:26
Welcome to the Doom9 forums, konikpolny, and thanks for your positive appreciation.
Currently, there is no way to change the SAR in the GUI, but you can edit __ENCODE_3D.cmd before launching the encoding. It is however possible to change the DAR with Settings -> Full SBS/T&B Aspect Ratio. In most cases, you should not need to change the SAR, and changing the DAR should be sufficient.
I may add an option to change the SAR as well, if you can explain the interest to change it. What's wrong with the current values? (I may have made an error, because the correct aspect ratio values to use are difficult to determine for SBS or T&B, and it seems that different players need different settings.)
konikpolny
29th February 2016, 01:59
To be honest I'm not sure what I should be asking for then. To make myself clear - what I wanted to get was to have 2 'visually' full frames side by side. I tried changing the DAR setting from default to "Use 16:9 for both (not recommended)" but I didn't see any difference so not really sure what it does.
Now I also have just tested modifying sar in the __ENCODE_3D.cmd by:
1) removing sar completely --> this didn't do any change at all (Good question is WHY?):confused:
2) changing the value to --sar 1:1 --> this finally DID make the output video display 2 full frames side by side in their original ratio :thanks:
Can you also please explain what the DAR setting (Settings -> Full SBS/T&B aspect ratio) does as it doesn't seem to do any change to me.
The reason why I am asking for keeping original aspect ratio of each frame is to be able to immediately see that the movie is full-SBS. Then I can watch it as 2D -- by zooming to the left frame, or 3D - in which case I would change the aspect ratio of it to 16:9 on the player to make it visually half-SBS.
r0lZ
29th February 2016, 10:44
There are two AR stored in the final MKV. The Sample Aspect Ratio (SAR, stored in the h264 video stream) and the Picture Aspect Ratio (called above DAR, because I don't like PAR, meaning Pixel Aspect Ratio, but DAR stricto sensu is the aspect ratio of the display device.) The Picture AR is stored in the header of the MKV container. The player can use the SAR or the Picture AR, in conjunction with the PAR or DAR of the device to compute the way it should display (stretch) the picture.
Furthermore, some players use another information to deduce the correct aspect ratio: the Stereoscopy method (SBS, T&B...), itself stored in the h264 stream (the --frame-packing argument of the x264 command) and in the MKV header (the stereoscopy field), and even in the file name (if you have selected one of the Output File Name -> 3D Format Extension setting and your player recognises it.) Again, the player can use any information it can handle, and unfortunately, most players are not 3D-aware at all, and ignore the SBS or T&B format. And some players, notably most 3D TVs, assume that a 3D movie is always in 16:9, regardless of the width, height and aspect ratios.
As you can see, the subject is complex, and I have never found a reliable doc on the correct aspect ratios to use for SBS and T&B combined frame. I don't know if it's the aspect ratio of the combined 3D source, or the aspect ratio of the target 3D frames that matters. Originally, the AR used by BD3D2MK3D was always 16:9, even in Full-SBS/T&B, but after a discussion with zaphodalive, I have decided to add the option in the Settings menu. (That discussions starts in the last paragraph of this post (http://forum.doom9.org/showthread.php?p=1710088#post1710088).) At that time, I was almost sure that 16:9 was correct, and I have only implemented an hidden option to change it. But later, when I did more tests, I have noticed that indeed, most players need 32:9 for Full-SBS and 16:18 for Full-T&B, and therefore that it's the source AR that must be specified. Unfortunately, it's not the case of all players. And I'm still not sure for the SAR. Anyway, I have added the option to control the Picture AR in the Settings menu in v0.60 (http://forum.doom9.org/showthread.php?p=1711447#post1711447), but there is still no option to control the SAR.
So, if changing the Picture AR in the Settings does not change anything for you, that means probably that your player does not takes it into account, and uses the SAR only. May I know what player you use? Personally, I use PotPlayer to watch the movie in 2D on PC, and the player of my Samsung TV to watch it in 3D. PotPlayer recognises the "3D-LRQ" extension of the file names to know that the movie is in Half-SBS (and "3D-LR" for full SBS), and you can configure it easily to show either the left or right frame only, with the correct output aspect ratio, and optionally the correct half of the 3D subtitles or the 2D subtitles in 2D. My TV, as most 3D TVs, stretches the decoded image to occupy the whole 16:9 screen anyway, and ignores absolutely everything else, including the subtitles.
As far as I know, the SAR used by BD3D2MK3D is correct, and I don't think I'll change it. Your way to watch the movie in 2D by zooming on a single frame is very specific, and I don't think it should determine the SAR. But again, I may be wrong, and if someone can prove that 1:1 is the correct SAR for Full-SBS and Full-T&B, I'll change it, or I'll add a new option to control it. In the meantime, is it sufficient for you to edit __ENCODE_3D.cmd?
Sharc
29th February 2016, 11:56
Maybe I am wrong, but I think the confusion comes because full-SBS/T&B is not specified in any standard. It is just a custom format AFAIK. Therefore players will handle this format as per manufacturers' gusto. Standalone Blu-ray players will normally reject anything which is larger than 1920x1080 anyway.
Personally I think that the SAR for full SBS/T&B should be signaled 1:1 because neither the left nor the right eye picture is squeezed in any respect. The DAR is 16:9 assuming that the player recognizes the file as 3D, and hence should display the picture as 16:9. In the same sense a half-SBS should be signalled as SAR 1:2. In practice it may be best NOT so signal the SAR at all, considering that half-SBS/T&B are standard formats and smartTVs will recognize and display these formats correctly as 16:9.
Encoding to formats outside of standards has its issues. At least we cannot expect "correct" playback on various devices and must be prepared to find out which tweaks will eventually succeed with a specific playback infrastructure. Trial and error, unfortunately.
r0lZ
29th February 2016, 12:00
Yep, I think you're right, unfortunately. :-(
I will add the SAR option anyway. It's easy, and everyone will be able to experiment easily...
konikpolny
1st March 2016, 13:41
The player I am using is Media Player Classic on PC and what I meant by zooming to 1 frame to watch 2D was by using my own custom Pan&Scan settings. I am OK to have the 3D format either squeezed or in its original AR. It just takes different Pan&Scan settings to watch it in 2D.
The reason why I asked about SAR option really was to have a greater control of what the visual output picture is - showing the 2 frames in its original AR. Having the 2 frames squeezed doesn't affect my watching it in 2D or 3D.
May I ask that you describe in more detail how you can watch 2D of a 3D movie in PotPlayer?
r0lZ
1st March 2016, 15:18
MPC HC is a good player, but afaik it doesn't "know" the 3D formats, and it is unable to identify them and switch to the 3D or correct 2D mode automatically. It's why I prefer PotPlayer, but I use MPC too, for 2D, and to verify the SBS/T&B in "two views" format.
There are many settings to tweak in PotPlayer to watch the 3D movies in 2D. First of all, you should include the "magic string" in the file name of the MKV so that it will recognise the correct format, as explained here (https://www.tridef.com/user-guide/3d-file-formats). It's the same convention than for the Bino player. Although it's not documented, I've found that PotPlayer recognises also "HSBS", "HTAB", "SBS" and "TAB" anywhere in the file name (as long as the surrounding characters are NOT alphanumeric and "3D" is also present), but in that case, you cannot specify the order of the two views. Use the BD3D2MK3D option to generate the correct string automatically. Unfortunately, PotPlayer ignores the stereoscopy and frame-packing information.
For the options in the program, in the Video -> 3D Video Mode menu, I leave "Enable 3D Video Mode", "Auto Detect 3D Input Format" and "Auto Switch Between Video Modes (2D <-> 3D)" always enabled. If you have the correct magic string in the filename, it ignores the "3D Video Input (Source)" settings.
To display the 3D video in 2D, you should select in the "3D Video Output (Screen)" sub-menu, one of the two "3D to 2D" option. (I prefer to use the "(Right or Bottom Image)" one, because usually the dependent stream is for the right or bottom image, and it's a better way to verify if the MVC decoding was OK, but it's not as important for you.) With that menu, you can also convert the 3D to another 3D format, such as Anaglyph. In 2D, the quality of the image is somewhat degraded, and I wonder if it's due to my hardware.
For the subtitles, I suppose you don't need them, since you encode in Full-SBS, and it is not possible to generate 3D subtitles for Full-SBS ot Full-T&B. And currently, the only way to display 3D subtitles with the right depths on Full-SBS/T&B is to hardcode them, and of course in case of hardcoded subtitles, you have nothing to configure. So, the following explanation apply only to Half-SBS/T&B with 3D subtitles streams.
In the Subtitles -> 3D Subtitles (Stereoscopic) menu (identical to the "Video -> 3D Video Mode -> 3D Subtitles (Stereoscopic)" menu), you should enable "Do not use", "Subtitle Output Before Resizing" and "Identify 3D Subtitle Mode by Filename".
When you watch the video in 2D and you select a 3D subtitle stream, it is important to select the option "Display subtitles on Video (TV-OUT)" in the Subtitles menu, otherwise you'll get two subtitles in SBS or T&B format over a 2D video! And if you select a 2D stream, you must use the other option "Display subtitles on Overlay/VMR/EVR Surface", otherwise you'll see only an half of the subtitle in SBS, or nothing in T&B.
Note that currently, it seems that PotPlayer has some trouble playing the BD SUP streams. Some subtitles are never displayed, and sometimes, a specific subtitle stays on screen forever (or up to the next subtitle). I hope the author will fix that bug rapidly.
Now, it's my turn to request something. Can you explain what you did to watch a Half-SBS movie in 2D with MPC-HC? I would like to check if it is as easy to do it than with PotPlayer, and if MPC can display the 3D subtitles correctly in 2D. Thanks in advance!
frank
2nd March 2016, 16:38
Interesting news:
The Films & TV App of Win 10 plays 3D-hTAB movies generated by BD3D2MK3D in 2D mode. Good quality and low CPU load.
Useful for checking on PC.
EDIT: And 3D-hSBS in 2D. :)
r0lZ
2nd March 2016, 19:14
Yeah, great! It may be the time to say goodbye to my good old Windows 7...
Bino and SView can also play the 3D movies in 2D (and, of course, in various 3D modes).
frank
3rd March 2016, 09:18
So the Films & TV App of Win 10 evaluates the frame-packing parameter of mkv.
EDIT: frame-packing parameter in the h264 stream.
AFAIK the first App. It seems M$ has done its homework.
r0lZ
3rd March 2016, 11:53
The frame-packing is in the h264 stream. It's the stereoscopy mode that is in the MKV header. They are somewhat equivalent, but not totally. The h264 frame-packing is recognised by more programs, probably because it is used on Youtube. My TV, for example, recognises it, as well, of course, as the Youtube app of the TV. AFAIK, the stereoscopy value in the MKV container is ignored by all programs, apps and hardware players so far. It's a pity, because it is more precise than the frame-packing, as it makes the left or right view first distinction.
BTW, the .mk3d file extension is also ignored by almost all programs. It cannot specify the stereoscopy mode, so it is pretty useless anyway, but it can be useful to call Bino or Sview automatically for all 3D movies, and continue to use your preferred 2D player for the other MKV files. Unfortunately, I have to continue to use the .mkv extension, because my TV doesn't recognises the .mk3d files as movies, and it doesn't display them in the GUI! It's really stupid.
konikpolny
3rd March 2016, 12:28
r0lZ thanks a lot for the info about 2D mode for 3D movies in PotPlayer.
In MPC custom Pan&Scan settings for watching 2D of a 3D can be added in menu View (or right click on video) > Pan&Scan > Edit...
The idea of how to create those settings I found here (http://play3d-2d.blogspot.co.uk/2014/02/3d-sdb-to-2d-movie-in-media-player.html).
For testing rather than creating these one by one you can add all my settings directly into the MPC .ini file in the [Settings\PnSPresets] section under the existing 3 settings: 0=Scale to 16:9, 1=Zoom To Ultra-Widescreen, and 2=Zoom To Widescreen:
Preset3=3D (Half-SBS) to 2D [LEFT frame],1.000,0.500,2.000,1.000
Preset4=3D (Half-SBS) to 2D [right frame],0.000,0.500,2.000,1.000
Preset5=3D (Full-SBS) to 2D [LEFT frame],1.000,0.500,2.000,2.000
Preset6=3D (Full-SBS) to 2D [right frame],0.000,0.500,2.000,2.000
Preset7=3D (Half-OU) to 2D [TOP frame],0.500,0.875,1.000,2.000
Preset8=3D (Half-OU) to 2D [bottom frame],0.500,0.125,1.000,2.000
Preset9=3D (Full-OU) to 2D [TOP frame] 2.40:1 widescreen,0.500,0.875,1.800,1.800
Preset10=3D (Full-OU) to 2D [TOP frame] 16:9 (bot-edge),0.500,0.917,1.733,1.800
Preset11=3D (Full-OU) to 2D [bottom frame] 16:9 (top-edge),0.500,0.100,1.733,1.750
You must take into account that my Full-SBS / Full-OU settings above are for views displayed in their original AR ie. not squeezed and MPC is making such a video smaller to fit in the screen. Full-SBS / Full-TB movies with SAR 1:2 in MPC are squeezed and therefore to watch them in 2D they should be treated as Half-SBS/Half-OU.
These presets work perfecly for SBS movies, with T&B however it really depends on what AR your monitor has. On 16:10 monitors the movies with AR 16:9 will show the edge of top/bottom of the other picture and therefore you should probably correct the display by either moving the picture down to the bottom screen edge (if top picture is selected) or by moving the picture up to the top screen edge by using key combinations --> MPC defaults are Ctr+Num8 to move the picture up, and Ctr+Num2 to move the picture down.
That is yet another reason why I prefer SBS movies :)
Worth remembering is that you can quickly reset the used Pan&Scan setting in MPC by pressing Num5.
As regards 3D subtitles I personally prefer .ass subtitles which can be created from plain 2D .srt by tools like srt23Dass for instance.
It can be downloaded from here (http://www.networkedmediatank.com/showthread.php?tid=47904). Please be careful not to download it from any other dodgy site.
The download link is at the bottom of the first post in the forum.
The .ass output file is a textual file and therefore more manageable. You can easily choose your own font, color, size, base... etc. The only downside of it is that you set one depth for all the captions. Unless you are crazy about the movie and want to edit the depth manually of the individual subtitles.
One additional note about srt23Dass is that it does not "squeeze" the subtitles and so after conversion you need to manually reduce ScaleX OR ScaleY in the file to 50.
Unfortunately it doesn't seem to be developed anymore, which is a shame.
The ideal subtitles tool for me would be something like that which could also make use of the real 3D depth extracted from the 3D planes from the video stream.
r0lZ
3rd March 2016, 13:07
Thanks for the information. I'll check your presets soon. Currently, I'm checking various combinations of different SAR and DAR with all my players, in the hope that a de-facto standard can emerge. I'll post my findings here...
For the subtitles, I did already know the possibility to convert 2D text subtitles (usually SRT) to 3D ASS, but I know also that it is (currently) not possible to use the real 3D depth extracted from the 3D planes, and for me it's a major drawback. I did not know srt23Dass, but I know this web site (http://subtitle3d.com/), where you can convert your SRT to 3D ASS online.
BTW, it should be possible to add a tool in BD3D2MK3D to convert a SRT stream to 3D ASS with the correct depth values from the original 3D-Planes, and the correct positions on screen (cloned from the positions of an original BD SUP). I have never tried to implement that tool, simply because there are no textual subtitles in 3D BDs, and if the user downloads a SRT somewhere, most of the times, it will not be perfectly in sync, and the final depths of the individual subtitles can be wrong if they are taken from wrong start and end times. Also, it is not always easy to find the subtitles in your native language. And, finally, many players do not display the 3D ASS streams correctly, and show the subtitle only over one of the two views. And, of course, most hardware players cannot use ASS streams at all. So, IMO, 3D ASS subtitles are not really more interesting than 3D SUP. However, a tool to convert the original SUP stream to 3D ASS (with a first step to convert the bitmaps to text/SRT) would be very interesting. I know only two programs to convert the SUP to SRT: SupRip (http://exar.ch/suprip/) and the excellent Subtitle Edit (http://www.nikse.dk/subtitleedit/). They work, but they are very limited, they have no automatic OCR, and they are somewhat tedious to use. Therefore, I don't think that many BD3D2MK3D users will be interested in a tool to convert the subtitles to 3D ASS. If someone is really interested, I may add that tool later...
BTW, someone knows a good BD SUP to SRT (or HD VobSub to SRT) converter, if possible with fully automatic OCR and semi-automatic spell correction? If such a tool exists, it will motivate me to work on a SRT to 3D ASS tool.
frank
3rd March 2016, 13:29
A good way to generate your own 3D subtitles from srt is using
easySUP by deank (MultiAVCHD). It uses AVS2BDNXML and produces very usable BD sup files.
Then convert to 3D sup with BD3D2MK3D tools.
Edit deep values if necessary and reconvert.
@r0lZ
I use Subtitle Edit http://www.nikse.dk to generate srt, the best I know. You can use the zip as portable app. OCR works but you have to install the right language library.
But every OCR app I know has problems with spelling.
The frame-packing is in the h264 stream. It's the stereoscopy mode that is in the MKV header. Uhh, I forgot it. Thanks for the clarification!
konikpolny
3rd March 2016, 13:53
r0lZ, I must say I would be insanely grateful if you could add the feature of converting srt to ass with the use of original 3D-planes. It'd be enough to support adding external srts already made. I've got loads of perfectly synched and OCRed srt subs. The OCR process for the lack of fully automated tools could be done manually outside BD3D2MK3D.
frank
3rd March 2016, 14:47
Originally Posted by r0lZ:
Currently, I'm checking various combinations of different SAR and DAR with all my players, in the hope that a de-facto standard can emerge. Why? The TV or monitor is connected via HDMI. We only need that standard, current 1.4a. HDMI 2.0 (UHD 2160p, 4k) is another game.
HDMI 1.4a - 3D mandatory formats:
- frame packed (full size, BD)
- half SBS, half TAB (HDTV, bandwidth)
Since many of the capabilities detailed in the HDMI 1.4 specification are optional implementations, it’s the responsibility of the manufacturer to tell you what features are supported in the device.
Receivers with HDMI 1.4a can automatically detect the format. The aspect ratio in every case is 16:9!
Displays have an EDID table due to standard. That's why cropping (to other AR, 2.40...) will mess up the picture, but some dudes don't get it.
So if the stream has other formats, the player has to convert to one of the mandatory HDMI formats. Potplayer and Stereoscopic Player can do a lot.
r0lZ
3rd March 2016, 15:23
A good way to generate your own 3D subtitles from srt is using
easySUP by deank (MultiAVCHD). It uses AVS2BDNXML and produces very usable BD sup files.
Then convert to 3D sup with BD3D2MK3D tools.
Edit deep values if necessary and reconvert.
Personally, I use Subtitle Edit to convert SRT to BD SUP. It gives good results too, and can even convert to 3D directly (but unfortunately only with a fixed depth).
@r0lZ
I use Subtitle Edit http://www.nikse.dk to generate srt, the best I know. You can use the zip as portable app. OCR works but you have to install the right language library.
But every OCR app I know has problems with spelling.Yep. It's why I would like an app that can fix the most common errors automatically. SubRip (not SupRip) does that very well, but it doesn't work with BD SUP.
r0lZ, I must say I would be insanely grateful if you could add the feature of converting srt to ass with the use of original 3D-planes. It'd be enough to support adding external srts already made. I've got loads of perfectly synched and OCRed srt subs. The OCR process for the lack of fully automated tools could be done manually outside BD3D2MK3D.
I'll try to do it, but without guarantee. I don't know the ASS file format well, and I may have some difficulties with the guide file, since it is in a totally different format. Anyway, I'll try when I'll have some free time...
Why? The TV or monitor is connected via HDMI. We only need that standard, current 1.4a. HDMI 2.0 (UHD 2160p, 4k) is another game.
First, not everybody use a player connected to the TV via HDMI. Personally, I use an hard disc connected via USB, and the TV must recognise the format and AR correctly. (In the case of my Samsung TV and probably to most TVs, it stretches the 3D picture to occupy the whole screen anyway, so the SAR and DAR in the file are totally ignored, but other TVs or projectors may be smarter.)
Secondly, the software players are much more versatile, and need the correct AR, to display the movie in 3D or in 2D (like konikpolny does with MPC-HC, and I do with PotPlayer).
Finally, although I think it is not possible to determine the "right" DAR and SAR values that will work for any type of 3D and with any player, I think it is better to use by default the values that work best with the vast majority of software players. These values will be ignored in the case you describe, but they do not hurt, and may be very useful in many other cases.
Unfortunately, the results of the tests I did so far seem to indicate that there is not really an universal solution. I will still do some additional tests to try to clarify what some players need...
odyssey
8th March 2016, 16:36
I have trouble encoding my Wreck-It Ralph (nordic) blu-ray properly. During processing it complains about a few errors:
* DTS-HD stream (track 3): bad frame detected at position01:02:46,069. Resync stream.
* Warning: The AVC and MVC video streams do not have the same number of frames: 143017 and 143019. That means that the two streams are probably not synchronised properly, and that encoding this playlist to SBS or T&B may fail.
The script will be generated anyway.
Most of the movie encodes without problems (I didn't check the audio stream at the bad frame position yet). However, After the end titles, the stream breaks, just before the disney logo appears.
I wouldn't be surprised if it's some sort of copy protection preventing this, but I haven't had such bad problems with any other discs (even several other Disney titles).
I tried ripping it with both AnyDVD and DVDFab - Same issue.
I do however (for the sake of convenience) extract the contents to directories using WinRAR prior to processing. Do you think it would help mounting the ISO with Daemon-Tools or similar?
r0lZ
8th March 2016, 18:32
It's typical of a badly ripped BD. There is at least one part with bad data. That means that even if the decoder can read the AVC and MVC stream, they are almost certainly desynchronised after the error, and the MVC stream cannot be decoded properly (because decoding a frame from the MVC stream depends of the same frame in the AVC stream, and due to the desync, the frames do not match any more).
I don't think that could be an intentional protection. That problem is frequent, especially with downloaded ISOs, and afaik, it has never be caused by a protection.
It is always better to mount the ISO instead of copying the streams, because you have to copy the stereoscopic movie twice (in the form of M2TS and SSIF), but that has no impact on the possibility to recover the error.
Unfortunately, I think there is nothing to do, except re-ripping the BD correctly.
odyssey
8th March 2016, 20:02
It's not a downloaded iso - As I said, I've been ripping it with both AnyDVD and DVDFab and even tried two different drives, and I get the same error with every one. The only thing I didn't try, was mounting the ISO (I dislike Daemon Tools lately so unless it may fix the problem, I would avoid installing it).
So, how can I rip the BD properly? Any better ripping software available?
If extracted source vs. mounted iso only has impact on speed, I think I'm all set. It takes just about 2 hours encoding with default settings + --ref 4 --me umh. I tried both from NAS and local SSD with similar speed results.
r0lZ
8th March 2016, 20:14
There are many programs to mount ISO files. On Win8 or 10, it's even possible without any additional software. On my Win7, I use WinMount, not free unfortunately, but there are many alternatives.
I don't know other rippers than AnyDVD and DVDFab. Have you tried to clean the disc?
Sharc
8th March 2016, 22:52
So the Films & TV App of Win 10 evaluates the frame-packing parameter of mkv.
EDIT: frame-packing parameter in the h264 stream.
AFAIK the first App. It seems M$ has done its homework.
Note: The SAR for the hSBS must be set to --sar 1:1 or unspecified for undistorted 2D playback by the W10 Movie&TV app.
odyssey
8th March 2016, 23:05
Oh cool, I didn't know that! :) Thanks for the tip.
Apparently it had something to do with the extracted disc contents. I mounted the ISO, and it went through with no alerts and no problems. Encoded perfectly through the end!
r0lZ
9th March 2016, 09:33
Note: The SAR for the hSBS must be set to --sar 1:1 or unspecified for undistorted 2D playback by the W10 Movie&TV app.
Thanks! That was also my conclusion. Apparently, all 3D formats (half and full) require SAR 1:1. When I did my tests, I have noticed too that Bino and Stereoscopic Player require it for Half-SBS. Sview, PotPlayer (in 3D mode) and SM Player ignore the SAR (and therefore accept 1:1 too).
Most 2D players obey the SAR and if you want to display the two views undistorted, it is necessary to use 2:1. It's a pity, because it is impossible to have the correct final AR in both 3D and 2D modes, but anyway, who want to play a SBS movie with the 2 images side by side, even if they are not distorted? And with SAR 1:1, it is still possible to display one view only with a good 3D player or with MPC-HC with a custom Pan & Scan setting.
Therefore, the next version of BD3D2MK3D will use SAR 1:1 in all cases. At least, it's very simple for me! :-)
Apparently it had something to do with the extracted disc contents. I mounted the ISO, and it went through with no alerts and no problems. Encoded perfectly through the end!
Thanks for the info. It's interesting. BTW, finally, what tool did you use to mount the ISO?
odyssey
9th March 2016, 09:44
BTW, finally, what tool did you use to mount the ISO?
Windows 10 native as you suggested :) Pretty cool that you can do that now.
odyssey
9th March 2016, 09:57
Does anyone have experience with 4K (passive) 3D TVs and streaming 3D movies?
Passive 3D TVs work by polarising every other line, so for Full HD TVs, it's best to encode 3D titles in "top/bottom"-mode. With 4K TVs, you wouldn't lose any pixels when playing 3D titles, but is there a way to encode them properly and be able to stream them e.g. using DLNA from a NAS?
I wonder if Full-TB or Full-SBS would work and if it would be able to stretch it properly. Is there a better way? Interleaved?
I'm currently using an older LG 3D TV, but I'm very pleased with it and might upgrade to a LG 4K TV in the future. It would be nice if I could already encode my movies properly ;)
Sharc
9th March 2016, 11:10
.... it is impossible to have the correct final AR in both 3D and 2D modes, but anyway, who want to play a SBS movie with the 2 images side by side, even if they are not distorted?
Cross-eyed viewing perhaps (you remember the finger-focus trick) :D
And with SAR 1:1, it is still possible to display one view only with a good 3D player .....
Yes, e.g. Stereoscopic player has to be forced to the DAR (16:9) rather than leaving it on "Standard", otherwise the 2D will be displayed at half width.
I also think --sar 1:1 is currently the best compromise.
r0lZ
9th March 2016, 14:15
r0lZ, I must say I would be insanely grateful if you could add the feature of converting srt to ass with the use of original 3D-planes.
I'm working on the SRT to ASS 3D converter, but I have a problem with the fonts.
I know that it is possible to use a custom font and to include it as attachment in the final MKV, so that the players should be able to use the correct font to render the subtitles. But IMO the players able to do that are very rare, and it's probably never the case of most hardware players. Also, currently, I don't know how to determine the filename of the font that the user wants to use, For example, the Times New Roman font is made of 4 files: TIMES.TTF, TIMESI.TTF, TIMESBD.TTF and TIMESBI.TTF. If it seems relatively obvious that "Times New Roman" should be shortened to "Times" to obtain the correct base name of the font file, it's not as easy with other fonts. And I have no way to know if all files must be included, or only some of them. Therefore, I don't think that including the TFF file is a good option. I would prefer to give only the possibility to use an universal font, that exists on (almost) all platforms. As far as I know, only Arial, Times New Roman and Verdana are widely available (under all versions of Windows, Linux and Mac). They are also the 3 only fonts available at the subtitle3d.com (http://subtitle3d.com/) web site, and that seems to confirm that they are the 3 "good" fonts to use. But perhaps there are other fonts that any player accepting the subtitles in ASS format must recognise. I've tried to find some info on that subject on the internet, but without success. So, I need some help.
Someone know what ASS/SSA fonts are recognised by all platforms, without the need to install or mux them ?
Would it be a problem if only Arial, Times New Roman and Verdana are available ?
Is it advised to offer the choice of any local font, without muxing them in the final MKV ? What do the players if they cannot use the font referenced in the ASS script ?
It seems that MPC-HC and PotPlayer display correctly the subtitles (at the specified position and with the specified font and font size). Can you confirm ? I use also Aegisub to check the placement of the fonts. Are there other players or editors to check the fonts (and especially their size and position) ?
Otherwise, I think that the rest should not be very difficult to implement. So, I think I'll do it anyway...
konikpolny
12th March 2016, 18:56
r0lZ i think you could allow user to choose their own local font. I am using MPC-HC and if it can't find the font referenced it does substitute it with its own preferred font. I don't know about the other players. As regards font styles to mux i think it should be enough to enclose just the main one, but it should be tested. I also think that muxing font should be provided as an option.
The minimalistic approach you are suggesting is for a foolproof suitable-for-all players, and I understand that but it imposes its limitations and that is not necessarily good. I would vote for having the defaults which can be overwritten and advise about the consequences of the change.
I would prefer my own font but if you decide to only support arial, times and verdana it'll still be great. The ass is editable text format and the font can be changed in the sub file manually. It's also worth noting that for many players the ass subfile can be loaded externally and doesn't have to be muxed.
I'd also suggest starting with the most simple approach and allowing for more advanced support in the future.
Many thanks
r0lZ
12th March 2016, 20:29
Well. I think that (at least currently) I can only support the 3 "universal" fonts, for the reason explained above, but also because it seems that SubStation Alpha (SSA) does not use the same font size as the vast majority of programs. (I know that there is a difference between Point size and Pixel size, but SSA uses a third measure, totally non-standard.)
I need to know exactly the width and height of a subtitle rendered in a specific font and with a specific font size, to be able to position it correctly on screen, and minimize the risk of collisions with the objects in the foreground of the scene. That should be easy, but due to the strange font size used by SSA, it's a nightmare, because there is no direct correspondence of what I can measure in my program with what will be displayed by the SSA/ASS rendering engine. Furthermore, it seems that it is not sufficient to scale the values by a constant factor. That works somewhat, but the factor is different for each font! It is a pain to evaluate it, and I spent several hours to do it for the 3 universal font. I don't want to do it with all fonts available with Windows, and there is no way to automate that task. Therefore, the user will have to use one of the 3 fonts if he wants approximately correct results. It is still possible, as you suggest, to change the font and/or font size with a text editor, but that will be at your own risk. I can't support that officially.
BTW, I really don't understand some decisions of SSA. In (almost) all programs, the RGB colours are expressed in that order: R, G, B. Except in SSA/ASS, where it's the opposite: B, G, R! Converting between RGB to BGR is easy, but that forces to intercept the font color changes in the original SRT to convert them to the correct ASS format. Anyway, the anti-standard used by SSA is confusing, and IMO completely stupid! The problem of the font size is much more important, as afaik there is no way to solve it. (Of course, it you use a program such as Aegissub, the font size doesn't matter, because the user can change it freely and see the result immediately. It's totally different when the final subtitle has to be generated by a program, and still be at a precise position and occupy a certain space on screen.)
tyee
13th March 2016, 03:09
Just getting back into 3d after a long while. Quick question, can makemkv rip the 3d disc so that bd3d2mk3d can see it for processing? Full backup or mkv mode? I don't use anydvd.
r0lZ
13th March 2016, 10:02
I don't use MakeMkv, but I think that it can do a backup suitable for BD3D2MK3D. I think also that you can back up the main movie only, and that's of course an advantage in term of disc space.
You need an ISO or BD files in a directory on HDD for BD3D2MK3D. BD3D2MK3D can't accept a MKV as input.
Sorry, but I can't tell you more. Perhaps someone else can confirm?
tebasuna51
13th March 2016, 14:54
I make a test with a recently ISO converted to SBS with BD3D2MK3D.
I used MakeMkv to rip that ISO to a mkv output (adding MVC-3D video).
Of course BD3D2MK3D can't open the mkv produced by MakeMkv, but I use tsMuxeR to open the mkv (see attached image, maybe BD3D2MK3D can accept mkv3D and use tsMuxeR to extract tracks).
I generate a new test ISO with tsMuxeR, from the mkv, and now is accepted by BD3D2MK3D and seems work fine.
See the 2 attached log's. Forget audio and x264 parameters differences. Maybe there are a problem with subs like the info in avs show:
Original avs
# Subtitle: Spa PGS, 3D-plane: 0
# Subtitle: Eng PGS, 3D-plane: 1
# Subtitle: Spa PGS, 3D-plane: 2
Test avs
# Subtitle: Spa PGS, 3D-plane: 0
# Subtitle: Eng PGS, 3D-plane: 0
# Subtitle: Spa PGS, 3D-plane: 0
r0lZ
13th March 2016, 15:38
Great. Thanks for the help.
Perhaps I'll add MVC MKV input support later, but currently I'm working on the ASS 3D subtitles.
tyee
16th March 2016, 05:23
Thanks guys. I used makemkv to create a mkv with just the main movie. Then tsmuxer to create a blu-ray iso from that, then mounted with slysoft virtual clone drive. Worked great.
r0lZ
16th March 2016, 09:28
With that MakeMkv+tsMuxeR method, what do you do to have the correct subtitle depths when BD3D2MK3D converts the subtitles from the re-authored BD to 3D? AFAIK, there is no way to specify the 3D-Plane number to use with a specific subtitle stream in the MKV, therefore the 3D-Plane assignments are lost. Right?
I know that it is possible to specify the 3D-Planes to use when the ISO is created with tsMuxeR, but if I implement a method to load the MKV directly in BD3D2MK3D, I will have no way to know the original 3D-Plane assignments. Or is it an info about the 3D-Planes stored in the MKV by MakeMKV, like a backup of the original MPLS? Someone knows if that info exists, and if it's the case, what and where it is?
odyssey
16th March 2016, 10:48
Why is bdsup2sub++ not recommended?
Btw, no_simpleblock seems not to be supported anymore.
A few "requests" :)
- It would be cool if it could show the actual number of channels on each audio stream, and perhaps be able to choose for each one weather it should extract the core or not. F.ex. in case of 7.1 tracks, I would rather keep the 7.1, but would still extract core of additional 5.1 tracks to save space.
- In case of hardsubbing, also create an AVS/CMD for non-subbed :)
Perhaps be able to create different configurations of a movie. Say I've processed a movie with hardsubbing, and now I want to create a version without subs and a different language, then it could create a new avs/cmd/options file in the same directory, and skip the extraction because the files are already extracted.
It's really no big deal. I just modify them manually :)
r0lZ
16th March 2016, 11:23
Why is bdsup2sub++ not recommended?It has a lot of bugs. Especially, when it converts some subtitle streams to XML/PNG, it generates a lot of black images and a lot of entries in the XML file for the same subtitle. It is then impossible to convert the XML to SUB or SUP. Unfortunately, it is not developed any more, so that bug cannot be fixed. (The development of the java version has stopped too, but it is more mature and has less bugs. Its well known bug of the wrong frame rate used when converting to or from XML/PNG can easily be addressed, and anyway the ++ version has the same bug.)
It's a pity, because I hate java, and the ++ version is 10 times faster, but it is too dangerous to use it currently.
Btw, no_simpleblock seems not to be supported anymore.
OK, I'll verify that. Can you confirm that the option is simply useless, or does it make MkvMerge crash?
A few "requests" :)
- It would be cool if it could show the actual number of channels on each audio stream, and perhaps be able to choose for each one weather it should extract the core or not. F.ex. in case of 7.1 tracks, I would rather keep the 7.1, but would still extract core of additional 5.1 tracks to save space.
It's not simple for me. And anyway, if you select the global option to extract the core in tab 2, the 7.1 track is demuxed, but the 5.1 track is muxed automatically. You can easily modify __MUX_3D_OPTIONS.txt to replace it with the 7.1 version since it is on HDD.
- In case of hardsubbing, also create an AVS/CMD for non-subbed :)
Again, it's not as easy as it sounds. Creating a second AVS script is not really difficult, but I will have to create also the new CMD files to call the right AVS script. Anyway, it is very easy to remove the command that does the hardsubbing if you want to do the two versions. Also, new options and scripts will be confusing for the casual users.
Perhaps be able to create different configurations of a movie. Say I've processed a movie with hardsubbing, and now I want to create a version without subs and a different language, then it could create a new avs/cmd/options file in the same directory, and skip the extraction because the files are already extracted.
It's difficult for me. The normal flow of operations is already very complicated (due to the numerous options available) and I don't want to make it even harder to maintain. And I need some information available only when the whole process is made (such as the exact number of frames, available only when the streams are demuxed), so currently it's impossible. Also, I will have no way to know if the user wants to restart the whole process from scratch because something went wrong the first time, or if he wants only to generate a variant of the scripts.
Anyway, the philosophy of BD3D2MK3D is to save all files in a project directory and document them as far as possible so that an experienced user can freely modify them if he wish, instead of hiding the details of the operations in a black box, like most programs do. The drawback is that many users feel uncomfortable with that numerous and sometimes somewhat cryptic files and I don't want to make things even more complex to understand. As you said:It's really no big deal. I just modify them manually :)
tebasuna51
16th March 2016, 11:33
...Or is it an info about the 3D-Planes stored in the MKV by MakeMKV, like a backup of the original MPLS? Someone knows if that info exists, and if it's the case, what and where it is?
Maybe in next version:
http://www.makemkv.com/forum2/viewtopic.php?f=10&t=13892&p=48157
r0lZ
16th March 2016, 11:57
Interesting info. Thanks. Let's hope a solution will be implemented soon.
frank
17th March 2016, 11:04
Until then:
BD3D2MK3D Tools Extract 3D-planes from MVC is able to work with .m2ts (MVC stream) of mounted iso.
So you can extract the 3D-plane-xx.ofs from iso before ripping with MakeMKV.
frank
17th March 2016, 11:18
For x265 encoding:
The profile info in __MUX_3D_OPTIONS.txt must be
x265 main@..
not
x265 high@
I prefer Preset Faster and level 4.0.
r0lZ
17th March 2016, 11:27
Until then:
BD3D2MK3D Tools Extract 3D-planes from MVC is able to work with .m2ts (MVC stream) of mounted iso.
So you can extract the 3D-plane-xx.ofs from iso before ripping with MakeMKV.
Yes, but the 3D-plane alone is useless. And AFAIK, MakeMKV doesn't remove the 3D-planes from the MVC stream, and tsMuxeR preserves them also when the ISO is created. If I'm right, the only thing that is missing in the re-authored ISO is the reference (what subtitle stream uses what 3D-plane). Saving the 3D-plane itself doesn't help.
However, I can be wrong. I don't know exactly how MakeMKV and tsMuxeR handle the SEI messages with the planes. I know for sure that tsMuxeR doesn't remove them when the stream is demuxed, and I suppose that there is no reason to remove them when it is remuxed. So, IMO, only MakeMKV can be a problem here. I can't check that myself, since I don't have the license.
For x265 encoding:
The profile info in __MUX_3D_OPTIONS.txt must be
x265 main@..
not
x265 high@
I prefer Preset Faster and level 4.0.
OK, I'll have a look...
r0lZ
17th March 2016, 11:56
Hum, sorry, but it seems that it's the profile high that is used with the preset faster:
E:\BD3D2MK3D_projects\test_faster\00015>"D:\Tcl\work\BD3D2MK3D\toolset\avs2yuv.exe" "__ENCODE_3D_MOVIE.avs" -frames 3084 -o - | "D:\Tcl\work\BD3D2MK3D\toolset\x264_x64.exe" --crf 22 --preset faster --sar 1:1 --range tv --colormatrix bt709 --frame-packing 3 --qpfile chapters_3D.qpfile --frames 3084 --fps 24000/1001 --output "00015_3D.264" --demuxer y4m --stdin y4m -
__ENCODE_3D_MOVIE.avs: 1920x1080, 24000/1001 fps, 3084 frames
y4m [info]: 1920x1080p 1:1 @ 24000/1001 fps (cfr)
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
x264 [info]: profile High, level 4.0
[3.0%] 94/3084 frames, 14.05 fps, 1172.49 kb/s, eta 0:03:32
I've also verified the other presets, and only the superfast preset gives not a high profile. In that case, it's baseline, not main. So, unless you force x264 to use the main profile by specifying additional x264 options, BD3D2MK3D is right. Or x264 is wrong.
r0lZ
17th March 2016, 14:59
- In case of hardsubbing, also create an AVS/CMD for non-subbe0d :)
I have not implemented that, but I have improved slightly the content of the mux option file. Now, when a subtitle is hardcoded, it is also added in the MUX options file, but commented out. It is therefore easier to edit the files to create also a non-hardsubbed version of the movie.
You should:
- Edit the AVS script to remove the command that hardcodes the subtitle.
- Edit __MUX_3D_OPTIONS.txt to uncomment the subtitle stream.
- Less important: When a subtitle is hardcoded, its language code is assigned to the video track, since the video is now in a specific language. If you are picky, you should also restore the language of the video track to "und".
- It is also a good idea to change the output file name, of course.
tebasuna51
17th March 2016, 17:00
I can't check that myself, since I don't have the license.
MakeMKV is free while in beta (http://www.makemkv.com/forum2/viewtopic.php?f=5&t=1053)
r0lZ
17th March 2016, 17:11
Including for the BD? I believed it was free only for the DVD. Anyway, I'll download it again. Thanks.
tebasuna51
17th March 2016, 17:50
http://www.makemkv.com/
...
- Functionality to open DVD discs is free and will always stay free.
- All features (including Blu-ray decryption and processing) are free during BETA.
r0lZ
19th March 2016, 11:25
I've finished the beta version of the SRT to ASS 3D converter, and I have tried to release BD3D2MK3D v0.86, but unfortunately currently I can't log in to my FTP account at VideoHelp. I hope that the problem will be solved soon, and I'll release v0.86 officially as soon as possible.
In the meantime, you can download BD3D2MK3D v0.86 here (https://www.wetransfer.com/downloads/ed15a57bbbce02b2e1b2a3ad516c263d20160319101324/d787530f3b1f22e944a7a94937bec25020160319101324/8810a2). (That URL will be valid only during one week.)
There are still some things to improve in the SRT to ASS 3D converter, but it is already usable. See the help in the menu for an explanation on how to use it. Suggestions, bug reports and comments are welcome. Have fun!
frank
19th March 2016, 12:39
Originally Posted by r0lZ:
Hum, sorry, but it seems that it's the profile high that is used with the preset faster:
Quote:
E:\BD3D2MK3D_projects\test_faster\00015>"D:\Tcl\work\BD3D2MK3D\toolset\avs2yuv.exe" "__ENCODE_3D_MOVIE.avs" -frames 3084 -o - | "D:\Tcl\work\BD3D2MK3D\toolset\x264_x64.exe" --crf 22 --preset faster --sar 1:1 --range tv --colormatrix bt709 --frame-packing 3 --qpfile chapters_3D.qpfile --frames 3084 --fps 24000/1001 --output "00015_3D.264" --demuxer y4m --stdin y4m -
__ENCODE_3D_MOVIE.avs: 1920x1080, 24000/1001 fps, 3084 frames
y4m [info]: 1920x1080p 1:1 @ 24000/1001 fps (cfr)
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.1 Cache64
x264 [info]: profile High, level 4.0Sorry, you've confused it. I meant x265 used for HEVC, and that is not the same.
"D:\3D\BD3D2MK3D\toolset\x265_x64.exe" --crf 20 --preset faster --level-idc 4.0
...
x265 [info]: HEVC encoder version 1.9+73-6d06de58c3163c19
x265 [info]: build info [Windows][ICC 1500][64 bit] 8bit
x265 [info]: Compiling by KG7x [x265.ru]
x265 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 SSE4.2 AVX AVX2 FMA3 LZCNT BMI2
x265 [info]: Main profile, Level-4 (Main tier)Version 1 of the HEVC standard defines three basic profiles: Main, Main 10, and Main Still Picture. [ITU 2015]
HEVC - Wiki (https://en.wikipedia.org/wiki/High_Efficiency_Video_Coding)
r0lZ
19th March 2016, 12:46
Oh, OK. I don't use x265 often, and I did not pay attention to that.
That will be fixed in the next version.
[EDIT] Fixed in final v0.86, posted just below.
r0lZ
19th March 2016, 13:37
Baldrick has just fixed the problem of the FTP login at VideoHelp (Thanks!), so here is the official release of v0.86.
Note that this version is slightly different that the one posted above. I've just fixed the label of the video track of the 3D version when x265 is used to compute it. (In fact, I've just removed the profile and level information from the label.) It's the little bug reported by Frank just above. If you don't use x265, the two versions are strictly equivalent, and anyway, the label of the video stream is not really important. However, you should download the final release anyway.
v0.86 (March 19, 2016)
- Added the subtitle tool Convert SRT to ASS 3D (still in beta)
- The SAR (Sample Aspect Ratio in the h264 stream) is now 1:1 for all 3D modes (Full and Half).
- When a subtitle is hardcoded, it is now also present but commented out in __MUX_3D_OPTIONS.txt
- Fix: Wrong label of video stream when using x265 to encode the 3D version.
- Updated MkvToolnix exes to the latest version (v8.9.0)
frank
19th March 2016, 14:33
Thanks.
I'm testing with HEVC because Germany starts DVB-T2 (incl HEVC) with the Olympics. Then from 2017, all terrestrial tv channels are to be switched to HEVC.
BD3D2MK3D is a very good tool to study the behavior of HEVC. Results are very good, you can save 30-50 % size.
I use it now to convert very long 3D movies like Avatar, Jurassic World in excelent quality. Streaming from 8GB USB stick is possible. With my notebook I use raw interleave output to HDMI for the best passive 3D picture. You cannot trust the bad built-in tv players. So at the moment my notebook (Potplayer) decodes HEVC very fine.
r0lZ
19th March 2016, 14:49
I like the compression and quality of HEVC too, but the problem is the compatibility. I guess I'll have to buy an external hardware player, or a mini-PC to run Kodi, but currently I use the player of my TV. It works very well with AVC and gives a much better picture than most external players I've tested so far, but it doesn't support the subtitles (except the stupid SRT format) and, unfortunately, HEVC. Anyway, I prefer to wait before buying something else, because I guess that many players are not yet ready for HEVC, and I prefer to have a larger choice...
r0lZ
22nd March 2016, 10:09
http://www.makemkv.com/
...
- Functionality to open DVD discs is free and will always stay free.
- All features (including Blu-ray decryption and processing) are free during BETA.
Hum, it's not what MakeMKV itself tells. I've just installed the latest version and opened a BD3D, and I see this dialog:
---------------------------
MakeMKV BETA popup
---------------------------
This functionality is shareware. You may evaluate it for 30 days after what you would need to purchase an activation key if you like the functionality. Do you want to start evaluation period now?
---------------------------
&Yes &No
---------------------------
tebasuna51
22nd March 2016, 10:30
Hum, it's not what MakeMKV itself tells. I've just installed the latest version and opened a BD3D, and I see this dialog:
Use Help -> Register and the provided beta key.
r0lZ
22nd March 2016, 10:46
What provided beta key? Where can I find it? Why is it necessary to make things so complex?
And I don't understand how to create a 3D MKV. I can open the 3DBD as files, and in that case, it is possible to select the title to backup and the additional MVC stream (not selected by default), but the resulting MKV contains only the AVC stream, and is therefore 2D only, and useless for BD3D2MK3D.
In the other hand, if I open the BD3D as a disc, the only thing that I can do is a whole backup to HDD. I cannot make a MKV with a specific title.
Have I missed something? How do you create a MVC MKV with a specific title?
sneaker_ger
22nd March 2016, 10:49
but the resulting MKV contains only the AVC stream
How did you determine that?
r0lZ
22nd March 2016, 10:55
With MkvExtract, MkvMerge and MediaInfo. No MVC stream.
sneaker_ger
22nd March 2016, 10:58
MediaInfo is not looking like this?
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Stereo High@L4.1 / High@L4.1
MultiView_Count : 2
r0lZ
22nd March 2016, 11:05
No. There is ONLY an AVC stream. No MVC. Never. I did 5 tests so far, and it seems impossible to get it to work as expected.
Perhaps it's because I did not have the beta key. I've just found it, and will retry immediately...
[EDIT] No, no way. It doesn't work.
Sorry, I abandon. I have never liked MakeMKV, and the current version confirms that it has not evolved at all since the last time I've used it (years ago). There is still no preview, for example! And if it works only in some circumstances, I will probably receive questions and emails asking how to use it with BD3D2MK3D, and I will be unable to explain. I don't want that. Sorry.
Sharc
22nd March 2016, 11:31
I just tried MakeMKV here.
It extracts the AVC and MVC streams and combines these in one interleaved .mkv which plays fine with stereoscopic player..
But if I remember correctly their interleaved format is proprietary (?); at least it used to be.
sneaker_ger
22nd March 2016, 11:33
I think they were the first to do it. Matroska isn't really well defined, most of it is just "do like mkvmerge does". LAV + madVR now play mvc-in-mkv as well (in 2d and 3d).
Sharc
22nd March 2016, 12:09
Well, something seems to have been improved:
The interleaved stereoscopic .mkv produced by MakeMKV can now be demuxed with tsMuxeR (2.6.12) and split into separate .264 (=avc) and .mvc streams.
r0lZ
22nd March 2016, 12:15
MediaInfo is not looking like this?
Format : AVC
Format/Info : Advanced Video Codec
Format profile : Stereo High@L4.1 / High@L4.1
MultiView_Count : 2
Damn, you are right! The video is Stereo, with 2 views. :goodpost:
I have been fooled by the way the video streams are presented (as a single AVC stream, but stereo).
I will now see what I can do with tsMuxeR to extract the two streams. (I need them as two different streams, not a single interleaved stream.)
Well, something seems to have been improved:
The interleaved stereoscopic .mkv produced by MakeMKV can now be demuxed with tsMuxeR (2.6.12) and split into separate .264 (=avc) and .mvc streams.
It's exactly what I need.
tebasuna51
22nd March 2016, 22:53
It's exactly what I need.
Yes, for that I show you the attached image in http://forum.doom9.org/showthread.php?p=1760566#post1760566
r0lZ
23rd March 2016, 09:06
Yes. thanks. But finding what's in the MKV is not the most difficult task. Currently, BD3D2MK3D assumes that the information is stored in a BD structure, and modifying everything is really not easy. I'm still not sure I'll do it. But I am trying...
Sharc
23rd March 2016, 09:15
I imagine that the extra step could be to remux the .mkv into a BD structure or .iso using tsMuxer, and from there onwards continue with BD3D2MK3D "as usual".
But probably not so easy and straightforward, as I imagine ....
r0lZ
23rd March 2016, 09:41
It's not a bad idea, and yes, it's (relatively) straightforward. At least, it's much easier than having to change my code each time it is dependent of the input type. But IMO, doing what you suggest will ruin the advantage of integrating the 3D MKV input in BD3D2MK3D. That will require to write again a very large file on disc, and therefore much disc space and much time. Also, everybody can do that with the tsMuxeR GUI, and the advantage of doing it directly with BD3D2MK3D is minimal. So, if I do the job of integrating the MKV input, it must be processed directly, without the additional step of the ISO creation.
However, I remember your idea, but just for a small part of the ISO. Currently, many necessary values are taken from the MPLS file, and of course, that doesn't work for the MKV input. When a MKV is opened, I may generate internally a fake MPLS with the necessary info, just to not have to change the code everywhere. The current code will fetch the values from the fake MPLS when they are needed, just like it does with a real BD or ISO. But I'm still not sure that will be sufficient to avoid most difficulties...
Also, there are two well known problems with the 3D MKV format: the left/right view first flag and the 3D-plane assignments are lost. I'm still not sure for the audio delays. All that values are normally in the MPLS file, but I need a way to either compute/deduce/retrieve them automatically, or I need a GUI to input them from the user.
r0lZ
24th March 2016, 11:15
I did some tests with MakeMKV and tsMuxeR, and I have some problems with the detection of the audio tracks.
When the original audio is DTS-HD Master Audio, MakeMKV selects by default the core, but you can also select the HD-MA stream. Good. But when the created MKV is parsed by tsMuxeR, it prints this for the two audio streams:
Track ID: 2
Stream type: DTS-HD
Stream ID: A_DTS
Stream info: Bitrate: 1536Kbps core + MLP data.Sample Rate: 48KHz Channels: 2 (DTS Master Audio 24bit)
Stream lang: und
Track ID: 3
Stream type: DTS
Stream ID: A_DTS
Stream info: Bitrate: 1536Kbps Sample Rate: 48KHz Channels: 2
Stream lang: und
Track 3 is OK, but the stream type of track 2 is DTS-HD instead of DTS-HD-MA. I need a correct stream type to determine precisely the way the audio can be processed and display the correct info in the GUI. Unfortunately, I haven't found so far a BD with a DTS-HD High Res track, and therefore I cannot check if tsMuxeR prints something different for HD and MA. If someone can check that for me, I'll be very grateful.
You have to use the command line: tsMuxeR.exe 3Dmovie.mkv
The second problem I have is with TrueHD audio. It is also possible to select either the core or the THD audio, or both in MakeMKV. But when tsMuxeR parses the file with a THD track, I see this:
Track ID: 2
Can't detect stream type
Track ID: 3
Stream type: AC3
Stream ID: A_AC3
Stream info: Bitrate: 640Kbps Sample Rate: 48KHz Channels: 5.1
Stream lang: eng
Obviously, tsMuxeR is unable to recognise the THD track. I don't know if it's a bug in MakeMKV or in tsMuxeR, and if the problem exists with all THD tracks or if it is specific to the BD I've used. Again, someone can confirm that TrueHD is not supported by tsMuxeR ? If it works, what is the exact Stream Type it prints ?
Finally, I have been unable to find a BD3D with an example of AC3+ (aka EAC3) stream, and therefore I don't know what tsMuxeR prints in its Stream Type field. (I know that it uses A_AC3 for the Stream ID, but it's not sufficient.) Can someone help ?
Thanks in advance!
odyssey
24th March 2016, 14:41
r0lz, can you display the channels in the select streams tab?
It's useful, because (to me) it makes sense to keep 7.1 tracks, but extract core of lossless 5.1 to save space.
Perhaps also display if it's an Atmos track. I don't think you can see that today.
r0lZ
24th March 2016, 15:18
It's difficult. I don't have the info directly. In the MPLS, there is only an "audio_format" value, that can be 1, 3, 6 or 12, corresponding to this:
1 "Mono"
3 "Stereo"
6 "Multi-channel"
12 "Stereo/Multi-channel"
Currently, I display exactly that. It is not possible for me to analyse the streams themselves and therefore I can't count the channels. It might be possible to deduce the number of channels according to the codec type and the audio_format, but I'm not sure it works with all codec types, and I don't know the rules anyway. I don't want to risk to display a wrong info, so currently I prefer to display only the content of the MPLS, without trying to improve it.
Atmos is completely opaque to the tools I use, and I can't detect or handle it specifically. Sorry.
Note that you can easily inspect the real content of the audio streams with a good player or MediaInfo, and select the options in BD3D2MK3D accordingly. And if you are still not sure or if you want to pick the core of some streams and leave other ones in their original format, you can untick the option to extract the core, and demux. Then, when the demux is finished, use the Tools menu to extract the core of the streams you want in light 5.1, and edit the __MUX_3D_OPTIONS.txt file to change the filename and label of that streams. It's easy.
odyssey
24th March 2016, 15:58
Why is it hard? You write the info already in the mux options file, but since you can only see that when the streams are demuxed I can't make the decision when I make the project.
r0lZ
24th March 2016, 17:24
It's exactly for that reason for me too. I know the exact number of channels only when the streams are demuxed. When the GUI is built, I don't have the info. And don't ask me to demux everything anyway just to know the number of channels!
tebasuna51
24th March 2016, 19:46
but the stream type of track 2 is DTS-HD instead of DTS-HD-MA. I need a correct stream type to determine precisely the way the audio can be processed and display the correct info in the GUI.
For me is enough DTS-HD, the question is extract the 'core' or preserve the HD, no mather if is MA or HR.
Unfortunately, I haven't found so far a BD with a DTS-HD High Res track, and therefore I cannot check if tsMuxeR prints something different for HD and MA.
A DTS Hi-Res, 7.1 channels, 3018kbps, 96kHz (core: DTS, 5.1 channels, 1509kbps, 48kHz) in mkv is show by tsMuxeR like:
Track ID: 2
Stream type: DTS-HD
Stream ID: A_DTS
Stream info: Bitrate: 3045Kbps Sample Rate: 96KHz Channels: 7.1
Less info than a DTS-MA
The second problem I have is with TrueHD audio...
Obviously, tsMuxeR is unable to recognise the THD track. I don't know if it's a bug in MakeMKV or in tsMuxeR, and if the problem exists with all THD tracks or if it is specific to the BD I've used. Again, someone can confirm that TrueHD is not supported by tsMuxeR ?
Seems than tsMuxeR don't recognise THD track (Atmos or standard) in mkv's. Always get: Can't detect stream type
A workaround can be use eac3to 3Dmovie.mkv
MKV, 1 video track, 3 audio tracks, 0:02:29, 24p
1: h264/AVC, 1080p24 (16:9)
2: TrueHD (Atmos), English, 7.1 channels, 48kHz
3: AC3, English, 5.1 channels, 640kbps, 48kHz
...
Finally, I have been unable to find a BD3D with an example of AC3+ (aka EAC3) stream, and therefore I don't know what tsMuxeR prints in its Stream Type field.
Not from a BD3D but:
Track ID: 4
Stream type: E-AC3 (DD+)
Stream ID: A_AC3
Stream info: Bitrate: 1664Kbps (core 640Kbps) Sample Rate: 48KHz Channels: 7.1
Stream lang: eng
r0lZ
24th March 2016, 20:24
Thanks for the info. Very useful.
Using eac3to to retrieve the info about the THD tracks is possible, as well as MkvInfo. But the problem is that I have to demux it, and if tsMuxeR cannot recognise the track, that means that it cannot demux it. The workaround would be to use eac3to to demux all tracks. And that means that I have to change totally the current workflow of the program and rewrite a big part. And since eac3to cannot demux many subtitles from the 3DBDs, I don't want to use it for the BD3Ds. And using two different demuxing methods for the BD3D and MKV modes is absurd. I'm afraid I'll have to ignore the THD tracks. The users will need to select the AC3 core in MakeMKV and de happy with that! Or use AnyDVD to decrypt the original BD.
AKI84
25th March 2016, 23:44
Obviously, tsMuxeR is unable to recognise the THD track. I don't know if it's a bug in MakeMKV or in tsMuxeR, and if the problem exists with all THD tracks or if it is specific to the BD I've used. Again, someone can confirm that TrueHD is not supported by tsMuxeR ?
A MKV file with a TrueHD track has always been a problem with tsmuxer.
https://github.com/mbunkus/mkvtoolnix/wiki/TrueHD-and-AC3
If a TrueHD track contains AC3 data then both data sets are completely decodable independently from another. The AC3 part is present so that if that track is output to a hardware decoder that doesn't know about TrueHD then that hardware decoder can still decode the AC3 part. The only difference between the two is that TrueHD is a lossless codec while AC3 isn't – but they've both been done from the same source material.
The Matroska specs state that one track must only contain data for one codec. Therefore mkvmerge cannot keep the AC3 interleaved with the TrueHD part in a single track.
The problem is that tsmuxer only works with a thd+ac3-core track.
r0lZ
26th March 2016, 07:45
I see. It makes sense.
It's a pity. Perhaps tsMuxeR could try to re-create the THD+AC3 track with the THD and AC3 tracks from the MKV. But since the development of tsMuxeR has stopped, we have to live with that problem.
Anyway, if someone really want to add the THD track in the final SBS/T&B MKV, he can demux it with MkvExtract, and remux the MKV with the additional track with MkvMerge.
tebasuna51
27th March 2016, 01:18
I make some test and suggest to MakeMkv developer include tags for 3d-plane: http://www.makemkv.com/forum2/viewtopic.php?f=10&t=13892#p48559
After that all the info needed to create a fake mpls can be obtainend with:
mkvmerge --engage keep_track_statistics_tags -F verbose-text -i INPUT.mkv >output.log
For me still there are a pending question: Audio delays
When tsMuseR extract audio tracks ignore the audio delays in mkv's (eac3to add the delay automatically), and is not easy know the mkv delays because aren't stored in metadata.
AFAIK the only method is extract the timecodes of each audio track:
mkvextract timecodes_v2 INPUT.mkv 1:timecodes_1.txt
and read the second line of the txt:
# timecode format v2
200
210.666667
...
Here the delay of track 1 is 200 ms.
r0lZ
27th March 2016, 09:32
I've seen (and replied to) your message at the MakeMKV forums. Good proposition. Thanks!
I'm not sure the audio delays are so important. Personally, I have never seen an audio streams with a delay in any BD. (BD3D2MK3D verifies them and uses them, if any, but afaik they are always 0.) And I suppose that MakeMKV doesn't truncate the audio before muxing them to MKV, so I guess that the problem of the delay can be ignored. Of course, if it appears that some MKVs created by MakeMKV have noticeable audio delays, I'll have to take them into account. But I'll do that later. For me, there are many other things to solve, much more important. (BTW, I've just finished the part of the code that loads the MKV in the GUI, and let the user select the streams he wants. But currently, it is totally impossible to demux the file. I have still many things to modify...)
r0lZ
27th March 2016, 09:54
tebasuna51, I'm not sure why you have specified the option --engage keep_track_statistics_tags in your example:
mkvmerge --engage keep_track_statistics_tags -F verbose-text -i INPUT.mkv
Apparently, it is possible to retrieve the information without that option:
mkvmerge -F verbose-text -i INPUT.mkv
Is it something I've missed?
tebasuna51
27th March 2016, 10:42
Personally, I have never seen an audio streams with a delay in any BD.
I don't see delays in BD's also, but maybe there are "custom" BD's with added audio tracks from DVD's with delays.
And I suppose that MakeMKV doesn't truncate the audio before muxing them to MKV, so I guess that the problem of the delay can be ignored.
I don't know how MakeMKV manage the delay, if there are any, I'll make some test about that.
But I know mkvmerge behaviour, mkv only support positive delays then, when a track have negative delays, for instance a .m4a with initial silence added, mkvmerge truncate the initial frames until obtain a 0 or positive delay.
Of course, if it appears that some MKVs created by MakeMKV have noticeable audio delays, I'll have to take them into account. But I'll do that later.
I agree, can be do later.
(...I have still many things to modify...)
Yes, I don't know Tcl-Tk languaje but reading your source file I can see many dependencies of BD structure. Thanks for your effort.
tebasuna51
27th March 2016, 11:10
tebasuna51, I'm not sure why you have specified the option --engage keep_track_statistics_tags in your example
MakeMKV use mkvmerge without --disable track-statistics-tags, then there are always usefull data not showed without --engage keep_track_statistics_tags.
All tracks show that info:
tag_bps:18321545
tag_duration:00:02:00.663000000
tag_number_of_bytes:276341585
tag_number_of_frames:2893
bps is the real average bitrate of the track, usefull for VBR tracks (DTS-HD, THD, ...)
duration show you the real duration of the track
number_of_bytes show the expected size of extracted track
number_of_frames show the number of subs for instance, or the number of video frames.
Last MediaInfo versions uses that tags, if present, to show the exact info, without that tags MediaInfo can't know exact values without examine the full file, and don't do that, show some estimation some times wrong.
r0lZ
27th March 2016, 11:43
I know that, but BD3D2MK3D doesn't need that infos. To retrieve the 3D-plane tags, "-F verbose-text" is sufficient. I have other ways to retrieve the total duration, and the bps, number of bytes and number of frames are not necessary when the MKV is opened.
BTW, BD3D2MK3D includes the --disable-track-statistics-tags in its __MUX_3D_OPTIONS.txt file by default, but this can be changed with the Settings menu.
tebasuna51
27th March 2016, 12:01
No problem, it was only to show the full info.
tebasuna51
27th March 2016, 12:48
Delay MakeMKV test.
I created with tsMuxeR a Bluray folder adding manualy a delay of 200 ms to a DTS-HD track.
The m2ts output have the delay included:
M2TS, 1 video track, 2 audio tracks, 3 subtitle tracks, 0:02:01, 24p /1.001
1: h264/AVC, 1080p24 /1.001 (16:9)
2: DTS Master Audio, Spanish, 5.1 channels, 16 bits, 48kHz, 200ms
(core: DTS, 5.1 channels, 1509kbps, 48kHz)
3: DTS Master Audio, English, 5.1 channels, 16 bits, 48kHz
(core: DTS, 5.1 channels, 1509kbps, 48kHz)
4: Subtitle (PGS), Spanish
...
I used MakeMKV with defaults and the mkv generated preseve the delay:
MKV, 1 video track, 2 audio tracks, 3 subtitle tracks, 0:02:01, 24p /1.001
1: h264/MVC (right eye), English, 1080p24 /1.001 (16:9)
2: DTS Master Audio, Spanish, 5.1 channels, 16 bits, 48kHz, 200ms
(core: DTS, 5.1 channels, 1509kbps, 48kHz)
"Surround 5.1"
3: DTS Master Audio, English, 5.1 channels, 16 bits, 48kHz
(core: DTS, 5.1 channels, 1509kbps, 48kHz)
"Surround 5.1"
4: Subtitle (PGS), Spanish
...
Then can exist "custom" BD's with positive delay.
When I try to add a negative delay (-200) in tsMuxeR, seems than work like mkvmerge, cut the first DTS frames (verified decoding the track) and add a positive remaining delay:
M2TS, 1 video track, 2 audio tracks, 3 subtitle tracks, 0:02:01, 24p /1.001
1: h264/AVC, 1080p24 /1.001 (16:9)
2: DTS Master Audio, Spanish, 5.1 channels, 16 bits, 48kHz, 2ms
(core: DTS, 5.1 channels, 1509kbps, 48kHz)
...
I don't know if can exist "custom" BD's with negative delay, at least not using tsMuxeR.
sneaker_ger
27th March 2016, 13:07
Why do you need to demux the audio tracks in the first place?
r0lZ
27th March 2016, 13:19
To include them in the final MKV. ;-)
It is theoretically possible to use the original MKV to grab the streams, but that's not at all the current method used by BD3D2MK3D. It has to demux the audio streams from the BD (in BD mode) because it is too difficult to get them from multiple M2TS files (with seamless branching MPLS), and also to be able to convert them to AC3 if the user wants so. It is way too difficult for me to handle the BD and the MKV input modes totally differently. There are already enough differences to take into account. I can't add new difficulties, just to speed things up.
@tebasuna51:
Thanks for the test!
Can you show me the output of MkvMerge -F verbose-text -i INPUT.mkv ? Does it show the delay ?
And same question for the output shown by tsMuxeR INPUT.mkv
[EDIT] Never mind. I'll do the test myself.
r0lZ
27th March 2016, 14:29
AFAIK the only method is extract the timecodes of each audio track:
mkvextract timecodes_v2 INPUT.mkv 1:timecodes_1.txt
and read the second line of the txt:
# timecode format v2
200
210.666667
...
Here the delay of track 1 is 200 ms.
Indeed, the delay is not easy to retrieve. And I would like to avoid mkvextract, because it requires to save a big temp file on disc for each audio stream, and it takes ages to process the whole MKV file. I need only the first occurrence of the audio timecode, but I have no way to stop it to process the whole file. Also, currently, mkvextract is not included in the toolset, and I don't want to add it just for the delay problem.
Luckily, there is another solution. I can use mkvinfo --track-info (or -v) to output a lot of lines to stdout. And when I find a line with the following structure (for all audio tracks), I have found the delay, and I can kill mkvinfo:
| + SimpleBlock (key, track number 2, 8 frame(s), timecode 1.024s = 00:00:01.024)
That will certainly be much more rapid. And mkvinfo is already distributed with the toolset of BD3D2MK3D. :-)
Another solution would be to use the command-line version of MediaInfo, but it is not included in the toolset. However, that solution is so simple that I may be tempted to use it. ;-)
r0lZ
30th March 2016, 08:05
Here is a first beta with support for the MKV 3D input.
The source MKV file must have been created by MakeMKV (with the "Mpeg4-MVC-3D" video stream selected). Currently, the TrueHD audio tracks are ignored. I may add later a second demux pass to demux the THD track(s) with eac3to, but it's not yet implemented. Everything else should work as expected (including the audio delays), but remember that it's a beta! (Or should I say alpha?) It may have (and probably has) some bugs.
The program tries to find the info about the stereoscopy and 3D-Planes in the source 3D MKV, and should be ready when a new version of MakeMKV that include these fields/tags will be released, cut currently you will have to fill these values manually (in the first and second tab).
Please note that MkvMerge, MkvInfo and MkvPropEdit have been updated to the latest MkvToolnix version (v9.0.1), but that new version is NOT COMPATIBLE with the previous versions of BD3D2MK3D, because MkvInfo has a new --no-gui command line option that must be specified to use MkvInfo to grab the info from a MKV file. (Other tools, such as gMkvExtractGUI have the same problem.) So, after having tested the new beta, if you want to come back to v0.86, you will have to change the exes in the toolset folder, or restore the whole archive. It is not sufficient to simply overwrite BD3D2MK3D.exe ! (You can still download the latest stable version here: BD3D2MK3D.7z (stable) (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z))
This version fixes also the MKV compatibility option --engage no_simpleblocks. It was misspelled no_simpleblock, without the "s". (Thanks odyssey! And sorry. I forgot to fix this issue in v0.86.)
v0.87b1 (March 30, 2016)
- New possibility to open an interleaved 3D MKV file created by MakeMKV as input.
- Fix: The MKV compatibility option --engage no_simpleblocks was misspelled no_simpleblock
- Updated the MkvToolnix exes to the latest version (v9.0.1)
Download the beta: BD3D2MK3D_v0.87b1.7z [Link removed. Download the latest beta below.]
Please test the beta as far as possible. I have tested it with a few shorts, but I haven't much time to generate big MKV files with MakeMKV and then demux them, so my tests have been very limited. Please comment and report bugs and discrepancies here. Thanks!
tebasuna51
30th March 2016, 10:14
Thanks r0lZ.
I have now 2 BD's in my DD, one of them a custom JMBD with a extra audio track with a negative delay.
I'll make test with them.
r0lZ
30th March 2016, 11:02
... with a negative delay.How is it possible? My understanding of the delay is that the audio can start after the video, but not the opposite. :confused:
Anyway, the fact that the delay is negative should not be a problem for BD3D2MK3D, but I think that MkvMerge will cut the audio file when it will mux it.
tebasuna51
30th March 2016, 13:10
How is it possible?
I asked the authoring tool used to the author.
Anyway, the fact that the delay is negative should not be a problem for BD3D2MK3D, but I think that MkvMerge will cut the audio file when it will mux it.
Yep, is not a problem, I'm still checking some rounding differences but work fine.
--------------
A bug?
I'm pretty sure than I marked 'Left view in AVC stream', but in .avs:
# Current base view: right eye!
# The views are inverted: AVC stream = right view, MVC stream = left view.
right = SelectEven(interleaved)
left = SelectOdd(interleaved)
I attach the log's using the iso and the mkv from MakeMkv:
r0lZ
30th March 2016, 13:52
Oops, yes, there is a bug. The data are not correctly updated when the user ticks the option in tab 1, and the value -1 (meaning "undefined so far") is used instead of 0. I'll fix the bug asap...
r0lZ
30th March 2016, 14:21
OK, views order bug fixed.
I have also fixed another little bug. When a file from a BD was dropped over the main window (with tab 1 active), the BD was loaded, but without going to the BD input mode.
It is now also possible to drop a 3D MKV file over tab 1 to load it.
Download: [link removed]
r0lZ
30th March 2016, 16:04
Another bug fixed. tsMuxeR doesn't support meta files encoded in UTF-8, and crashed when there is a foreign or accented character in the filename of the input 3D MKV. Now, the meta file is saved in the encoding of the system. I hope that works in all cases, but at least that works with Latin European languages. If that doesn't work for you, you will have to rename the input 3D MKV file to remove all foreign characters and retry.
Download: [link removed]
tebasuna51
30th March 2016, 16:29
Thanks, downloaded b2.
How do you extract chapters from mkv?
With eac3to from mpls: 25 chapters
With mkvextract from mkv: 25 chapters
With BD3D2MK3D from iso: 26 chapters (one more at end like expected)
With BD3D2MK3D_beta from mkv: 21 chapters
Seems than lose 1 chapter each 5 (the 6, 11, 16, 21 and 26 from iso disappears)
EDIT: I don't see beta 3 but is not a problem for my test.
tebasuna51
30th March 2016, 16:53
With beta 2 avs problem solved, log is the same than beta 1.
The chapters problem remain.
r0lZ
30th March 2016, 17:19
I retrieve the chapters with tsMuxeR. And you're right. Some chapters were missing. That bug is fixed in beta 4.
Note that the additional chapter at the end of the movie can be removed just like with MakeMKV (if the last chapter is close enough to the end of the movie). See Settings -> Chapters.
Download: BD3D2MK3D_v0.87b4.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D_v0.87b4.7z)
tebasuna51
30th March 2016, 20:53
Thanks for the quick changes.
One last question about subtitles.
The .sup's extracted from mkv have little differences in PTS than the extracted from the iso, and always the DTS value to 0.
Is not a problem of tsMuxeR extraction because extracted with mkvextract have the same values.
Also there are differences between calculations converting sup to 3D-sup (like can be see in log's).
I not know if is a problem or not, because is out of my knowledge.
If is ok for you also for me.
I'll make now some test with my second BD.
r0lZ
31st March 2016, 11:41
Sorry to reply only now. This morning, I was blind, without internet!
I haven't noticed the PTS differences yet, but anyway, I use the same program (tsMuxeR) to demux the subtitles from the M2TS of the BD and from the 3D MKV, so I suppose it's not tsMuxeR's fault, and BD3D2MK3D is not responsible. I suppose the little differences are introduced by MakeMKV, perhaps because at some point, the PTS are converted to frame number, and then back to PTS? Anyway, when BDSup2Sub converts the subtitles, similar rounding problems happen. As long as the difference is less than one video frame, I don't care.
I know also that BDSup2Sub is totally wrong when it converts the SUP to XML/PNG. IIRC, the XML contains always the timings for 24 fps, regardless of the options you use during the conversion and the frame rate written in the XML. When the XML/PNG stream is converted back to SUP (or DVD SUB), it is necessary to specify that the frame rate must be converted from 23.976 to 23.976, or the timings are completely wrong. That conversions can introduce rounding problems, and finally a difference of one video frame, but IMO, for the subtitles, that doesn't matter much.
I will verify this when I'll have some time to do new tests, with long movies. But that may take some times. I'm currently working on the second demux pass for the TrueHD tracks...
r0lZ
31st March 2016, 15:21
Here is the latest beta. It can demux the TrueHD audio with eax3to (during a second demux pass). Of course, it's slow, but it's better than nothing. Again, there are probably some bugs...
Also, the current input mode (BD or MKV 3D) is now saved with the preferences, so that it will be used by default the next time you open BD3D2MK3D.
Download: BD3D2MK3D_v0.87b5.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D_v0.87b5.7z)
(I have not verified the PTS of the subtitles yet. I have to go now, but I should have some time tomorrow...)
tebasuna51
31st March 2016, 20:42
Ok, I know than little PTS differences in subs aren't important. We can forget that.
My test with my second BD work fine, all is the same using iso or mkv, with the know differences in sup's and chapters.
I'm check the chapters differences, and qpfile generated, and I see:
Time Time Time I-fra. I-fra I
Chapters Bad from mkv Ok from mpls Dif. mkv QP mpl QP Dif
--------- ------------ ------------ ---- ------ ------ ---
CHAPTER01 00:00:00.000 00:00:00.000 0
CHAPTER02 00:06:08.618 00:06:08.785 -167 8838 8842 - 4
CHAPTER03 00:12:20.406 00:12:20.490 - 84 17752 17754 - 2
CHAPTER04 00:17:30.591 00:17:30.591 0 25189 25189 0
CHAPTER05 00:23:51.054 00:23:51.180 -126 34311 34314 - 3
CHAPTER06 00:31:26.509 00:31:26.676 -167 45231 45235 - 4
CHAPTER07 00:35:54.485 00:35:54.486 - 1 51656 51656 0
CHAPTER08 00:42:29.421 00:42:29.547 -126 61125 61128 - 3
CHAPTER09 00:47:03.362 00:47:03.612 -250 67693 67699 - 6
CHAPTER10 00:53:16.318 00:53:16.318 0 76635 76635 0
CHAPTER11 00:59:12.632 00:59:12.716 - 84 85178 85180 - 2
CHAPTER12 01:04:38.040 01:04:38.041 - 1 92980 92980 0
CHAPTER13 01:08:32.108 01:08:32.108 0 98592 98592 0
CHAPTER14 01:14:22.416 01:14:22.416 0 106991 106991 0
CHAPTER15 01:21:03.483 01:21:03.609 -126 116607 116610 - 3
CHAPTER16 01:25:42.011 01:25:42.012 - 1 123285 123285 0
CHAPTER17 01:36:08.679 01:36:08.680 - 1 138310 138310 0
CHAPTER18 01:41:29.333 01:41:29.625 -292 145998 146005 - 7
Like I can't understand for what the differences I checked the I frames in video (must be the sames in mkv and mpls) and I discover than the I frames calculated with the mpls aren't always I frames in the video, but all calculated with the mkv chapters are I frames in video.
Then seems than MakeMKV correct chapters times to point real I frames in video, and the qpfile is better because point to real scene changes.
r0lZ
1st April 2016, 09:33
OK, thanks for the tests.
If I understand correctly, the chapters in the MKV are different than in the original BD, but they are better because they are perfectly aligned with the I-frames. Right?
For me, it's not necessarily a good point, because BD3D2MK3D creates an I-frame at the chapter point anyway (with the qpfile), but indeed, it MakeMKV sets it to a real scene change (which coincides with an I-frame almost always), it's good. It's less good if it chooses the I-frame immediately before or after the scene change.
Anyway, I have no way to modify the chapters myself. I can only trust the chapters in the MKV. I will just verify if the chapter timings are identical with all programs (tsMuxeR, eac3to, MkvMerge, MkvInfo and MediaInfo).
I may release the official v0.87 in a couple of days, if no new bugs are reported...
tebasuna51
1st April 2016, 10:17
If I understand correctly, the chapters in the MKV are different than in the original BD, but they are better because they are perfectly aligned with the I-frames. Right?
Correct.
I may release the official v0.87 in a couple of days, if no new bugs are reported...
We can't do more test until a new MakeMKV release, the actual beta key don't work after March 30.
r0lZ
1st April 2016, 10:52
I've seen that. And I have just accepted to start the evaluation period. I hope I haven't made a mistake, and that the evaluation period will be renewed with the next key.
I have already compared the output of several programs for the chapter points of the original BD.
It seems that eac3to removes automatically the last dummy chapter (near the end of the movie). tsMuxeR and MediaInfo keep it.
The 3 programs display only 3 decimals. Eac3to rounds the decimal part of the time code to the closest number. For example, it prints 00:16:35.203 for 44784114 ticks (at 45000th of a second), or exactly 995.2025333333333 seconds. tsMuxeR and MediaInfo round to the lower decimal: 00:16:35.202.
That rounding problems are very small and not really important, but I wonder who is right. Currently, when the input is a BD, BD3D2MK3D uses the same method than tsMuxeR and MediaInfo.
With the crazy NTSC frame rate, it is almost never possible to give an exact timing to point just to a specific frame. When the chapter point does not falls exactly on a frame, I don't know if MkvMerge stores the time code of the nearest, previous or next frame, or if it leaves the original chapter point untouched. That's important to select the best rounding method.
I will do other tests with 3D MKV files later. Currently, I must do other things...
r0lZ
1st April 2016, 18:38
I confirm that MakeMKV changes the chapter points. I'm not sure it puts them on I-frames, but indeed, most of the times, they are on a scene change. So, I don't worry about that, and anyway I can't restore the original timings.
Here is probably the last beta, unless someone finds a bug or makes an interesting suggestion.
Nothing really important has changed. Only some minor cosmetic changes, and the possibility to use the JPEG included in the MKV (if the original BD has an image in its metadata folder and if you have selected it in the MakeMKV GUI). If the Jpeg is present in the MKV, you can simply click the "From MKV" button in tab 4, and it will be displayed and loaded automatically. The "From MKV" buttons are disabled if there is no portrait or landscape image available.
Download: BD3D2MK3D_v0.87b6.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D_v0.87b6.7z)
frank
2nd April 2016, 16:15
Originally Posted by r0lZ:
That rounding problems are very small and not really important, but I wonder who is right. Currently, when the input is a BD, BD3D2MK3D uses the same method than tsMuxeR and MediaInfo.
With the crazy NTSC frame rate, it is almost never possible to give an exact timing to point just to a specific frame.
It's very easy. You should round UP chapter points to ms. For years I cut manually to 3 digits after the decimal point and add 1 ms. Only with this chapter points in mkv the players (VLC, Potplayer) seek quick and properly! (catch the I-frame) Editors like TMPGEnc have the same behavior.
Mkvmerge stores time codes, not frames.
r0lZ
3rd April 2016, 08:22
I know that MkvMerge stores the timecodes. It's the problem. Storing the frame numbers is much more precise, and there is no rounding problems.
If I understand correctly your method, it is equivalent to using ceil() instead of round(), since you add 1 ms. But there is an exception: when the time code falls perfectly on a precise frame. Using ceil() or round() or floor() in that case doesn't change the decimals. But you add 1 ms anyway, and the timecode is therefore 1 ms after the frame. Hence my question: why do you use round() + 1ms? IMO, it is preferable to use ceil().
r0lZ
4th April 2016, 07:56
Here is the final release of v0.87. In the last beta, MkvExtract (necessary to extract the JPEG from the 3D-MKV) was missing from the toolset. It is now included. And the MkvToolnix exes have been updated to the latest version. They are the only notable changes with this version.
v0.87 (April 4, 2016)
- New possibility to open an interleaved 3D MKV file created by MakeMKV as input.
- Fix: The MKV compatibility option --engage no_simpleblocks was misspelled no_simpleblock
- Since MkvExtract is needed to retrieve the attachment from the 3D MKV input file, it is now included in the toolset.
- Updated the MkvToolnix exes to the latest version (v9.0.1)
tebasuna51
4th April 2016, 12:25
When I decompress your v0.87 final in a empty folder (without BD3D2MK3D.cfg) and I try to change any settings I have a crash:
can't read "::config(initialmkvdir)": no such element in array
while executing
"list $::config(initialmkvdir)"
(procedure "SaveSettings" line 175)
invoked from within...
And don't work 'Save settings now' or 'Save settings on Exit', the file BD3D2MK3D.cfg is never writed to disk.
Even without change anything the .cfg is not created.
The "invoked from" procedures may vary but always crash.
With a BD3D2MK3D.cfg from stable v0.85 the same problem.
But I copied a BD3D2MK3D.cfg from a previous v0.87beta and now work without crash. Seems than beta versions can write new elements in .cfg but stable crash.
frank
4th April 2016, 13:57
Originally Posted by r0lZ:Hence my question: why do you use round() + 1ms? IMO, it is preferable to use ceil(). The players read the timecode, converting to frames by division and rounding wrong. It's a game to reach the right chapter point (I-frame). But if you add 1 ms or some more ms the results are good. (The next frame follows 42ms later...). You are right with ceil() but I edit the chapters_ogm.txt manually, and that sucks a lot.
One exception: PAL (25 fps, 50 fps)
No chapter manipulation required, because all time codes are perfectly straight. But 3D with PAL fps is no standard.
r0lZ
4th April 2016, 15:06
When I decompress your v0.87 final in a empty folder (without BD3D2MK3D.cfg) and I try to change any settings I have a crash:
can't read "::config(initialmkvdir)": no such element in array
while executing
"list $::config(initialmkvdir)"
(procedure "SaveSettings" line 175)
invoked from within...
And don't work 'Save settings now' or 'Save settings on Exit', the file BD3D2MK3D.cfg is never writed to disk.
Even without change anything the .cfg is not created.
The "invoked from" procedures may vary but always crash.
With a BD3D2MK3D.cfg from stable v0.85 the same problem.
But I copied a BD3D2MK3D.cfg from a previous v0.87beta and now work without crash. Seems than beta versions can write new elements in .cfg but stable crash.
Oops, yes! It's a bug in all beta of v0.87, but if you load a 3D-MKV first, it is possible to save the settings. It's only if you delete the cfg file and do not open a MKV that the settings cannot be saved.
Anyway, here is v0.87.1, that fixes that bug.
v0.87.1 (April 4, 2016)
- Bug fix: Impossible to save the settings due to missing ::config(initialmkvdir)
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
r0lZ
4th April 2016, 15:30
The players read the timecode, converting to frames by division and rounding wrong. It's a game to reach the right chapter point (I-frame). But if you add 1 ms or some more ms the results are good. (The next frame follows 42ms later...). You are right with ceil() but I edit the chapters_ogm.txt manually, and that sucks a lot.So, in your experience, most players find and use the I-frame that is just before the timecode of the chapter point. Seems logical, since the player has to decode the I-frame to play the frame (more or less) referenced by the timecode. If the chapter point is not an I-frame, the player must go back to find the previous I-frame, and it should never try to find it right after the timecode.
I will verify my code and change it if necessary for the next version.
One exception: PAL (25 fps, 50 fps)
No chapter manipulation required, because all time codes are perfectly straight. But 3D with PAL fps is no standard.
Yes, and I don't understand why the specs of the blu-ray support the incredibly stupid NTSC-Film timecode. At the time of the invension of the NTSC TV, the synchronisation has been based on the frequency of the AC power. Hence the terrible 29.97 frame rate, and the associated drop/non-drop frames nightmare! But in the 21st century, there is absolutely no good reason to use the AC frequency any more and the NTSC-Video frame rate, except for old videos shots at the time of the NTSC TV. I can understand why 29.97 must still be supported by the modern players, but that should be reserved exclusively to old material, difficult to convert to 24fps.
But why they have invented the terrible NTSC-Film frame rate, and made it the universal standard for the whole world is absolutely incredible. The film rate is 24fps (or 48fps) and nothing else. Now, all modern TVs and BD players are capable of playing any video at that frame rate. Due to the imbecility of the designers, the whole world will still have to support the impossibility to build easily a good time code during a big part of the 21st century. It's probably the most stupid idea of the "experts" who have defined the BD specs. I want to kill them! :angry:
sneaker_ger
4th April 2016, 15:33
Exact 24.000 Hz would not solve the problem because 1000ms/24 = 41,666....ms. It would not be exact in mkv either.
tebasuna51
4th April 2016, 15:34
Thanks r0lZ.
We can't do more test until a new MakeMKV release, the actual beta key don't work after March 30.
Still without a new MakeMKV release to test, but there are a new beta key (http://www.makemkv.com/forum2/viewtopic.php?f=5&t=1053) than work until end of May 2016.
r0lZ
4th April 2016, 15:44
Exact 24.000 Hz would not solve the problem because 1000ms/24 = 41,666....ms. It would not be exact in mkv either.The clock of a modern player runs typically at 90000 or 45000 Hz (it's 45000 for the BD players). But you are right for the time codes. It's why, in all pro studios, edits are always made at 24 or 25fps, with timecodes in the form HH:MM:SS:ff, where ff is a number of frames, not a fraction of a second. The conversion to the NTSC frame rate is always made when all edits are finished, and there is no need to use precise time codes any more... except for the chapter points of the BDs or DVDs.
r0lZ
4th April 2016, 15:47
Thanks r0lZ.
Still without a new MakeMKV release to test, but there are a new beta key (http://www.makemkv.com/forum2/viewtopic.php?f=5&t=1053) than work until end of May 2016.
Yep, I've seen that. Anyway, if the suggestions you did to implement the 3D-Plane info in the form of the "3d-plane" tag is implemented, and if they implement also the MKV stereoscopy, there is theoretically nothing to change in BD3D2MK3D. It can already recognise that info, if it is present.
BTW, please let me know when a new version of MakeMKV will be available. Since I don't use it personally, I may miss it.
Tenker
4th April 2016, 17:42
@r0lZ
Thank you for your Super Software.
I use them since a long time for my Amazon Fire TV box -> Kodi.
Now I in for the Atmos sound on the Nvidia Shild TV box and unfortunately I have found that the 3D movies I play with the software BD3D2MK3D than 2D.
So all movies run properly as 3D
http://www2.pic-upload.de/thumb/30255439/Alice.jpg (http://www.pic-upload.de/view-30255439/Alice.jpg.html)
My 3D movies that I converted with the software BD3D2MK3D
http://www2.pic-upload.de/thumb/30255438/Avatar.jpg (http://www.pic-upload.de/view-30255438/Avatar.jpg.html)
What should I change the settings so that a 3D mkv is created?
Can I save my "old" 3D movies somehow and change the header MKVs something with MKVExtractGUI2?
Thanks for your help
Tenker
r0lZ
4th April 2016, 19:44
Hum, I'm not sure I understand. All files created by BD3D2MK3D are in 3D (unless you launch one of the *_2D_*.cmd files in the project directory).
The first picture in your post is what a 3D-aware player should NEVER show. It's not 3D nor 2D. Just junk. The second picture looks correct, but with a still frame, I cannot see if it is in 3D or 2D.
IMO, your player simply recognises the 3D file extension or the stereoscopy field of the MKV container, or the frame-packing field of the h264 stream. It's normal and expected. Often, the 3D movies downloaded from the internet do not have the correct flags and are played as 2D movies, with the two views side by side or stacked vertically (like in your first image). That's the incorrect behaviour.
Since nVidia knows the 3D, I suppose that it does its job correctly, and shows you the movie in 3D (and you need the glasses), or it detects that the 3D hardware is not present or not ready and shows you the movie in 2D (only one view). If it's not what you want, you should configure it to output exactly what you need. I don't recommend to remove the 3D flags from your movies, since they are correct and useful in most situations. It's the configuration of your hardware that is incorrect.
To reply to your question, you can change the file extension (like 3D-abq or 3D-HSBS) if you have selected the option to use one of them in Settings -> Output File Name -> 3D Format Extension.
If it's not sufficient, you can also change the stereoscopy field of the MKV container with the "header editor" (a part of the MkvToolnix GUI). Select the "Edit Headers" option in the left pane, load the MKV, expand the Video track and change the "Video stereo mode" at the bottom of the list to 0 (or simply tick the "Remove element" option). Finally, use the Header Editor -> Save menu to save the change. There is no need to remux everything.
The third way to flag the movie as 3D is the frame-packing mode of the h264 video stream. Unfortunately, afaik it is impossible to change that field without re-encoding the video. (BTW, it's that flag that is used with the 3D videos on Youtube to identify them as 3D.) If you don't want to include that field in your future conversions with BD3D2MK3D, you should edit __ENCODE_3D.cmd and temove the --frame-packing N argument in the x264 command. (N is a number depending of the Half/Full-SBS/T&B/Frame-Sequential mode).
I repeat that it is absurd to remove the 3D identifiers. A 3D movie must be flagged as 3D, to help the players recognise automatically the right format. It's the player that you must configure correctly. If you remove the 3D flags now, you will probably regret having done it later.
Tenker
4th April 2016, 21:13
Thank you for your quick and detailed response.
I must apologize for my English because I translate the German text on GOOGLE in English.
My Amazon Fire TV + Kodi always plays ALL 3D movies / MKVs so on:
- After starting the picture on my Samsung JU7090 is divided, as in the first image = "Alice.jpg"
- Then I have to change the image on the TV to 3D via remote control
- Then 3D glasses on the nose and one can enjoy the 3D image
My nVidia Shild TV Box + Kodi (same settings) shows 30% of my 3D MKVs so as in the picture "Avator.jpg". The picture shows a still image, looks as 2D and is also as sharp as any 2D movie. The 3D switching on TV makes the picture just so twisted, that can be seen only parts of it.
All my 3D MKVs also have the right 3D header as
1: Side by Side (left eye is first)
3: top-bottom (left eye is first)
The Avatar 3D film is also known as 3D about my Amazon Fire TV box, just as I have described above.
Does anyone test an nVidia Shield TV Box + Kodi to that?
r0lZ
4th April 2016, 22:26
OK, so the problem is that your nVidia shield interprets the movie as 3D (as it should) and send probably 3D frames to kodi. You want it to ignore the 3D and send a 2D SBS picture, and let kodi switch to 3D. Unfortunately, what you want is very bizare. You have bought a 3D equipment (the nVidia) but you want it to ignore the 3D! It's not the ideal situation! It's why only the 3D movies badly encoded without the 3D flags work as you want.
You should first look in the settings of the nVidia. You will be lucky if there is an option to ignore the 3D and treat the movie as standard 2D. On most TV and hardware players, it is possible to turn the 3D off, but unfortunately, if the TV recognises the movie as 3D due to one of its extension or flags, it will probably switch to a pure 2D mode, and show you only a single view, not the double SBS image. It's what it does now, if I understand correctly. You should explain to the nVidia that it must ignore the 3D nature of the source. It's not the same thing that recognising the 3D but turning it off. If you cannot find a way to do it, you should try to remove the stereoscopy value from the MKV container, as I've explained above. Honestly, I don't think that will be sufficient, because usually the hardware players ignore that flag anyway, and obey only the frame-packing mode in the h264 stream. And that flag cannot be changed.
Perhaps you can also try to configure the nvidia to send frame sequential 3D, just like a 3D BD player does. If that's possible, the nVidia will convert the SBS to full frames, and send them at 47.952 fps to kodi, and you will have to configure kodi to interpret them as frame sequential 3D, like the output of a 3DBD player. I don't know if it's possible.
Unfortunately, I can't help much more, because I don't know your hardware. Good luck!
kevbo
6th April 2016, 14:19
Hello, and thanks for this great program! I'm using it to create 3D movies to view on Google Cardboard, and it is awesome.
I'm a bit confused about the "Convert DTS & LPCM audio tracks to..." option on page 2. (I'm using 0.86, I haven't messed around with the 0.87 betas yet.) Actually, the option is clear, and it does exactly what it says it does.
The thing is, for this use case (make the movie 720p and small so it can be moved to a small device), I also want Dolby Digital and/or TrueHD audio to be converted to AAC as well. I want to get the audio as small as possible while still sounding OK.
I understand that maybe part of this is the whole AC3+THD file problem that you've been working on, but is there any way to make that option more of a "convert all audio to AAC/AC3"?
I know how to do it by hand with eac3to and mkvmerge, it would just be handy if it happened within the tool.
Thanks!
r0lZ
6th April 2016, 15:39
I understand. In fact, in older versions, it was not possible to convert to AAC. Only to AC3. And therefore, it did not make sense to convert the TrueHD and DD+ to AC3, because ticking the option to use only the 5.1 (pseudo) core had the same effect, without the quality loss of the re-encode operation. I have added the possibility to convert to AAC later, but I haven't changed the logic. You are right. It makes sense to convert any input audio format to AAC, although converting THD and DD+ to AC3 should still be forbidden. I will see if I can easily change my code to allow that. Thanks for the suggestion.
And the problem of the AC3+THD is not related to the conversion. The problem was that tsMuseR is unable to demux the THD tracks (without the AC3 pseudo-core) muxed in 3D-MKV files by MakeMKV. tsMuxeR can demux THD+AC3 tracks from the BD without problem, but not when the core has been stripped out by MakeMKV. Anyway, the problem is solved in v0.87 final. When a THD-only track must be demuxed from a MKV, a second demux pass is done, with eac3to instead of tsMuxeR. (eac3to can demux all audio streams, but has problems when demuxing the subtitles from many 3D BDs, so I have to use the two demuxers, for what they can do.)
I think that it will be possible to convert any stream to AAC with the next version, but be patient. I can't release it rapidly...
kevbo
6th April 2016, 19:32
Well, great! I was actually a bit concerned that I just didn't understand something and that I was asking a stupid question. :)
Is there any way for the GUI to remember settings like that? To set those checkboxes to the same setting as you chose last time? (The other one that would be handy is the "720p" option on page 5.)
Thanks again for this fine program! I'm excited about the MKV option, because then I can move the ISO images to MKV files!
Kevin
r0lZ
7th April 2016, 08:47
Is there any way for the GUI to remember settings like that? To set those checkboxes to the same setting as you chose last time? (The other one that would be handy is the "720p" option on page 5.)
The settings from the Settings menu are saved immediately, as you change them. The configuration of the pages 2 and 5 (or at least the settings that are not BD dependent), including the audio conversion and the 720p options, are saved with "Save Settings Now", at the bottom of the Settings menu. They are also automatically saved when BD3D2MK3D is closed if you have ticked the option "Save Settings on Exit".
Triple-M
10th April 2016, 07:40
First, sorry for my English, if something ist wrong...
I found your App and it it's really great. I have some 3D-MKV Files, made with makeMKV and i want your Tool to convert them into the right 3D-MKV-Format.
Can you or someone else tell me or show me where i can find the Info what i should select "Left View in AVC Stream" or "Right View in AVC Stream" to convert the File correctly? Can i find the Info in tsmuxer GUI when i open die 3D-MKV File made with makeMKV? But where?
Same question with the 3D-Plane Option.
Thanks a lot....
Triple-M
r0lZ
10th April 2016, 09:26
Welcome to the Doom9 forums, Triple-M !
Unfortunately, currently, it is not possible to find the information about the views order and the 3D-planes in the 3D-MKV file. If that was possible, BD3D2MK3D would retrieve it for you. We have asked the authors of MakeMKV to add that information in the file, and we hope that the next version of MakeMKV will correctly set the stereoscopy mode in the MKV header and will implement tags for the 3D-planes. When that will be the case, BD3D2MK3D should be able to recognise the info, and you will not see the red warnings any more.
In the meantime, the only way to retrieve the info is by examining the original BD3D, with BD3D2MK3D or with tsMuxeR. When you load a BD in BD3D2MK3D, you can see something like this:
Video : Und AVC, 1080p, 23.976 fps, left-eye
Video : Und MVC, 1080p, 23.976 fps, right-eye (32 3D-Planes)
Audio : Eng TrueHD, Multi-channel, 48/96 Khz
Audio : Fra TrueHD, Multi-channel, 48/96 Khz
Subtitle: Eng PGS, 3D-plane: 1
Subtitle: Fra PGS, 3D-plane: 2
Subtitle: Esp PGS, 3D-plane: 3
Here, the views are in the common order (AVC = left view). Note that most players assume the "Left view in AVC" order, because about 90% of the 3DBDs are authored that way. If you need to swap the views on your TV or with your software player to see the 3D correctly, the views are in the opposite order: Right view in AVC. It is therefore probably easy to find the correct view order with Stereoscopic Player.
Things are very different for the 3D-Planes. In many BDs, the order of the subtitle streams determine the 3D-Planes numbers, like in the example above. But note that the first 3D-Plane is 3D-Plane #0. Here, the plane #0 is not used, and the first subtitle stream is associated with the second 3D-Plane, #1. The rest is logical. Unfortunately, there is no well established rule for the assignment of the 3D-Planes. The 3D-Plane #0 may or may not be used, and the order of the 3D-Planes may or may not be sequential. It is therefore almost impossible to deduce the 3D-Plane to use without examining the BD.
However, it is possible to use a good 3D-Plane without knowing the original assignment. Here is how.
You should try to assign a number that *may* be correct, and let BD3D2MK3D create the project. When the project is finished, you will find the 3D-Planes in the project directory, and the subtitle streams you have converted in XML/PNG format in sub-directories with names similar to this: 00801.track_4610.Fra.3D_2D. Now, use Subtitle Tools -> Verify 3D-Planes Compatibility. In the dialog, select the temp_2D.xml file of the subtitle stream, and the project directory containing the 3D-Planes (such as "...\Movie title\00000"). The tool will create a log file similar to this:
Validity of the 3D-planes from directory "E:\BD3D2MK3D_projects\Test\00801"
with the subtitle file "E:\BD3D2MK3D_projects\Test\00801\00801.track_4610.Fra.3D_2D\temp_2D.xml".
Frame rate used: 23.976023976023978 fps
Processing all subtitles (normal and forced).
Total number of subtitles: 1431
3D-Plane-00.ofs:
0 subtitles with totally undefined depth.
0 subtitles with partially undefined depth.
Subtitle frames with undefined depths: 0
(Depth values for current subtitle stream: Min=16, Max=16, Average=16.0)
*** WARNING: Fixed depth 16! ***
3D-Plane-01.ofs:
0 subtitles with totally undefined depth.
0 subtitles with partially undefined depth.
Subtitle frames with undefined depths: 0
(Depth values for current subtitle stream: Min=16, Max=16, Average=16.0)
*** WARNING: Fixed depth 16! ***
3D-Plane-02.ofs:
8 subtitles with totally undefined depth.
12 subtitles with partially undefined depth.
Subtitle frames with undefined depths: 602
(Depth values for current subtitle stream: Min=-8, Max=70, Average=19.379)
3D-Plane-03.ofs:
3 subtitles with totally undefined depth.
1 subtitles with partially undefined depth.
Subtitle frames with undefined depths: 206
(Depth values for current subtitle stream: Min=-6, Max=72, Average=18.454)
3D-Plane-04.ofs:
2 subtitles with totally undefined depth.
0 subtitles with partially undefined depth.
Subtitle frames with undefined depths: 46
(Depth values for current subtitle stream: Min=-6, Max=72, Average=19.118)
3D-Plane-05.ofs:
3 subtitles with totally undefined depth.
1 subtitles with partially undefined depth.
Subtitle frames with undefined depths: 206
(Depth values for current subtitle stream: Min=-6, Max=72, Average=18.446)
3D-Plane-06.ofs:
3 subtitles with totally undefined depth.
1 subtitles with partially undefined depth.
Subtitle frames with undefined depths: 206
(Depth values for current subtitle stream: Min=-6, Max=72, Average=19.667)
3D-Plane-07.ofs:
1 subtitles with totally undefined depth.
0 subtitles with partially undefined depth.
Subtitle frames with undefined depths: 78
(Depth values for current subtitle stream: Min=-6, Max=72, Average=19.222)
3D-Plane-08.ofs:
4 subtitles with totally undefined depth.
0 subtitles with partially undefined depth.
Subtitle frames with undefined depths: 149
(Depth values for current subtitle stream: Min=-6, Max=72, Average=18.442)
Notes:
The depth of any particular subtitle may be undefined for several reasons.
The 3D-plane may contain undefined depth values for some or all frames of a particular subtitle. When it's the case, BD3D2MK3D ignores the undefined frames, and takes into account only the frames with a valid depth.
The 3D-plane may be too short, and therefore it may not contain sufficient depth values to cover the subtitles appearing near the end of the movie. In that case, BD3D2MK3D uses a depth value of 0.
When a subtitle file is converted to 3D, the temp_2D.xml file is generated and modified to include the <Depth> tags extracted from the selected 3D-plane file. (The Additional Depth value specified in the GUI is NOT added to that value.)
In addition to the <depth> tags, the <UndefinedFrameDepths> tag is added as well when there is at least one frame with an undefined depth for that specific subtitle. The value of that tag is the number of frames without a valid depth for that specific subtitle.
You can search for "UndefinedFrameDepths" in the XML file to easily find all subtitles that may not have a correct depth value.
The depth values that will be used during the conversion of the temp_2D file to the final 3D subtitle file are stored in the <Depth> tags and can be edited manually when necessary.
Terminology used in this log:
* Subtitles with totally undefined depth: When the depth values of ALL frames of a particular subtitle are undefined.
* Subtitles with partially undefined depth: When the depth values of SOME frames of a particular subtitle are undefined.
* Subtitle frames with undefined depths: Total number of all frames where a subtitle must be displayed with an undefined depths.
* Min, Max and Average depth values for current subtitle stream: The smaller, greater and average depth values found in the 3D-plane in the frames during which a subtitle is displayed. The undefined frames are not taken into account. (See the 3D-plane log file generated during the extraction of the 3D-plane files from the MVC stream to see the global min, max and average depths.)
* Fixed depth warning: That warning is added when all frames during which a subtitle is displayed have exactly the same depth value. (Again, the undefined depth are not taken into account.) That means that the 3D-plane is probably fake or badly authored, and is useless anyway.
As you can see, the first 3D-Planes have a fixed depth. You should avoid them.
In the other 3D-Planes, look at the numbers of subtitles with totally undefined depth, subtitles with partially undefined depth, and subtitle frames with undefined depths. The lower the best. Therefore, the 3D-Planes #4 and #7 seem to be the best for the subtitle stream that has been analysed. They are good bets. In fact, with this BD, the French subtitles use the 3D-Plane #4. It has good values. As you can see, there is no perfect way to determine the correct 3D-Plane, but the tool can help you in finding a good one.
Now, if the "good" 3D-Plane is not the one you have selected when you have generated the project, you can simply convert the 2D XML/PNG stream to 3D again with Subtitle tools -> Convert Subtitles to 3D, and of course use the new 3D-Plane. You can overwrite the original 3D SUP (or SUB) file created by BD3D2MK3D, or save the new subtitle under a different name and modify the filename of the streams in the __MUX_3D_OPTIONS.txt file.
Finally, launch the encoding of the final SBS or T&B file, and verify carefully the subtitles. It they look wrong, try with another stream. You don't need to re-encode the video (unless you hardcode the subtitles on the video). Just use the __MUX.3D.cmd to re-create the final MKV with the new 3D subtitles.
Good luck!
Triple-M
10th April 2016, 09:52
Thank You.
When i load a BD with BD3D2MK3D i see a list of how you described. In my Case the AVC Stream is also left, now i unsterstand.
But what you've written about the 3D-Planes sounds very complicated. Is all this also important if i only used forced subtitles?
r0lZ
10th April 2016, 09:59
Yes, it's important too. The correct depths of the individual subtitles depend of the 3D-Plane, and if you select a wrong 3D-Plane, you may have some subtitles entering within the foreground objects. It's terrible for the brain! Of course, if there are only a few forced subtitles, the risk of bad depths is less important, but that doesn't mean that you can ignore it.
Don't worry. The method to determine a correct 3D-Plane looks complicated, but it is not. The Verify 3D-Planes Compatibility tool can be used to verify if the 3D-Plane you have selected in tab 2 was correct or totally wrong. In the second case, you can find a good one easily with the tool, and convert the 2D stream to 3D manually. That's really not difficult. Try to do it, and you'll see.
r0lZ
10th April 2016, 10:53
I'm working on the processing of the audio by BD3D2MK3D (to allow the user to convert the AC3, THD and EAC3 streams to AAC too), and I verify if it works correctly in MKV-3D input mode too. And I have a problem !
I use a short movie with an E-AC3 (DD+) track to do my tests. When I demux the E-AC3 track from the BD with tsMuxeR or eac3to (without the option to keep only the core), I get a file of 19,961 KB. When I retrieve only the core, the file size is 11,406 KB. MediaInfo recognises the files correctly as AC3+ or AC3. So far so good.
But when I convert the movie to 3D-MKV with MakeMKV and I ask to keep the whole AC3+ file and the AC3 core, it creates two streams in the MKV container: the AC3+ and the AC3. That seems correct. But when the AC3+ stream is extracted with tsMuxeR (without the core option), its size is only 8,555 KB. (The size of the AC3 stream is correctly 11,406 KB.) And MediaInfo doesn't recognise the AC3+ stream it at all. It prints only its file size.
Demuxing the same stream from the 3D-MKV with eac3to gives the same result, but it prints an error message:
MKV, 1 video track, 5 audio tracks, 0:03:02, 24p /1.001
1: h264/MVC (right eye), English, 1080p24 /1.001 (16:9)
2: TrueHD, English, 7.1 channels, 48kHz
"Surround 7.1"
3: AC3, English, 5.1 channels, 640kbps, 48kHz
"Surround 5.1"
4: AC3 Surround, English, 2.0 channels, 320kbps, 48kHz
"Stereo"
5: EAC3, French, 2/2 channels, 48kHz
"Surround 4.0"
6: AC3, French, 5.1 channels, 512kbps, 48kHz
"Surround 5.1"
Bitstream parsing for track 5 failed.
Demuxing this track may still produce correct results - or not.
a05 Extracting audio track number 5...
a05 Creating file "test.eac3"...
Video track 1 contains 4375 frames.
eac3to processing took 6 seconds.
Done.
Since 11,406 KB + 8,555 KB = 19,961 KB, it seems that MakeMKV extracts the non-core part of the original AC3+ stream and stores it as a full AC3+ stream in the 3D-MKV.
I don't understand why it does that. Does it make sense to store the AC3+ stream without its core? AFAIK, the "+" extension cannot be decoded without the core. Correct?
Is it a known bug of MakeMKV ? If it's the case, should BD3D2MK3D prohibit to use the AC3+ streams from a 3D-MKV container created by MakeMKV ? Or should we report that bug to the MakeMKV staff ?
Thanks in advance if someone can help me understand that mess!
Triple-M
10th April 2016, 15:06
I tried my luck and opened a 3D-BD in BD3D2MK3D to see which Stream i must select. The encoding is completed without an error after 3 hours but the merged MKV File is only 5GB large. This can't be right or?
The MKV File from makeMKV is 30GB large. Where ist the mistake?
sneaker_ger
10th April 2016, 15:21
MakeMKV only copies the streams from the BluRay. BD3D2MK3D re-compresses the MVC stream to a different format so the file size can change dramatically. You cannot convert from MVC to Side by Side or Top & Bottom without re-encoding. If you think the resulting quality is too low for your taste you can decrease the CRF value. Then the files will come out bigger and with better quality.
Triple-M
10th April 2016, 15:26
Ok, i thought thats the encoder option which ist not right but what kind of attitude ist right for the best video quality? CRF 0? Or CQ, 2-pass or ABR?
Like I said I want the best possible quality, equal to the Bitrate of the BD or the 3D-MKV File from makeMKV.
sneaker_ger
10th April 2016, 15:28
CRF is usually recommended. The lower the CRF value the better the quality and the bigger the file. But at some point there are diminishing returns. The file could become even bigger than the original BluRay! Most people on here seem to use a value between 16 and 20.
r0lZ
10th April 2016, 17:36
Yep. I use CRF 18 for the movies where the video quality is very important (like Sin City 2), and CRF 22 when I just want to keep a movie but I want the smallest file size. The default, CRF 23, gives already very good results.
Note also that the CRF mode gives very different file sizes for movies of the same length. For example, CRF 20 may produce a very small file of only 2 or 3 GB if the movie is very easy to compress, like a CGI (Pixar) movie. In the other hand, an old movie with much noise may require 10 GB for the same movie duration. It's absolutely normal, and it's one of the major advantages of the CRF mode over 1 and 2-pass. The quality is maintained in all cases, regardless of the difficulty to compress the movie. (It's different if you use 1 or 2-pass encoding, where the bitrate is specified. And anyway, 2-pass gives always a slightly lower quality than CRF for the same file size.)
The CRF value is not all. You can compress even better without quality loss if you select a slower preset. I use normally the slow or slower preset, to keep a very good quality with a small file size.
And don't forget that in the original BD, two full-size video streams are encoded. In Half-SBS or Half-T&B, the resolution is divided by 2 and therefore the resulting movie requires much less disc space anyway.
Finally, don't be scared by the final size. It may appear too small, but x264 is an excellent encoder, and IMO, the large bitrates used for the commercial BDs are mainly to impress the consumer, and justify the high price for a double-layer BD 50. IMO, it's usually not necessary. Trust your eyes, and watch the small movies encoded with a relatively high CRF without prejudice. I bet that you will not see the difference with the original BD.
Triple-M
10th April 2016, 20:04
Thanks both of you.
I finished my first File and compared it with the original BD. In my opinion the 3D-Effect of the new encoded MKV-File ist much better as directly from the BD! This is great!
Is there an option in the Settings or so that my TV recognized automatically the 3D-Signal and switch on 3D-Mode? My MediaPlayer is AppleTV 4....
thahandy
10th April 2016, 22:46
[...]
I don't understand why it does that. Does it make sense to store the AC3+ stream without its core? AFAIK, the "+" extension cannot be decoded without the core. Correct?
Is it a known bug of MakeMKV ? If it's the case, should BD3D2MK3D prohibit to use the AC3+ streams from a 3D-MKV container created by MakeMKV ? Or should we report that bug to the MakeMKV staff ?
Thanks in advance if someone can help me understand that mess!
Seems its MakeMKV.
Dolby Digital Plus Problem (http://www.makemkv.com/forum2/viewtopic.php?f=8&t=9182)
Dazkine Wed Jun 24, 2015 7:38 am
yeah but also PowerDVD doesnt like what MakeMKV is producing...
Dolby Digital Plus on Bluray contains a Dolby Digital 5.1 Stream + 4ch encoded in Dolby Digital Plus.
A non DD+ capable device uses the Dolby Digital Stream
A DD+ capable device uses the Dolby Digital 5.1 Stream, but replaces the 2 rear channels with the four channels encoded in Dolby Digital Plus. That makes a 7.1 Signal (3.1 from the DD Stream, and 4.0 from the DD+ Stream)
Dolby Digital+ can also exist alone (Television, Streaming, HD-DVD), but on Bluray its like I said.
I guess MakeMKV is just producing 2 independent Audiostreams, but that doesnt work for Blurays. The Bluray Player always needs the DD Signal + the DD+ "extension".
So it's a mix of 2 audiocodecs.
It more like DTS-HD cause there the HD extension also needs the "core"
When you play back the original disc PowerDVD is reporting "Dolby Digital Plus 7.1"
r0lZ
10th April 2016, 22:56
Is there an option in the Settings or so that my TV recognized automatically the 3D-Signal and switch on 3D-Mode? My MediaPlayer is AppleTV 4....
There are 3 things that a player can use to switch to the right 3D-mode automatically: the stereoscopy mode in the MKV header, the frame-packing in the video stream, and an extension in the file name. BD3D2MK3D sets the stereoscopy and the frame-packing automatically. Most hardware players recognise the frame-packing. If it's not sufficient, maybe you have to select one of the two 3D extension in the file name. See Settings -> Output File Name -> 3D Format Extension. You may also try to use the .mk3d file extension instead of .mkv.
If nothing works, consult the Apple TV manual, and if there is a special file extension not already implemented in BD3D2MK3D, I'll add it. Otherwise, ask Apple to do a better job! ;)
r0lZ
10th April 2016, 22:59
Seems its MakeMKV.
Yep. It's also what I've noticed. Pity. And thanks for the info.
Triple-M
14th April 2016, 13:06
Support your Tool DTS 7.1 or Dolby Atmos? I have a BD with DTS 7.1 and the File at the End has only DTS 5.1.
tebasuna51
15th April 2016, 09:48
Yes.
In tab '2: Select Streams' uncheck 'Use the 5.1 core of DTS-HD...'
Triple-M
15th April 2016, 10:01
Ok, thanks. I didn't unchecked it because the note "highly recommended".
r0lZ
16th April 2016, 09:00
As promised, it is now possible to convert any audio stream to AAC.
I have also verified the conversion when using a 3D-MKV file created by MakeMKV as input, and unfortunately I have had to prohibit to use the E-AC3/DD+ streams with 4 channels only. They are bad conversion by MakeMKV, totally unusable. Luckily, the E-AC3 format is rarely used on the commercial BDs, but if you have a movie with DD+ streams, you will have to select the AC3 core in the MakeMKV GUI. When that huge bug will be fixed in MakeMKV, BD3D2MK3D should accept the E-AC3 tracks (with 7.1 channels) without problem.
Please note that when using a 3D MKV as input, it is not possible to convert or extract the core of the TrueHD audio tracks, because the THD stream is stored "alone", without a 5.1 pseudo-core in the MKV. (It's a Matroska requirement.) Therefore, there is nothing to extract. It is not possible either to convert the THD track to AC3, simply because it doesn't make much sense to convert the THD track when the AC3 track is available without conversion in the original BD. If you want to keep the AC3 track, you have to select it in the MakeMKV GUI. (Of course, you can also convert the THD track manually with the Tool menu or with eac3to, but that's another story.)
There are also two important bugs fixed in the tool to convert a SRT subtitle file to ASS 3D.
v0.88 (April 16, 2016)
- When the option to convert the audio streams to AAC is selected in tab 2, all audio tracks are now converted, instead of only the DTS and LPCM tracks.
- The extension .dtshdma for the demuxed DTS-HD-MA tracks was wrong. It is now .dtsma as it should for eac3to.
- The option to keep only the core of HD audio tracks in tab 2 is now removed when a 3D-MKV created by MakeMKV is the source.
- It is not possible any more to use the bad and useless E-AC3 (DD+) audio tracks created by MakeMKV (with only 4 channels)
- The labels of the DTS-HD/MA audio tracks in the final MKV show now the number of channels for the HD and the core (like 7.1/5.1)
- The labels of the audio tracks converted to AAC show now also the Quality value that has been used to do the conversion.
- Small cosmetic changes.
- Bug fix in Convert SRT to ASS 3D: The first subtitle was sometimes missing when the input file is encoded in UTF-8/16.
- Bug fix in Convert SRT to ASS 3D: The 2-lines subtitles were not properly converted as one long line with \N.
- Bug fix: Some tools crached when trying to open a file or folder if no BD or MKV was loaded first.
- Updated x264 to the latest version (0.148.2692)
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
Triple-M
20th April 2016, 09:46
There's an Update of makeMKV, now the View (left eye or right eye) is stored in the MKV made by makeMKV. 3D-Planes i haven't tested yet.
r0lZ
20th April 2016, 09:59
OK, thanks.
If the view order is correctly stored in the "stereoscopy" field of the MKV header, BD3D2MK3D should recognise it already. That means that the correct view should be selected automatically in the first tab, and the red warning should not be visible any more.
Similarly, the 3D-planes assignments should be automatic if they have been implemented with "3d-plane" tags (as suggested by tebasuna51), but that needs to be confirmed because they may have defined another tag or used a totally different method. I will have a look this evening...
Triple-M
20th April 2016, 10:02
The correct view ist selected automatically, i have tested it today.
r0lZ
20th April 2016, 10:09
Perfect! :)
r0lZ
20th April 2016, 19:46
I confirm that the stereoscopy is correctly saved in the MKV header and the 3D-Plane number in the "3d-plane" tag of the subtitle stream. Therefore, MakeMKV v1.9.10 generates now 3D-MVC MKV files with the full information necessary to convert them to SBS or T&B with BD3D2MK3D. Good point.
I confirm also that BD3D2MK3D recognises that information correctly. You can use BD3D2MK3D v0.88 without problem with the MKV files created by MakeMKV v1.9.10 or greater.
However, the terrible EAC3/DD+ bug is still not fixed. Therefore, you still need to include the 5.1 core of the EAC3 tracks in MakeMKV if you want to include it in the final MKV, and it is totally impossible to use the full EAC3 track. Pity. I hope that that bug will be fixed soon.
Of course, if you open a 3D-MVC MKV file created with MakeMKV v1.9.9 or any previous version, the information will still be missing, and you will have to enter it manually. For that reason, it will always be possible to modify the views order and the 3D-Plane numbers in the BD3D2MK3D GUI. But you should do it only if you see the red warnings.
tebasuna51
21st April 2016, 10:31
I confirm that the stereoscopy is correctly saved in the MKV header...
Bug detected by nevcairiel :
http://www.makemkv.com/forum2/viewtopic.php?f=10&t=13892#p49039
I don't have rigth eye BD's to test.
frank
21st April 2016, 11:29
There are 2 types of DD+ or eac3.
The old eac3 version used on HD-DVD has no core!
DD+ was mandatory on HD-DVD. Such audio streams have to be completely re-encoded, they are not backward compatible.
Probably the software is a bit outdated, because BD mostly use DTS.
With eac3to I never could demux a core from eac3 (to ac3). But I could create a multichannel wav for reencoding to ac3.
You can't see from what source (HD-DVD, BD) the mkv comes. (OK, there are no 3D movies on HD-DVD...)
DD+ from BD or TV is backward compatible. If you have an AV receiver with HDMI 1.3 or later, you’ve already got support for DD+.
Hope you have the right test stream.
r0lZ
21st April 2016, 12:37
@tebasuna51
Damn! I haven't verified with a right-view in AVC movie. And if it's really a MakeMKV bug, it's even worse than the previous situation, because the user will think that the correct views order is selected, and end up with the views inverted! I hope they will fix that bug immediately! I can't implement a workaround in BD3D2MK3D, because I have no way to know what version of MakeMKV has been used to create the 3D MKV.
@frank
BD3D2MK3D doesn't use eac3to to demux the audio streams. It uses tsMuxeR. (Except for the TrueHD tracks in a MKV container, that tsMuxeR cannot demux.)
The bug is in MakeMKV. It can successfully extract the 5.1 core of the DD+ tracks from the BD 3D. But you can also tick if you wish the DD+ track itself, to include it in the MKV. And the problem is here. The DD+ track (on BD) consists of the 5.1 core and an extension with 4 channels. MakeMKV extracts the extension only and create a bad 4-channels tracks that is not EAC3 nor AC3. The main channels are missing! It's just unusable and it is not recognised by eac3to, MediaInfo and all players I have. Only tsMuxeR seems to recognise it, and luckily shows that it has 4 channels. It can also demux it, but again, that track is useless. That means that, as long as that bug is present in MakeMKV, you have to tick the 5.1 core of the EAC3 tracks, and untick the "EAC3" track in the MakeMKV GUI. (If you don't untick it, BD3D2MK3D will detect that it has only 4 channels and refuse to process it.) It's a problem only for peoples who want to keep the best audio quality and use MakeMKV to decrypt the BD.
I agree that BD mostly use DTS for high quality audio. TrueHD is also very frequent. Luckily, EAC3 tracks are relatively rare, but they exist. A good example is the French track on Brave (Pixar).
thahandy
21st April 2016, 18:21
@tebasuna51
[...]
I have no way to know what version of MakeMKV has been used to create the 3D MKV.
[...]
mkvinfo Sample_t00.mkv -G |Find "Writing application"
| + Writing application: MakeMKV v1.9.10 win(x64-release)
is one way to get it ;)
r0lZ
21st April 2016, 19:12
Thanks for the tip!
r0lZ
23rd April 2016, 12:13
It's not an important release, but you should download it if you use MakeMKV to decrypt your 3DBDs. I've just implemented a test of the version of MakeMKV that has been used to create the input MVC MKV, and if it's v1.9.10 (the current version), BD3D2MK3D does not trust the views order in the MKV header, due to the MakeMKV bug. I suppose that the next version will have the correct stereoscopy value.
BTW, I have also noticed that MakeMKV doesn't set the Forced MKV flag on the "forced only" subtitle streams. It's a pity, as it's very easy to do. But it's not really serious, because the user can set the flag manually in the GUI or MakeMKV or BD3D2MK3D. Anyway, I have reported the bug on the MakeMKV forum.
v0.89 (April 23, 2016)
- BD3D2MK3D does not trust any more the views order written by MakeMKV v1.9.10 due to its bug.
- Modified some dialogs to explain that MakeMKV v1.9.11 should be OK.
Download: BD3D2MK3D.7z (http://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
tebasuna51
24th April 2016, 02:53
Thanks r0lZ!
Triple-M
1st May 2016, 20:22
Is there a difference (in the Video Quality perhaps) if i play the MVC-MKV directly with an right Player or the MKV after i converted it with your Tool? Is the Video Quality both the Same?
sneaker_ger
1st May 2016, 20:35
Technically, every lossy encoding loses information (read: quality). If the bitrate is high enough a human won't be able to tell the difference, though. We call that "transparent". So the MVC should in theory be better but it might not make any difference in practice if you use sufficient bitrate (i.e. sufficiently low --crf or sufficiently high --bitrate).
P.S.: While it is possible to employ lossless encoding (in x264 using --qp 0) the resulting file would be much larger than the original BluRay.
Triple-M
2nd May 2016, 05:10
Ok thanks. And with the right Player i can switch between 2D and 3D in die MVC-MKV without a second Version of this File only for 2D without MVC, right?
Sneaker_ger is right. But you should also take into account that the resolution of the image is divided by 2 in one direction if you encode in Half-SBS or Half-T&B. Therefore, in addition to the re-encoding, there is also a quality loss in resolution. (To avoid that problem, you can encode in Full-SBS, Full-T&B or Frame Sequential format, but that formats are not supported by the majority of the hardware players.)
Most players do not recognise at all that a MVC-MKV contains a 3D movie. They play only the AVC stream, in 2D, and ignore completely the MVC stream. As fas as I know, only Stereoscopic Player is currently able to play the MVC-MKV in 3D. I don't know if it can play it in 2D, but you can use another player anyway. In the other hand, almost all software or hardware 3D players can play the Half-SBS or Half-T&B formats generated by BD3D2MK3D in 3D. It's why I wrote it. Most players or 3D-TVs have an option to display the 3D movie in 2D, except some software 3D players. And, of course, you cannot use a 2D-only player to play a 3D movie generated by BD3D2MK3D in 2D, because it will show you the two views at the same time.
So: Use the MVC-MKV generated by MakeMKV if quality matters much, if you have plenty of disc space, and if you are happy with Stereoscopic Player to watch your movies in 3D. You can watch them in 2D easily, without quality loss.
Use Half-SBS or Half-T&B created by BD3D2MK3D if you want a format recognised by all 3D players or if disc space matters. It may be more difficult to watch the movie in 2D on a PC, but it's possible with the right software.
sneaker_ger
2nd May 2016, 10:22
As fas as I know, only Stereoscopic Player is currently able to play the MVC-MKV in 3D.
And LAV + madVR.
Nico8583
13th May 2016, 22:27
Does anyone know if there is a way to combine AVC and MVC like MakeMKV ? CombineMVC is too old now and compatibility is not so good..
I don't think there is a direct way, but you can create a BD-3D ISO with tsMuxeR, mount it and then create the AVC+MVC MKV with MakeMKV.
Nico8583
14th May 2016, 10:27
Yes but I would like to skip some steps :)
I would like to try to make MKV AVC+MVC and it seems the only way to do that is to combine AVC+MVC into a single H264 elementary stream... Also I would like to try dual stream (1 full stream for left eye and 1 for right eye) but I don't know if it's possible, even if some camcorders support that.
Yes but I would like to skip some steps :)
I don't think it's possible currently. :(
I would like to try to make MKV AVC+MVC and it seems the only way to do that is to combine AVC+MVC into a single H264 elementary stream...
Well, it's what MakeMKV tries to promote. But IMO, adding the AVC and MVC streams as two different elementary streams in a MKV container is probably a better option, much easier to implement. However, currently, it's not possible. The MKV standard does not accept the MVC stream. It's probably why MakeMKV has developed its combined format, recognised by MkvMerge as a single 2D AVC stream (but unfortunately also by almost all players).
Anyway, since the combined AVC+MVC stream is only supported by stereoscopic player so far (or by complex combinations of filters), I think that all that techniques are very limited, and will probably be usable only with some very rare software players at best. I don't think they are really interesting, except perhaps for backup purposes.
Also I would like to try dual stream (1 full stream for left eye and 1 for right eye) but I don't know if it's possible, even if some camcorders support that.
You can add two AVC streams in a MKV without problem, but that would require to re-encode at least the MVC stream. And indeed, I don't think it is possible to play that dual-AVC MKVs in 3D with any player so far.
Currently, the only widely supported 3D formats in full resolution are Full-SBS, Full-T&B and Frame Alternate. They require to re-encode the video, but at least, you can play them almost everywhere (if your hardware supports the required level). It's why BD3D2MK3D can produce them. I don't think it is a good idea to try other formats requiring to re-encode the video. The quality is not better, and the compatibility is and will probably always be terrible.
Sharc
14th May 2016, 11:50
As far as I understand the Blu-ray standard accepts both the the ssif structure (base AVC and dependent MVC in 2 separate .m2ts files) and the interleaved format (base AVC and dependent MVC in the same .m2ts file combined/interleaved). This means that any player which claims to be Blu-ray compliant must accept both formats.
(MKV is a different story however as you mention).
Nico8583
14th May 2016, 11:57
Mastroska supports TrackOperation to combine AVC and MVC track : https://www.matroska.org/technical/specs/notes.html#TrackOperation
But I don't know how to use it. I think it's used by MakeMKV in order to create MK3D but perhaps I'm wrong.
Sharc
14th May 2016, 13:00
I see, thanks. Obviously mkvmerge does not yet support the muxing of base (AVC) and dependent (MVC) streams. The matroska page also says:
The 3D support is still in infancy and may evolve to support more features.
So we need to be a bit patient, I think .....
Edit:
You could use DGMVCCombine.exe to create a single interleaved (frame alternate) stream of an AVC and dependent MVC source, then mux to mkv with mkvmerge with the stereoscopic flag set accordingly. It plays 3D in bino player, but not in stereoscopic player ...... :(
Nico8583
14th May 2016, 15:41
Thank you for DGMVCCombine.exe, I will look at it.
You can play MKV from MakeMKV in Stereoscopic Player ? If yes, MakeMKV may use this function from Matroska so it is functional
Nico8583
15th May 2016, 00:11
I've tried many files and only Half-SBS / Half-TB are well supported by my TV and my RPi. AVC/MVC combined in a M2TS is supported by my TV without problem.
3D from MakeMKV files are not supported by my TV and my RPi, the movie is displayed only in 2D. Same issue for DGMVCCombine into MKV container...
Sharc
15th May 2016, 11:12
^^^
That's pretty much how it is. As soon we move outside of released industry standards things may or may not work.
sambal
15th May 2016, 20:40
It's very good possible this question has been asked before, but I don't feel like reading 50 pages right now:D
Many 3D-movies don't have any 3D-plane, so the subtitles are 'flat'. In those cases I give them a fixed depth of 8. Of course I only find out about not having any planes after ripping de BD, so I have to create those 3D-subtitles afterwards. Unfortunately all versions after 0.71 lack the option to convert subtitles to a fixed depth, so I must use that older version.
Is there a particular reason for not supporting this option anymore?
You can convert the subtitles to 3D with a fixed depth with the current version. Just leave the 3D-Plane field empty, and fill your desired depth (8 in your case) in the "Additional depth" field. You'll get a warning about the flat subtitles. Just accept it.
(You can also leave the 3D-Plane field blank to use the depth tags already present in the input XML, if the XML has already been created with BD3D2MK3D and a 3D-Plane. That allows you to manually edit some depth values if you wish. Note that the Additional depth is never stored in the XML. It is taken into account only when the conversion occurs.)
I have removed the old "fixed depth" conversion because it used obsolete tools, and since it is possible to do the same thing with the new conversion function, it was useless. Its only advantage was the possibility to process several subtitle files in batch. But is it really necessary?
[EDIT] I have slightly modified the labels and help dialogs of the subtitle conversion tool to make it more obvious that the tool can be used without 3D-Plane to convert subtitles to fixed depth 3D.
sambal
16th May 2016, 12:28
That's good to hear, I didn't know that! I'll give it a try next time I encounter such a movie.
Thank you for the quick reply, it is much appreciated.:thanks:
sneaker_ger
17th May 2016, 17:45
Mastroska supports TrackOperation to combine AVC and MVC track : https://www.matroska.org/technical/specs/notes.html#TrackOperation
But I don't know how to use it. I think it's used by MakeMKV in order to create MK3D but perhaps I'm wrong.
I don't think MakeMKV uses Matroska TrackOperation. And I don't think it is even intended for that. TrackOperation is for tracks that are independently decodable which isn't the case for MVC views.
Notice how mkvmerge handles audio: DTS-HD MA is muxed as a single track because it is made of extensions building on a core. Like MVC view relying on a base view.
Nico8583
17th May 2016, 19:45
I've looked at MakeMKV source code and if I'm right it uses KaxVideoStereoMode to mux stream. KaxVideoStereoMode is a part of libmatroska and again if I'm right it's based on TrackOperation. This is why it was my conclusion about MakeMKV but perhaps I'm wrong, I don't know this specification :)
Sharc
25th May 2016, 10:02
You can play MKV from MakeMKV in Stereoscopic Player ? If yes, MakeMKV may use this function from Matroska so it is functional
Yes, mkv from MakeMKV play correctly in 3D with Stereoscopic Player.
I could also re-encode 3D sources into new 3D using x264 with --frame-packing 5 (1-pass crf), and muxing the encoded .264 with tsMuxer or mkvmerge. 3D playback however works only with Bino, in my case. Stereoscopic Player swapped the views regularly about every half second . :confused:
(I tested video only, without audio or subs).
I had been using 0.85 and just updated to 0.89, I just noticed (I'm using x265) that on the y4m [info] line it says
1920x2160 fps 24000/1001 i420p8 sar 1:1
when in my old version it has sar 2:1 - will this matter, my previous files which I play on my LG 4K were stretched across the full width and then I used the 3D button to set it to top and bottom and it looks perfect.
Also, I have been replacing the x265_x64 executable with one that has 10 bit support, which gives a better output (reducing banding significantly), maybe you could either bundle a exe with 8/10/12 bit support and make it selectable in h265 options?
Welcome to the Doom9 forums, Sxc!
I had been using 0.85 and just updated to 0.89, I just noticed (I'm using x265) that on the y4m [info] line it says
1920x2160 fps 24000/1001 i420p8 sar 1:1
when in my old version it has sar 2:1 - will this matter, my previous files which I play on my LG 4K were stretched across the full width and then I used the 3D button to set it to top and bottom and it looks perfect.
The SAR has been changed in v0.86. It is now 1:1 for all frame packing modes (Full and Half SBS and T&B). It seems that it's the best SAR to use with the vast majority of players. It's the conclusion of a long discussion and many tests (starting with this post (http://forum.doom9.org/showthread.php?p=1758904#post1758904)).
Do you have a problem with the new setting? AFAIK, as soon as you switch to 3D mode (or the TV switches automatically to 3D mode), the SAR should be ignored and the aspect ratio should be correct. At least, it's what happens with my Samsung TV.
If your TV does not display the movie correctly, try to change Settings -> Full-SBS/T&B aspect ratio. And if that doesn't work, you can edit the __ENCODE_3D.cmd script and change the --sar option manually.
Also, I have been replacing the x265_x64 executable with one that has 10 bit support, which gives a better output (reducing banding significantly), maybe you could either bundle a exe with 8/10/12 bit support and make it selectable in h265 options?
I will consider that suggestion. But take in mind that the 10 or 12 color bit modes are not compatible with many hardware players and/or graphic cards. But I agree that reducing the banding artefacts is a good thing if it works for you. Banding remains certainly the most noticeable problem of the videos encoded in h264 or h265.
Airmiles
29th May 2016, 07:58
r0lZ,
Haven't been in here for a while now, so hi again to everybody.
Just a brief question: will the demise of slysoft have any impact on your app? I mean, support for new BR-discs will now obviously stop (there goes my life long subscription :angry:). Wouldn't it be helpful to add support for MKVs that contain the MVC track?
Just a question inspired by concern for future use of this fantastic app of yours.
Well, afaik, AnyDVD HD is not dead. It should be continued by RedFox (https://www.redfox.bz/). (See this (https://www.redfox.bz/about.html).) Anyway, there are other ways to remove the protection from the original BD. You can now open MVC-MKV files created with MakeMKV (currently with some limitations, but the next version of MakeMKV should be better). And there are other BD decrypters around.
The philosophy of BD3D2MK3D is to re-encode the two views as SBS, T&B or Frame-Sequential. I don't think that adding the re-encoding in AVC+MVC is a job for BD3D2MK3D. And MakeMKV does already lossless AVC+MVC MKVs with the original BD files (without re-encoding). Doing the same thing with BD3D2MK3D will be more time consuming, because MkvMerge cannot accept MVC tracks. I will have to combine the MVC with the AVC track first, and that takes a long time and much disc space. However, I have considered to implement lossless remux of AVC+MVC to M2TS. tsMuxeR can mux the AVC and MVC tracks separately to M2TS. There are some limitations (no chapters and no metadata for example), but it's not fundamental. I'm still not sure I'll implement that, because I don't think that many peoples are interested in simply remuxing the original streams to create a huge M2TS file. Also, you can already do it with the tsMuxeR GUI. But I may do it when I'll have some free time, simply because it's easy. All I have to do is generate a cmd file and a meta file for tsMuxeR.
Anyway, BD3D2MK3D will never implement the decrypting operation itself, so merging the AVC+MVC tracks to MKV or M2TS will never be a solution to replace AnyDVD HD.
Welcome to the Doom9 forums, Sxc!
The SAR has been changed in v0.86. It is now 1:1 for all frame packing modes (Full and Half SBS and T&B). It seems that it's the best SAR to use with the vast majority of players. It's the conclusion of a long discussion and many tests (starting with this post (http://forum.doom9.org/showthread.php?p=1758904#post1758904)).
Do you have a problem with the new setting? AFAIK, as soon as you switch to 3D mode (or the TV switches automatically to 3D mode), the SAR should be ignored and the aspect ratio should be correct. At least, it's what happens with my Samsung TV.
If your TV does not display the movie correctly, try to change Settings -> Full-SBS/T&B aspect ratio. And if that doesn't work, you can edit the __ENCODE_3D.cmd script and change the --sar option manually.
I will consider that suggestion. But take in mind that the 10 or 12 color bit modes are not compatible with many hardware players and/or graphic cards. But I agree that reducing the banding artefacts is a good thing if it works for you. Banding remains certainly the most noticeable problem of the videos encoded in h264 or h265.
Thanks for the reply - given the settings I use (CRF20, veryslow, main10) I didn't want to wait for a movie complete to find there was an issue, when my current encodes finish I will do a 3D trailer and see how that plays back, I'm only concerned about playback on my LG 4K OLED via Xplay (plex client). If it works fine I'll leave it at 1:1 too.
It should play fine. AFAIK, the SAR is almost always ignored for half SBS or T&B 3D, and when it is not ignored, 1:1 is correct 90% of the times.
Also, I have been replacing the x265_x64 executable with one that has 10 bit support, which gives a better output (reducing banding significantly), maybe you could either bundle a exe with 8/10/12 bit support and make it selectable in h265 options?
I will consider that suggestion. But take in mind that the 10 or 12 color bit modes are not compatible with many hardware players and/or graphic cards. But I agree that reducing the banding artefacts is a good thing if it works for you. Banding remains certainly the most noticeable problem of the videos encoded in h264 or h265.
Well, I've read some doc on 10bit color depth support and the BD standard and compatibility with avisynth (including this doc (http://avisynth.nl/index.php/High_bit-depth_Support_with_Avisynth)), and I'm not sure it is a good idea to implement it. AFAIK, currently, avisynth is still limited to 8-bit (although some filters may use more bits internally), and I wonder if encoding in 10-bit is really interesting if avisynth returns a 8-bit video anyway.
Perhaps it is possible to use various alternative filters within avisynth to output 10 or 12-bit, but honestly, I don't know how, I'm not sure they will be compatible with the filters BD3D2MK3D requires, and again, given the fact that the input BD is encoded in 8-bit (TV range), I don't think that the gain will be major. Note also that most monitors and TVs are 8-bit only, and therefore you can only expect a more or less well dithered 8bit color depth in final, even if the whole processing and encoding processes are made correctly in 10 or 12-bits.
So, unless somebody can explain what I'll have to do to effectively support 10 or 12-bit color depth during the whole process and can show me clearly that there is a big advantage, I will not do it. Sorry.
Anyway, if you really want to encode in 10 or 12-bit, you can replace the x264/x265 exe with the 10/12-bit version, as you know. You can even create several small cmd files to restore the 8-bit version or overwrite it with another version, and call the right batch when necessary, before launching the encoding.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.