Log in

View Full Version : BD3D2MK3D v1.36: Convert 3D BDs or MKV to 3D SBS, TAB or FS MKV - Support thread


Pages : 1 2 3 4 [5] 6

r0lZ
2nd July 2024, 09:19
Hum, no. But it seems strange to convert from 23.976 fps to 60. Are you sure that SVP converts really to 60 fps without time stretch? That should require to insert frames in addition to duplicated frames. IMO, to avoid this problem, it woulld be better to convert to 47.952 or 71.928 (2 or 3 times the original frame rate).

von Suppé
2nd July 2024, 09:44
I don't know how the framerateconversion is done, but I can imagine it's based on a 24fps --> 60fps grid. Possibly the resulting runtime is a bit shorter since the resulting video is authored to run slightly faster (23.976fps --> 24fps).
When speeding up 23.976fps video, obviously audio also needs to be sped-up to stay in sync.

[EDIT] r0lZ, you beat me to it by seconds :-)

r0lZ
2nd July 2024, 09:47
Or it may be sufficient to specify 60/1.001 (or 59.94) fps instead of 60 ? At least, the mux should be in sync.

Enet47
4th July 2024, 07:35
I've been using SVP for years with BD3D2MK3D 3D conversions but I run it in real-time, not transcoding.

Enet47
8th July 2024, 19:24
Or it may be sufficient to specify 60/1.001 (or 59.94) fps instead of 60 ? At least, the mux should be in sync.
I want to be able to manually fix an MKV file with some AVS code. I was able to do this before by manually splitting it into left and right the modifying the movie.avs file. But this time I just want to run an avisynth commands like "selectevery" on an SBS MKV file.

What tool do you use to convert the file into x264 and MVC? Basically how do you get the files, framecounts etc for x264.exe. I would rather not use x264 but I assume it would be easier for you to answer if it's about a method you are already using. Thanks.

Enet47
10th July 2024, 10:00
Or
Any help on my request?

r0lZ
10th July 2024, 16:14
Not sure I understand what you mean. BD3D2MK3D doesn't convert TO x264 (AVC) and MVC. It takes the AVC and MVC streams from the BD and combine them to SBS. The two video (and audio and subtitles) streams are extracted from the BD with tsMuxeR. The other information, such as the chapters, the frame count and frame rate are extracted from the MPLS with a MPLS parser I have written myself (but some info can also be extracted with tsMuxeR).

Of course, if your input is a MKV created with MakeMKV, things are different. In that case, the streams can be extracted from the MKV with mkvextract. The characteristics of the file can be extracted with tsMuxeR.

Note that usually, a 3D BD is always made of a 16:9 image (usually 1920x1080 or very rarely 1280x720) at 23.976 (more precisely 24/1.001) fps.

The avisynth script is used to convert the elementary video streams to SBS, with the help of the FRIMSource plugin (that can decode the MVC stream).

