View Single Post
Old 23rd October 2014, 11:28   #123  |  Link
r0lZ
PgcEdit daemon
 
r0lZ's Avatar
 
Join Date: Jul 2003
Posts: 7,469
BD3D2MK3D v0.52

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'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

Quote:
# 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.
__________________
r0lZ
PgcEdit homepage (hosted by VideoHelp)
BD3D2MK3D A tool to convert 3D blu-rays to SBS, T&B or FS MKV

Last edited by r0lZ; 10th November 2014 at 11:14.
r0lZ is offline