UniqProject / BDInfo

BDInfo from http://www.cinemasquid.com/blu-ray/tools/bdinfo
GNU Lesser General Public License v2.1
233 stars 58 forks source link

Movie work in BDInfo v0.7.5.6 but not in BDInfo v0.7.5.7 beta and newer. (And some fixes) #36

Open Hellboy00000 opened 1 year ago

Hellboy00000 commented 1 year ago

Movie Robin.Hood.Prince.of.Thieves.1991.4k Sample https://www60.zippyshare.com/v/EWW9VF8N/file.html I try to use your tool to create the sample but the movie stays loading like newer version of BDInfo. The problem is only with this movie. In the sample i copy all the files and one stream file.

I try to see what is the problem but all i can find was that when i change the "TSCodecHEVC.cs" for the BDInfo v0.7.5.6 the movie work.


Some fixes (Fixed in v0.7.6.2b) 1)Avg Frame Size in report for 4k and others movie In FormRepot.cs - Commented because the Tag value is never used here for anything else. And when is null Avg Frame Size don't work. if (diag.Tag != null) { chapterFrameCount++; *Move this line outside the if } (Fixed in v0.7.6.2b)** 2)Chart Type Video frame size in report for 4k and others movie In FormChart.cs (public void GenerateFrameSizeChart) - Commented because the Tag value is never used here for anything else. And when is null Chart Type Video frame size don't work. if (diag.Tag == null) continue; string frameType = diag.Tag;

UniqProject commented 1 year ago

Can't load the sample file, getting a 403 Forbidden message image

UniqProject commented 1 year ago

Nevermind, used VPN to download it. Will have a look at it

Hellboy00000 commented 1 year ago

Another fix (Fixed in v0.7.6.2b) 3)Missing kbps word In FormRepot.cs - Files Total Bitrate is missing kbps (in foreach (TSStreamClip clip in playlist.StreamClips)) string clipBitrate = Math.Round( (double)clip.PacketBitRate / 1000).ToString("N0", CultureInfo.InvariantCulture) + " kbps";

UniqProject commented 1 year ago

Movie Robin.Hood.Prince.of.Thieves.1991.4k Sample {...} I try to use your tool to create the sample but the movie stays loading like newer version of BDInfo. The problem is only with this movie. In the sample i copy all the files and one stream file.

I try to see what is the problem but all i can find was that when i change the "TSCodecHEVC.cs" for the BDInfo v0.7.5.6 the movie work.

This disk is using variable PES (packetized elementary stream) packet length instead of fixed length for the main video stream, hence the code was not able to parse the files correctly. I have updated the code to support parsing PES packets with variable length. However, this breaks the bitrate calculation for now, mainly because the variable packets can contain more than 1 frame at a time. I'll give it another head scratch.


Some fixes 1)Avg Frame Size in report for 4k and others movie In FormRepot.cs - Commented because the Tag value is never used here for anything else. And when is null Avg Frame Size don't work. if (diag.Tag != null) { chapterFrameCount++; ***Move this line outside the if } 2)Chart Type Video frame size in report for 4k and others movie In FormChart.cs (public void GenerateFrameSizeChart) - Commented because the Tag value is never used here for anything else. And when is null Chart Type Video frame size don't work. if (diag.Tag == null) continue; string frameType = diag.Tag;

This one doesn't need to be changed, because it is actually working as intended. However, HEVC stream parsing needs to be updated to report frame type ( I / P / B ), like AVC/VC1 and MPEG2 parsers do. That is the reason the avg frame sizes are not showing up for 4K/UHD disks/playlists. Thanks for pointing that out.

UniqProject commented 1 year ago

Video bitrate should be measured correctly with the lastest beta release v0.7.6.1b

Avg frame sizes for HEVC streams are still on TODO list

Hellboy00000 commented 1 year ago

Is working great and the report look a lot better. Thanks. But i notice a few things.

1)Report is missing a space between Main Audio Track and Secondary Audio Track DTS-HD Master 5.1 2005 kbps (48kHz/24-bit)DTS-HD Master 2.0 1050 kbps (48kHz/24-bit)