x264 (or x265) is only used to encode the AVS script to the final h264 SBS stream. It has nothing to do with the resolution, frame rate or frame count. (However, you can pass the frame count as an argument to x264, to let it display accurately the remaining processing time or to stop the encoding before the end of the original video, but that's not absolutely necessary.)

Finally, mkvmerge is used to mux the final MKV.

I hope I have replied to your questions. I can't explain everything in details, as the whole process is very complex, but you can have a look at the produced files or to the source code to understand the principle.

Enet47
10th July 2024, 16:46
Not sure I understand what you mean. BD3D2MK3D doesn't convert TO x264 (AVC) and MVC. It takes the AVC and MVC streams from the BD and combine them to SBS. The two video (and audio and subtitles) streams are extracted from the BD with tsMuxeR. The other information, such as the chapters, the frame count and frame rate are extracted from the MPLS with a MPLS parser I have written myself (but some info can also be extracted with tsMuxeR).

Of course, if your input is a MKV created with MakeMKV, things are different. In that case, the streams can be extracted from the MKV with mkvextract. The characteristics of the file can be extracted with tsMuxeR.

Note that usually, a 3D BD is always made of a 16:9 image (usually 1920x1080 or very rarely 1280x720) at 23.976 (more precisely 24/1.001) fps.

The avisynth script is used to convert the elementary video streams to SBS, with the help of the FRIMSource plugin (that can decode the MVC stream).

x264 (or x265) is only used to encode the AVS script to the final h264 SBS stream. It has nothing to do with the resolution, frame rate or frame count. (However, you can pass the frame count as an argument to x264, to let it display accurately the remaining processing time or to stop the encoding before the end of the original video, but that's not absolutely necessary.)

Finally, mkvmerge is used to mux the final MKV.

I hope I have replied to your questions. I can't explain everything in details, as the whole process is very complex, but you can have a look at the produced files or to the source code to understand the principle.
Thanks for the description. I was looking at using X264 because I have an SBS MKV file that I want to run some Avisynth commands on. I could addthose commands in your movie.avs script. But my real problem is that I want to import the SBS file to be used by an Avisynth script like movie.avs. TSmuxer will give me the x264 file, but I can't get the MVC file because it's not a makemkv blu-ray or MKV. The other option will be to convert the SBS MKV to an MVC MKV which I've seen some others have done.

r0lZ
10th July 2024, 17:19
To open a MKV with avisynth, I use FFMpegSource2 (http://avisynth.nl/index.php/FFmpegSource). But for this kind of questions, regarding avisynth and not directly BD3D2MK3D, please post in an avisynth forum. The answers will be more precise than here. Thanks.

Of course, in a SBS file, there is only one single x264 video stream, no MVC stream. If you need to process the two views independently, you must split the SBS view. It's easy. Refer to the avisynth doc.

Enet47
10th July 2024, 18:03
To open a MKV with avisynth, I use FFMpegSource2 (http://avisynth.nl/index.php/FFmpegSource). But for this kind of questions, regarding avisynth and not directly BD3D2MK3D, please post in an avisynth forum. The answers will be more precise than here. Thanks.

Of course, in a SBS file, there is only one single x264 video stream, no MVC stream. If you need to process the two views independently, you must split the SBS view. It's easy. Refer to the avisynth doc.
I try not to bother busy people like yourself, especially when you have created such a useful tool. So I spent some time trying to get this working myself and was not able to do so. I don't need to process the views independently. I kind of already know how to do that with ffmpeg although in this case it fails I assume because of frame count. Anyway I'm trying with staxrip.

r0lZ
10th July 2024, 18:28
Install the FFMS2 plugin. (Put it in the plugins directory of your avisynth and it will be autoloaded, or put it anywhere else and use the LoadPlugin avisynth command to load it for your script only.)
Then, loading the MKV is very simple. Just use the FFMpegSource2 command. Example:

LoadPlugin("path\to\ffms2.dll")
FFMpegSource2("movie.mkv")
The rest is up to you.

You can use Info() to show the information about the MKV (including the number of frames).
I recommend to use AvsPMod (x64!) to check and edit the avisynth script.

Enet47
11th July 2024, 11:43
Install the FFMS2 plugin. (Put it in the plugins directory of your avisynth and it will be autoloaded, or put it anywhere else and use the LoadPlugin avisynth command to load it for your script only.)
Then, loading the MKV is very simple. Just use the FFMpegSource2 command. Example:

LoadPlugin("path\to\ffms2.dll")
FFMpegSource2("movie.mkv")
The rest is up to you.

You can use Info() to show the information about the MKV (including the number of frames).
I recommend to use AvsPMod (x64!) to check and edit the avisynth script.
Perfect. Thank you.

jp80
5th December 2024, 19:01
Not sure I understand what you mean. BD3D2MK3D doesn't convert TO x264 (AVC) and MVC. It takes the AVC and MVC streams from the BD and combine them to SBS. The two video (and audio and subtitles) streams are extracted from the BD with tsMuxeR. The other information, such as the chapters, the frame count and frame rate are extracted from the MPLS with a MPLS parser I have written myself (but some info can also be extracted with tsMuxeR).

Of course, if your input is a MKV created with MakeMKV, things are different. In that case, the streams can be extracted from the MKV with mkvextract. The characteristics of the file can be extracted with tsMuxeR.

Note that usually, a 3D BD is always made of a 16:9 image (usually 1920x1080 or very rarely 1280x720) at 23.976 (more precisely 24/1.001) fps.

The avisynth script is used to convert the elementary video streams to SBS, with the help of the FRIMSource plugin (that can decode the MVC stream).

x264 (or x265) is only used to encode the AVS script to the final h264 SBS stream. It has nothing to do with the resolution, frame rate or frame count. (However, you can pass the frame count as an argument to x264, to let it display accurately the remaining processing time or to stop the encoding before the end of the original video, but that's not absolutely necessary.)

Finally, mkvmerge is used to mux the final MKV.

I hope I have replied to your questions. I can't explain everything in details, as the whole process is very complex, but you can have a look at the produced files or to the source code to understand the principle.

Sorry to beat a dead horse but I wish to create a full SBS mkv without reencoding the video stream from the bluray source to keep its original picture quality, and I couldn't find any option for this in BD3D2KM3D.

Then could you think about adding this option, and in the meanwhile does somebody know another software that could allow me to do that ?

r0lZ
5th December 2024, 20:08
What you want is simply totally impossible. Forget it.
Full (or half) SBS (a totally different format than the source AVC+MVC) implies to re-encode the video. Dot.

You can minimize the quality loss, but not avoid it completely.

jp80
7th December 2024, 11:58
Yeah I realized my question made no sense after understanding that requirement.

FTP
8th December 2024, 11:21
Hi,

I'm trying to convert 3D MVC MKV files to SBS format using BD3D2MK3D but I'm having 1 problems and I have 2 extra questions.

1/ After generating the project, the encoding process crash and I get this error message...
Encoding movie in 3D
Movie: Minions 3D
Encoding started 03/12/2024 1:08:02,04

D:\tmp\Minions 3D\MKV3D>"D:\Logiciels\Vidéo\BD3D2MK3D 1.33\BD3D2MK3D 1.33\toolset\x264_x64.exe" --output-depth 8 --crf 23 --preset medium --sar 1:1 --range tv --colormatrix bt709 --frame-packing 3 --qpfile chapters_3D.qpfile --frames 130861 --fps 24000/1001 --output "MKV3D_3D.264" "__ENCODE_3D_MOVIE.avs"
avs [error]: Evaluate: Unhandled C++ exception!
(__ENCODE_3D_MOVIE.avs, line 19)
x264 [error]: could not open input file `__ENCODE_3D_MOVIE.avs'
Encoding finished 03/12/2024 1:08:02,08

D:\tmp\Minions 3D\MKV3D>"D:\Logiciels\Vidéo\BD3D2MK3D 1.33\BD3D2MK3D 1.33\toolset\mkvmerge.exe" @__MUX_3D_OPTIONS.json | "D:\Logiciels\Vidéo\BD3D2MK3D 1.33\BD3D2MK3D 1.33\toolset\tee.exe" "MKV3D_3D.mkvmerge.log"
mkvmerge v75.0.0 ('Goliath') 32-bit
Error: The type of file 'MKV3D_3D.264' could not be recognized.
It's a fresh install so I'm using:
- BD3D2MK3D 1.33
- AviSynth+ 3.7.3
- Java 8 JRE U431 64 bits
- Microsoft .NET Framework 4.8.09037

As I have an Intel i7-4790K, I've tried to disable the Hardware acceleration but it doesn't help.

I've also tried AviSynth+ 2.7.7.2 instead of the 3.7.3 but it's not helping either.
However, it works with AviSynth 2.6.0, but the final encoding is veeeery slow and I get some warning from BD3D2MK3D that I need to switch to a 64 bits version.

So any idea why I'm having this error message and how to make it work with 64 bits versions of AviSynth (which is recommanded everywhere)?


2/ Regarding Java (for subtitles), I followed the link in the install procedure and installed the lastest JRE, version 8 Update 431.

However, I noticed if we ask BD3D2MK3D for the Java version it sees (Help > Java version), it says Java is not installed(!), while it is and there is a file in "C:\Program Files (x86)\Common Files\Oracle\Java\java8path\java.exe".
And if we read all the comment of the pop-up, it now advises to install OpenJDK and not the official JRE.
And indeed, OpenJDK looks recognized by BD3D2MK3D.

So what are we supposed to intall?
The JRE or the JDK?
Official version or open source?

3/ At last, regarding subtitles in 3D SBS movie files.
VLC can display them properly (each subtitle on both sides and in the middle of the image).
But Plex don't display them properly. Each subtitle is displayed on both sides, but cut in 2, half on each side of the image. And it's the same behaviour on the Apple TV, Windows or iOS client.

Any idea if BD3D2MK3D can help, by using specific settings for SBS file to be played on Plex?

Thanks for your help! :)

r0lZ
8th December 2024, 14:05
1. For the crash, please post here the content of __ENCODE_3D_MOVIE.avs, or at least the line 19, since it contains the instruction that causes the crash.

2. Java : any version should work, but the Oracle version is currently not recommended anymore (notably for privacy and security reasons).
It is very difficult to determine what version is installed, because Java does not respect at all the installation guidelines of Windows, and each version uses another procedure! I will modify the install guide to recommend OpenJDK. Thanks for the information.
In the worst case, the conversion is made without Java. Although it's not recommended, that works well most of the times. But it seems that your OpenJDK version is recognised, so I assume that it's perfect now.

3. The 3D subtitles must be "printed" over the HSBS picture BEFORE it is split in the two parts (left and right eye views). A good player should be able to do that, but it's often a setting, sometimes difficult to find. Or you are unlucky and it's simply impossible. Anyway, BD3D2MK3D cannot force the player to display the 3D subtitles correctly.
There is a very simple solution. Just "hardcode" (aka "burn") the subtitles on the video during the encoding. That way, they will be correctly displayed regardless of the player. (And BTW, it's also the only way to obtain good 3D subtitles for Full-SBS). The price to pay is that it is impossible to disable them. But if you need them anyway, it's certainly the best solution.
Use the "hardcode subtitles" option on the last tab. (You don't need, but it doesn't hurt to select the same subtitles stream in tab 2.)

FTP
8th December 2024, 15:05
Thanks for your quick answer! :)

1. For the crash, please post here the content of __ENCODE_3D_MOVIE.avs, or at least the line 19, since it contains the instruction that causes the crash.
What's your recommendation: AviSynth+ 3.7.3 (the last one) or 2.7.7.2 (the one recommanded in the installation procedure - procedure "maybe" not updated)?

Here is the line 19 with AviSynth+ 3.7.3:
# AVC/MVC video decoder
LoadPlugin("D:\Logiciels\Vidéo\BD3D2MK3D 1.33\BD3D2MK3D 1.33\toolset\plugins64bit\FRIMSource.dll")
The path looks correct. At least, there's a FRIMSource.dll in this directory.
But maybe it's supposed to use another file from AviSynth+ :-/

2. Java : any version should work, but the Oracle version is currently not recommended anymore (notably for privacy and security reasons).
Correct. I -think- both version work, I've made some tests with both, even though it's hard to tell if it worked because of Java or because of BDSup2Sub++.

But, the fact that the "Help > Java version" pop-up says Java is not installed when it's the official JRE that's installed doesn't help to be confident.

It is very difficult to determine what version is installed, because Java does not respect at all the installation guidelines of Windows, and each version uses another procedure!
Ok, I understand. But once again, do you need the Java JRE (Runtime) or SDK (Development Kit) to be installed?
Or any of those are fine?
It -may be- part of the issue why BD3D2MK3D is not finding Java, if it's looking for the SDK while the install procedure so far recommands the JRE.

3. The 3D subtitles must be "printed" over the HSBS picture BEFORE it is split in the two parts (left and right eye views). A good player should be able to do that, but it's often a setting, sometimes difficult to find. Or you are unlucky and it's simply impossible. Anyway, BD3D2MK3D cannot force the player to display the 3D subtitles correctly.
Ok. I'll check on the Plex side.

There is a very simple solution. Just "hardcode" (aka "burn") the subtitles on the video during the encoding. That way, they will be correctly displayed regardless of the player. (And BTW, it's also the only way to obtain good 3D subtitles for Full-SBS). The price to pay is that it is impossible to disable them. But if you need them anyway, it's certainly the best solution.
Use the "hardcode subtitles" option on the last tab. (You don't need, but it doesn't hurt to select the same subtitles stream in tab 2.)
Thanks for the advise.
But it would not be convenient for me as I need to keep and the possibility to view the movies in French and English.

Thanks for your help! :)

r0lZ
8th December 2024, 18:16
What's your recommendation: AviSynth+ 3.7.3 (the last one) or 2.7.7.2 (the one recommanded in the installation procedure - procedure "maybe" not updated)?

All versions should work equally. BD3D2MK3D doesn't use complex Avisynth functions, so an old or recent version should do the job well.

Here is the line 19 with AviSynth+ 3.7.3:
# AVC/MVC video decoder
LoadPlugin("D:\Logiciels\Vidéo\BD3D2MK3D 1.33\BD3D2MK3D 1.33\toolset\plugins64bit\FRIMSource.dll")
The path looks correct. At least, there's a FRIMSource.dll in this directory.
But maybe it's supposed to use another file from AviSynth+ :-/

No, BD3D2MK3D uses only the plugins stored in the toolset folder, and as far as I know they work well.
I suspect a problem with the accented character in "vidéo". FRIMSource may have a (unfortunately classic) problem with the French language. As a rule, I tend to avoid those characters in the directory names. (BTW, my native language is French too, but my Windows is configured in English.)
Try to move the BD3D2MK3D installation folder elsewhere, and retry. (You will need to relaunch the whole procedure. Sorry.)

Correct. I -think- both version work, I've made some tests with both, even though it's hard to tell if it worked because of Java or because of BDSup2Sub++.

But, the fact that the "Help > Java version" pop-up says Java is not installed when it's the official JRE that's installed doesn't help to be confident.

I agree. Not sure what's happening, and honestly, I don't want to reinstall the deprecated Java from Oracle just to check what's happening. It is a nightmare to uninstall it completely.
Normally, BD3D3MK3D should detect Java if Java.exe can be launched from the Windows terminal (aka DOS Prompt) without specifying the path.

You can see the command that has been used for each conversion in the BD3D2MK3D.log file, or, during the conversion, in the console window. (Use File -> Show console)
Note that BD3D2MK3D uses the java version for some conversions, and the C++ version in other circumstances. There are bugs in both versions, but luckily not for the same jobs!

Ok, I understand. But once again, do you need the Java JRE (Runtime) or SDK (Development Kit) to be installed?
Or any of those are fine?
It -may be- part of the issue why BD3D2MK3D is not finding Java, if it's looking for the SDK while the install procedure so far recommands the JRE.

The JRE is largely sufficient. The SDK is never necessary, except if you want to develop a Java program.

Thanks for the advise.
But it would not be convenient for me as I need to keep and the possibility to view the movies in French and English.

I understand, but there is no other solution. It's mainly because a standard for 3D-subtitles does not exist officially. BD3D2MK3D has been the first program (and may still be the only program - I don't know) able to convert the subtitles to 3D while retaining the correct depth, but that requires to use a compatible player (or to hardcode the subtitles). It's because some players cannot display the 3D subs correctly that it is possible to include also the 2D subtitles (that must be printed on the image AFTER the split of the L/R views) but of course, the depth is not correct. I hope you will find the possibility to configure your players correctly for the 3D subs. Currently, many software players support that possibility, but unfortunately, it's still very rare for the hardware players.

FTP
8th December 2024, 22:55
All versions should work equally. BD3D2MK3D doesn't use complex Avisynth functions, so an old or recent version should do the job well.
Ok, so I stuck to the 3.7.3.

I suspect a problem with the accented character in "vidéo". FRIMSource may have a (unfortunately classic) problem with the French language. As a rule, I tend to avoid those characters in the directory names. (BTW, my native language is French too, but my Windows is configured in English.)
Try to move the BD3D2MK3D installation folder elsewhere, and retry. (You will need to relaunch the whole procedure. Sorry.)
Bingo, well done it works!
You can add this warning in the installation procedure ;)

However, it's surprising it's the reason of the crash, as why would the accent be a problem for the 64 bits versions and not the 2.6.0 in 32 bits? :(

I agree. Not sure what's happening, and honestly, I don't want to reinstall the deprecated Java from Oracle just to check what's happening. It is a nightmare to uninstall it completely.
Normally, BD3D3MK3D should detect Java if Java.exe can be launched from the Windows terminal (aka DOS Prompt) without specifying the path.

You can see the command that has been used for each conversion in the BD3D2MK3D.log file, or, during the conversion, in the console window. (Use File -> Show console)
Note that BD3D2MK3D uses the java version for some conversions, and the C++ version in other circumstances. There are bugs in both versions, but luckily not for the same jobs!

The JRE is largely sufficient. The SDK is never necessary, except if you want to develop a Java program.
You previously said both should work.
If we forget about BD3D2MK3D not detecting the official JRE in the Help menu, how can I test if BD3D2MK3D is in fact able to use this official JRE for the subtitles?
Because, I'm not fan of Java but I also need it to run the BD menus in VLC. And so far the latest version of the official JRE works wellwith VLC. So if I could make sure it also works well with BD3D2MK3D it would be great.
Otherwise, I have to do the contrary, try to test if the OpenSDK works with VLC, so I can keep only 1 of the 2 :rolleyes:

I understand, but there is no other solution. It's mainly because a standard for 3D-subtitles does not exist officially. BD3D2MK3D has been the first program (and may still be the only program - I don't know) able to convert the subtitles to 3D while retaining the correct depth, but that requires to use a compatible player (or to hardcode the subtitles). It's because some players cannot display the 3D subs correctly that it is possible to include also the 2D subtitles (that must be printed on the image AFTER the split of the L/R views) but of course, the depth is not correct. I hope you will find the possibility to configure your players correctly for the 3D subs. Currently, many software players support that possibility, but unfortunately, it's still very rare for the hardware players.
Understand. I'll have a look at Plex. I would be surprised if there's no solution as I've read a lot of BD3D2MK3D users using it to later on play the movies on Plex.

(BTW, my native language is French too, but my Windows is configured in English.)
Yep, I've seen you wrote we can email you in French or English, and your previous websites being some .be :D
Regarding Windows, my pro PC is setup in English and the personal one in French so that I stay used to the 2 versions ;)

Thanks very much for your great support! :thanks:

r0lZ
9th December 2024, 09:55
However, it's surprising it's the reason of the crash, as why would the accent be a problem for the 64 bits versions and not the 2.6.0 in 32 bits? :(

Honestly, I don't know. Perhaps because the 64-bit version is newer and it uses the UTF-8 character encoding, while the 32-bit version still use the infamous Windows codepages.

I will add a check in BD3D2MK3D, and if it detects non-ASCII characters in the path, it will issue a warning.

You previously said both should work.
If we forget about BD3D2MK3D not detecting the official JRE in the Help menu, how can I test if BD3D2MK3D is in fact able to use this official JRE for the subtitles?

Yes, both should work. And the OpenJDK version should work equally fine with Plex and all other Java based applications.
As I wrote, have a look at the log. The command that is used by BD3D2MK3D during a subtitles conversion is written. If it's BDSup2Sub++.exe, it's the C++ version, and if it's BSSup2Sub.jar, it's the Java version.


Thanks very much for your great support! :thanks:
You're welcome.
I hope you will find a good solution for Plex. I can't help you, as I don't use Plex, but if you find the setting to modify, please post it here. Your finding will certainly be useful to other users.

FTP
13th December 2024, 17:46
It's because some players cannot display the 3D subs correctly (...). I hope you will find the possibility to configure your players correctly for the 3D subs. Currently, many software players support that possibility, but unfortunately, it's still very rare for the hardware players.
Understand. I'll have a look at Plex. I would be surprised if there's no solution as I've read a lot of BD3D2MK3D users using it to later on play the movies on Plex.
Indeed, you're right it's a question of player.
Regarding Plex, some players work fine, some don't:

Web: OK
Windows: NOK
iOS (iPhone/iPad): NOK
tvOS (Apple TV): NOK
WebOS (LG): OK
Android TV: OK

And unfortunately, I would like the Apple TV player to work.
So I've open a topic on the Plex forum, I hope I'll get an answer.
https://forums.plex.tv/t/subtitles-of-sbs-3d-movies-not-properly-displayed-by-some-players/898754

I started by asking if there are specific settings and if not, I'll ask if they can fix the issue, but I'm not that confident. It looks like the issue exists for a very long time :(
https://forums.plex.tv/t/sbs-3d-subtitle-support/280710
No answer, no fix since 2018.

r0lZ
14th December 2024, 10:00
Thanks for the information.
I agree that they probably won't do anything. These forums where threads are automatically closed after a certain amount of time are made specifically to prevent a particular request from having to be considered. It doesn't make me want to be interested in Plex!

r0lZ
6th January 2025, 11:26
V1.24 is here. It's not a major update, but it fixes a few little bugs, and it includes the newest versions of the third-party tools.

v1.34 (January 6, 2024)
- Fixed a few very little bugs
- Wraped with the latest version of freeWrap (v6.75)
- Updated tsMuxeR Open Source to the latest version (git-7f8667d 2024-06-06-02-00-53)
- Updated x264 to the latest version (v 0.164.3204)
- Updated x265 to the latest version (v 4.1+54)
- Updated mkvtoolnix to the latest version (v89.0 'And the Melody Still Lingers On (Night in Tunisia)')

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

Note that this version has been only slightly tested. If you encounter any problem, you can still download v1.33 here (https://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D-v1.33.7z).

r0lZ
11th January 2025, 11:29
Sorry, due to important changes in tsMuxeR, BD3D2MK3D v1.34 doesn't work correctly. I am currently fixing it, but that may take some time. In the meantime, use v1.33, that can still be downloaded here (https://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D-v1.33.7z).

r0lZ
11th January 2025, 16:48
Hopefully, the bug related to tsMuxeR is fixed. Sorry for the inconvenience.

v1.35 (January 11, 2025)
- Fixed a big bug in v1.34 due to different output filenames in the latest tsMuxeR. Sorry!

Download latest version: BD3D2MK3D.7z (https://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)

tebasuna51
12th January 2025, 07:32
Thanks r0lZ

Enet47
16th May 2025, 05:41
Hopefully, the bug related to tsMuxeR is fixed. Sorry for the inconvenience.

Download latest version: BD3D2MK3D.7z (https://download.videohelp.com/r0lZ/BD3D2AVS/BD3D2MK3D.7z)
I'm starting to convert my 3D files to full-sbs but my media players wouldn't detect it as full-sbs. Then when I looked at the mkv header it is set to 3840x2160 not 3840x1080. The Video Display height property is set to 2160 but the Video Display Pixel property is set to 1080. Both should be set to 1080 so I think that maybe you are producing 3840x2160 files which is why my media players won't detect the full-sbs. I can modify the header to 1080p but that makes things worse futher down my display chain.

r0lZ
16th May 2025, 10:07
Both should be set to 1080 [...]
Well, unfortunately, for Full-SBS, there is no precise standard for the display resolution and aspect ratio. It's because originally, only Half-SBS has been defined officially. Therefore, the "correct" AR to use depends of the player. It's why there is a menu Settings -> Full SBS/T&B Aspect Ratio. Try to play with that settings. (Note that you can manually modify the AR and resolution settings without having to re-create the whole project. See the __ENCODE_3D.cmd and __MUX_3D_OPTIONS.json files.)

Also, a good player should retrieve the 3D mode from the video header (the frame-packing property of the x264 encoder) and/or from the MKV header (the stereo-mode property). All other methods are bizarre, non-official and prone to errors.

Do you encode your files with x264 or x265 ? Unfortunately, h265 does not support the frame-packing property, because all 3D video streams are supposed to be encoded in h264. Many hardware players support only the frame-packing and ignore the MKV stereo-mode. It's a pity.

Then when I looked at the mkv header it is set to 3840x2160 not 3840x1080.
Indeed, that's bizarre. I will have a look...

But no, BD3D2MK3D does NOT produce 3840x2160 files. It uses only the anisynth commands HorizontalReduceBy2 or VerticalReduceBy2 to produce Half-SBS or Half-TAB. For Full-SBS/TAB, the original images are just stacked together horizontally or vertically, without any resize.

Enet47
16th May 2025, 10:18
Indeed, that's bizarre. I will have a look...

But no, BD3D2MK3D does NOT produce 3840x2160 files. It uses only the anisynth commands HorizontalReduceBy2 or VerticalReduceBy2 to produce Half-SBS or Half-TAB. For Full-SBS/TAB, the original images are just stacked together horizontally or vertically, without any resize.
Hi. Thanks for checking. I looked at the code and saw the same as you but I was hoping that there was something I was missing or maybe there was an x264 option I could use to force the resolution.

I checked a second file I recently converted to full SBS and it has the same issue. When I do "fix" the Display Height attribute then my SVP software interpolation software can't play it properly. I convert it with full-sbs and this happens, there's nothing else which is why I was surprised that there's nothing obvious in the code that is causing this.

Enet47
16th May 2025, 11:03
Well, unfortunately, for Full-SBS, there is no precise standard for the display resolution and aspect ratio. It's because originally, only Half-SBS has been defined officially. Therefore, the "correct" AR to use depends of the player. It's why there is a menu Settings -> Full SBS/T&B Aspect Ratio. Try to play with that settings. (Note that you can manually modify the AR and resolution settings without having to re-create the whole project. See the __ENCODE_3D.cmd and __MUX_3D_OPTIONS.json files.)

Also, a good player should retrieve the 3D mode from the video header (the frame-packing property of the x264 encoder) and/or from the MKV header (the stereo-mode property). All other methods are bizarre, non-official and prone to errors.

Do you encode your files with x264 or x265 ? Unfortunately, h265 does not support the frame-packing property, because all 3D video streams are supposed to be encoded in h264. Many hardware players support only the frame-packing and ignore the MKV stereo-mode. It's a pity.


Indeed, that's bizarre. I will have a look...

But no, BD3D2MK3D does NOT produce 3840x2160 files. It uses only the anisynth commands HorizontalReduceBy2 or VerticalReduceBy2 to produce Half-SBS or Half-TAB. For Full-SBS/TAB, the original images are just stacked together horizontally or vertically, without any resize.
I've sorted the stuttering issue. That was from my side. But I still have to manually update the MKV header of each full SBS file I convert. Something somewhere in the software is setting the display height attribute to 2160. I wonder if it is somehow taking it from the screen resolution when the conversion is happening?

r0lZ
19th May 2025, 10:20
Not sure, but the problem may be caused by a confusion about what means "display height". I haven't much time to check that currently, but IMO the display width and height are another way to specify the aspect ratio of the video picture at display time. And if it's really the case, the display dimension must be 1920x1080 or 3840x2160 or any multiple of this dimension.
In the other hand, the physical width for full-SBS has to be two times the display width, due to the horizontal stacking of the two views.

r0lZ
19th May 2025, 12:28
OK, I did a quick test with the different aspect ratio settings of BD3D2MK3D. Everything seems correct.

First test, with the Full-SBS Aspect Ratio options set to 32:9 and SAR 1:1 (first option for the two settings). Here is what I get:

Width : 3 840 pixels
Height : 1 080 pixels
Display aspect ratio : 3.556

(3.556 is another way to write 32:9)

| + Pixel width: 3840
| + Pixel height: 1080
| + Display width: 3840
| + Display height: 1080

When loaded in mkvtoolnix GUI, the Display width and height, without surprise, is 3840x1080 (32:9). IMO, that value is not correct, since the Display AR is 16:9, but most hardware and software players need that format. In practice, they require the SBS image AR, not the Display AR. It's why there is an option to control that value in BD3D2MK3D

Second test, with the settings set to 16:9 and SAR 1:2.

Width : 3 840 pixels
Height : 1 080 pixels
Display aspect ratio : 16:9


| + Pixel width: 3840
| + Pixel height: 1080
| + Display width: 3840
| + Display height: 2160

In mkvtoolnix, the Display width and height is, again, perfectly coherent: 3840x2160 (equal to 1920x1080 and 16:9)
Again, everything is perfectly coherent with the chosen settings.

So, there is no problem with BD3D2MK3D. You may need a specific setting for your player, but you can easily select it in the GUI.

BTW, may I know what player(s) you use ?

Enet47
24th May 2025, 15:01
I think maybe the tests below have been swapped?

OK, I did a quick test with the different aspect ratio settings of BD3D2MK3D. Everything seems correct.

First test, with the Full-SBS Aspect Ratio options set to 32:9 and SAR 1:1 (first option for the two settings). Here is what I get:

(3.556 is another way to write 32:9)

When loaded in mkvtoolnix GUI, the Display width and height, without surprise, is 3840x1080 (32:9). IMO, that value is not correct, since the Display AR is 16:9, but most hardware and software players need that format. In practice, they require the SBS image AR, not the Display AR. It's why there is an option to control that value in BD3D2MK3D

That's not what I'm getting. For SAR 1:1 I get 3840x2160 for Display Height. If I change Display Height to 3840x1080 then mpv player plays it correctly.


Second test, with the settings set to 16:9 and SAR 1:2.


In mkvtoolnix, the Display width and height is, again, perfectly coherent: 3840x2160 (equal to 1920x1080 and 16:9)
Again, everything is perfectly coherent with the chosen settings.

So, there is no problem with BD3D2MK3D. You may need a specific setting for your player, but you can easily select it in the GUI.

BTW, may I know what player(s) you use ?

OK I will try with SAR 1:2 and hopefully this will give me 3840x1080. I will let you know how it goes. Thanks :)

r0lZ
24th May 2025, 15:25
I think maybe the tests below have been swapped?
Certainly not. It's what my code does, it's exactly what it produces and it's perfectly coherent.


That's not what I'm getting. For SAR 1:1 I get 3840x2160 for Display Height. If I change Display Height to 3840x1080 then mpv player plays it correctly.
That's not right at all.
What application do you use to read that values? It seems totally wrong!
And what is "mpv player"? Is it MPC (Media Player Classic)?

Enet47
24th May 2025, 15:29
Certainly not. It's what my code does, it's exactly what it produces and it's perfectly coherent.


That's not right at all.
What application do you use to read that values? It seems totally wrong!
And what is "mpv player"? Is it MPC (Media Player Classic)?
I'm using the latest version of MKVToolNiX GUI and with SAR1:1
Video display height is 2160
video pixel height is 1080.

The player is mpv player which is like MPC with MadVR but much more (text based) configurable and even better picture quality.

r0lZ
24th May 2025, 17:41
It's exactly what I wrote:
First test, with the Full-SBS Aspect Ratio options set to 32:9 and SAR 1:1 (first option for the two settings). Here is what I get:
...
When loaded in mkvtoolnix GUI, the Display width and height, without surprise, is 3840x1080 (32:9).

But note the AR set to 32:9. It's the combination of the AR plus the SAR that produces the display width/height. It is very difficult to know what setting a specific player takes into account and what setting it ignores. You should play with the two settings until you obtain the correct configuration for your player (and you may also have to play with the 3D and AR settings of the player).

I did not know the MPV player. It seems interesting. But anyway try with another player, just to be sure. I suggest Potplayer, probably the most versatile to play 3D videos (but I'm not sure for MadVR).

Enet47
24th May 2025, 22:59
It's exactly what I wrote:


But note the AR set to 32:9. It's the combination of the AR plus the SAR that produces the display width/height. It is very difficult to know what setting a specific player takes into account and what setting it ignores. You should play with the two settings until you obtain the correct configuration for your player (and you may also have to play with the 3D and AR settings of the player).

I did not know the MPV player. It seems interesting. But anyway try with another player, just to be sure. I suggest Potplayer, probably the most versatile to play 3D videos (but I'm not sure for MadVR).
Thanks. I tried SAR 1:2 but display height is still set to 2160 and pixel height is still 1080. But if I replace 2160 with 1080 then mpv is OK with it. I will just leave the defaults as is then modify the header.

Ksanto
30th May 2025, 21:43
Hi, firstly thank for the work done. I want to make a Bug report:

I have now tried to convert my PAL 3DBD of Mad Max Fury road to Full frame side by side, three times with different quality settings. Every time between the 30 and 40 min mark, the frames change sides from left to right and vise versa. I have verified that this is indeed the File and not the players fault (using Plex Web and a Pico 4 / Pico 4 Ultra) by also testing it on my PC. Have already searched for this error online but did not find any mentions of this.

DB3D2MK3D Version used: 1.35 (Tcl/Tk 8.6.13 wrapped with freeWrap 6.75)
Windows Version used: Windows 10 (2009 22.12.2020 19045.5854)
Hardware used: i7 3520M
decryption software used: Passkey 9 9.4.7.6

Tell me if I can provide any additional Information that would help identifying the Problem.


Regards
Ksanto

r0lZ
31st May 2025, 08:45
Welcome to the Doom9 forum and thank you for your report, Ksanto.

You are the first person to report that problem. I did Mad Max myself without problem.

Can you disable the hardware acceleration (menu Settings/MVC Decoder/Hardware acceleration)? That's often the cause of similar issues. If that's sufficient, you may need to update your Intel drivers, or continue to decode without hardware acceleration.

If that doesn't work, please let me know and we will try other workarounds.

Enet47
31st May 2025, 10:13
Welcome to the Doom9 forum and thank you for your report, Ksanto.

You are the first person to report that problem. I did Mad Max myself without problem.

Can you disable the hardware acceleration (menu Settings/MVC Decoder/Hardware acceleration)? That's often the cause of similar issues. If that's sufficient, you may need to update your Intel drivers, or continue to decode without hardware acceleration.

If that doesn't work, please let me know and we will try other workarounds.
Apologies to jump on this topic. But I've not been able to get Hardware acceleration working for over a year or more. The only way I used to get it working was by downgrading my video drivers. But with Windows 11 that is no longer possible. Intel have remove all traces of the drivers needed for Quick Sync from the Internet.

r0lZ
31st May 2025, 12:30
Well, I did not know that. Thanks for the information.

Anyway, Ksanto may still have a working Quick Sync driver, so testing with acceleration disabled makes sense. This way, the software version, provided with BD3D2MK3D will be used, and as far as I know, it works fine.

Enet47
31st May 2025, 12:44
Well, I did not know that. Thanks for the information.

Anyway, Ksanto may still have a working Quick Sync driver, so testing with acceleration disabled makes sense. This way, the software version, provided with BD3D2MK3D will be used, and as far as I know, it works fine.
Thanks for the reply. The issue is that Intel changed their hardware encoding interface to oneVPL a few years ago, but your software is still trying to use the old one. Yes the software version works but it is much slower. I'm trying to re-encode over 200 discs and each one takes up to 2 hours when encoding to full-SBS and some are taking 3 hours.

r0lZ
31st May 2025, 17:57
Yes the software version works but it is much slower.
It's not my feeling. I have an AND CPU, but I did some tests with Intel processors (supporting Quick Sync) and without the hardware acceleration, the encoding was only 5 or 6% slower. The encoder requires much more processing power than the decoder and Quick Sync is useful only during the MVC decoding.

I don't know oneVPL at all, and honestly, I'm not sure I will modify BD3D2MK3D (especially because the MVC decoder is not my work) for such a little gain.

Enet47
31st May 2025, 19:01
It's not my feeling. I have an AND CPU, but I did some tests with Intel processors (supporting Quick Sync) and without the hardware acceleration, the encoding was only 5 or 6% slower. The encoder requires much more processing power than the decoder and Quick Sync is useful only during the MVC decoding.

I don't know oneVPL at all, and honestly, I'm not sure I will modify BD3D2MK3D (especially because the MVC decoder is not my work) for such a little gain.
No problem. The issue might be the full SBS resolution slowing things down. Thanks for checking.

Enet47
13th June 2025, 00:40
OK, I did a quick test with the different aspect ratio settings of BD3D2MK3D. Everything seems correct.

First test, with the Full-SBS Aspect Ratio options set to 32:9 and SAR 1:1 (first option for the two settings).

Using the 32:9 AR with SAR 1:1 works perfectly for full-SBS. I've never looked at this setting before because I always left it on default. So I didn't know what you were talking about until today.

r0lZ
13th June 2025, 09:08
Thanks for the confirmation.

Unfortunately, there is no perfect default values, as these settings depend of the player.

Enet47
13th June 2025, 14:44
Thanks for the confirmation.

Unfortunately, there is no perfect default values, as these settings depend of the player.
Your recommendations for full-SBS works well for media players on Windows PC.

Ksanto
29th June 2025, 11:13
Welcome to the Doom9 forum and thank you for your report, Ksanto.

You are the first person to report that problem. I did Mad Max myself without problem.

Can you disable the hardware acceleration (menu Settings/MVC Decoder/Hardware acceleration)? That's often the cause of similar issues. If that's sufficient, you may need to update your Intel drivers, or continue to decode without hardware acceleration.

If that doesn't work, please let me know and we will try other workarounds.
Thank you r0lZ,

that did the trick. I took me some time before I had time to try it, but that's Life happening for you.

I have read about the problems with (lacking) Quick Sync beforehand and my mobile chip is indeed one with it. But as I understood it till now, I thought it was a Problem of not supported hardware whit a configuration trying to use it and not the other way around. I'm on the newest driver version available, so if I wanted to use it, the only viable way probably seams to make a firmware downgrade. Anyway it didn't felt the impact, it even felt marginally faster and I'm happy to have a Chip that still supports SGX (Software Guard Extensions).


Regards
Ksanto

r0lZ
29th June 2025, 12:14
Thanks for the confirmation.
I thought it was a Problem of not supported hardware whit a configuration trying to use it and not the other way around.
No, the default "auto" mode checks if you have a suitable CPU and if it's not the case, it uses the DLL provided with BD3D2MK3D. Of course, if you force the hardware acceleration and you don't have a CPU supporting it, you have the guarantee that the decoding will fail. But in HW enabled mode, the decoding may fait too, as you know now.

Since indeed, the speed gain with hardware acceleration enabled is not major, perhaps I should set the default to software only? I'll think about it...