baker99 wrote: ↑Thu Mar 19, 2020 9:12 pm
I have posted it on the forum for you
I really appreciate it. Thank you.
shawnc22 wrote: ↑Thu Mar 19, 2020 10:35 pm
So one last thing with that problematic movie. I stripped out the BL layer from the mkv that I made out of the original disk, and it surprisingly mixed successfully (equal AUDs) with the EL layer I had extracted prior from the decrypted M2TS. But once muxed back into the TS container with the Atmos audio, there was definitely a hiccup in the video at the 0:43:35 mark and the audio became desynced thereafter. Odd that there was no hiccup in playback of the mkv file though at the same point, so the EL is seemingly the problematic source even though the original BL was the one with the missing AUD.
It's a cursed movie. It is the only explanation.
shawnc22 wrote: ↑Thu Mar 19, 2020 10:35 pm
I just commented out that entire conditional block with the "Duallayers" variable and simply forced the DV profile to 4 (bitWriter.putBits(7,4))
...
Triggers DV on the shield and looks pretty much the same as the profile 8 video. Again, I know what I did was very hacky as I was just curious if changing the DV profile would do anything
. Perhaps after the devs take a look at it and implement a real change, there will be some noticeable differences.
Yes, it was exactly what I meant.
Changing the profile does not affect the visual quality (
) but I think it is important to correctly signal the Dolby Vision track to the hardware decoder.
In the case of an MPEG-2 TS it is important that a Registration Descriptor with the value 0x0504444F5649 is created (
you can search for these 6 bytes in your ts files with any hex editor like
HxD) and that the DOVI_video_stream_descriptor (the part of the program you edited) is constructed with a precise semantics.
In the official document it says that "The el_present_flag set according to the profile. Note that certain profiles defined in Signaling Dolby Vision Profiles and Levels do not include an EL."
Profile 8 does not have the EL layer, 4 does.
As for the DVCompatibility value, it was used to choose between profile 8 and 5 (the part of the program you excluded).
In the case of a profile 4, according to the guidelines, cross-compatibility should be set to SDR (DVCompatibility = 2). My files are reported as compatible with HDR10: tsMuxeR correctly manages the VUIs (0,9,16,9,2) while my file is slightly out of standard (as it is derived from a UHD-BD). But the behavior of the decoder is not dependent on these Dolby Vision defined crosscompatibility IDs, so we're safe!
Deihnyx wrote: ↑Fri Mar 20, 2020 7:44 am
I used the method described in the past threads.
- ffmpeg to decode the BL + EL layer
Code: Select all
ffmpeg -i bluray:H:\ -map 0:0 -c copy D:\output\BL.hevc -map 0:1 -c copy D:\output\EL.hevc
- yusesope's script to merge the layers (all counters to 100%)
Code: Select all
python src\bl_el_rpu_builder.py -bl D:\output\BL.hevc -el D:\output\EL.hevc -of D:\output\Full.hevc
- tsmuxer to remux the new hevc + truehd atmos to TS
Everything seems OK to me.
To try to understand where the problem lies, I recommend you:
Download
version_0.0.3_revision_1 of my tool and start it with the command:
Code: Select all
python bl_el_rpu_builder_v0.0.3_rev_1.py -bl D:\output\BL.hevc -el D:\output\EL.hevc -of D:\output\New_Full.hevc
It is important that all the counters reach 100%, that the total number of BL AUDs is equal to those of EL Layer and that the program ends with the invitation to "press a button to exit".
If everything was ok, I recommend, before using tsMuxeR, to test only the video with mp4muxer (
HERE) by trying both profile 4 and profile 7 (it takes some time).
Code: Select all
mp4muxer -i D:\output\New_Full.hevc --dv-profile 4 -o D:\output\New_Full_dvhe04.mp4
Code: Select all
mp4muxer -i D:\output\New_Full.hevc --dv-profile 7 -o D:\output\New_Full_dvhe07.mp4
If the video is displayed correctly on your devices then add the audio with tsMuxeR (as you did previously).
If that doesn't work, try creating a BL + RPU file by adding the "-mode 2" switch to my script.
Code: Select all
python bl_el_rpu_builder_v0.0.3_rev_1.py -mode 2 -bl D:\output\BL.hevc -el D:\output\EL.hevc -of D:\output\BL_RPU.hevc