2)Report FILES: Name Need 2 less "--" to looks better. And maybe some other tiny things here and there in the report.

(Fixed in v0.7.6.2b) 3)Bug - Dolby Vision video is missing "Main 10 @ Level 5.1" number MPEG-H HEVC Video 62,635 kbps 2160p / 23.976 fps / 16:9 / Main 10 @ Level 5.1 @ High / 10 bits / HDR10 / BT.2020 *MPEG-H HEVC Video 76 kbps 1080p / 23.976 fps / 16:9 / Main 10 @ Level 0 @ High / 10 bits / Dolby Vision / BT.2020 (EDIT - only happens with Robin.Hood.Prince.of.Thieves.1991.4k)

4)Bug - Is strange nobody notice this. The Movie Size is wrong, probably because all the files size all wrong. I notice this comparing BDInfo with the DVDFab-BDInfo and DVDFab-BDInfo is correct.

5)This could be a bug depending how you see it. I notice this comparing BDInfo with the DVDFab-BDInfo. Disc Size is different. BDInfo count all that is located in the directory and DVDFab-BDInfo only count the BDMV and CERTIFICATE folders. I prefer the DVDFab-BDInfo because sometimes i have other files in the directory and BDInfo show the incorrect Disc Size.

Disc Size - I do this for me but i don't know if this affect something else.

private long GetDirectorySize(DirectoryInfo directoryInfo) { long size = 0;

        FileInfo[] pathFiles = directoryInfo.GetFiles();
        if (directoryInfo.FullName.Contains("BDMV") || directoryInfo.FullName.Contains("CERTIFICATE"))
        {
            foreach (FileInfo pathFile in pathFiles)
            {
                if (pathFile.Extension.ToUpper() == ".SSIF")
                {
                    continue;
                }
                size += pathFile.Length;
            }
        }

        DirectoryInfo[] pathChildren = directoryInfo.GetDirectories();
        foreach (DirectoryInfo pathChild in pathChildren)
        {
            if (pathChild.FullName.Contains("BDMV") || pathChild.FullName.Contains("CERTIFICATE"))
            {
                size += GetDirectorySize(pathChild);
            }
        }
        return size;
    }

6)Report - AUDIO - 5.1 / 48 kHz / 2005 kbps / 24-bit (DTS Core: 5.1 / 48 kHz / 768 kbps / 24-bit) Can you change the 2 kbps numbers, only have one white space before the numbers.

7)Report - SUBTITLES - Presentation Graphics English 29.42 kbps 1920x1080 / 1596 Captions Please make the sub kbps use "," and 3 decimals like the others kbps (Ej: 29,42X kbps)

Hellboy00000 commented 1 year ago

Some Request. Comparing BDInfo with the DVDFab-BDInfo i notice:

MPEG-H HEVC Video 62,635 kbps 2160p / 23.976 fps / 16:9 / Main 10 @ Level 5.1 @ High / 10 bits / HDR10 / BT.2020 MPEG-H HEVC Video 76 kbps 1080p / 23.976 fps / 16:9 / Main 10 @ Level 0 @ High / 10 bits / Dolby Vision / BT.2020

MPEG-H HEVC Video 62639 kbps 2160p / 23.976 fps / 16:9 / Main 10 @ Level 5.1 @ High / 4:2:0 / 10 bits / 1000nits / HDR10 / BT.2020 MPEG-H HEVC Video 76 kbps (0.12%) 1080p / 23.976 fps / 16:9 / Main 10 @ Level 5.1 @ High / 4:2:0 / 10 bits / 1000nits / Dolby Vision MEL / BT.2020

Missing: -4:2:0 -1000nits -76 kbps (0.12%) -Dolby Vision MEL

Thanks

Hellboy00000 commented 1 year ago

Level 0 @ High Check this again and only happens with Robin.Hood.Prince.of.Thieves.1991.4k

Edit: Tested v0.7.6.2b and fixed Avg Frame Size, Chart Type Video frame size and "Level 5.1" number. Thanks.