Log in

View Full Version : Blu-ray playback with libaacs & libbdplus


Pages : 1 2 3 [4]

Balling
9th April 2024, 22:53
"2020-07-26_libaacs_libbdplus.7z

libaacs 0.11.0
libbdplus 0.1.2 + patches"


Can someone compile latest for windows https://code.videolan.org/videolan/libaacs/-/commit/37b8a4807aedf7ff86751d2c4d9a68efdc665d2f

hnsteyding
11th May 2024, 12:42
I've compile current x86/x64 windows versions of libaacs and libbdplus from videolan repositories:

https://github.com/hnsteyding/files

coricopat
12th May 2024, 06:00
cached BD+ tables

Not that I miss anything in particular, but just wondered whether there's still someone collecting the BD+ tables for newly released movies with BD+ since the latest update from July 2023? :-)

Grimsdyke
12th May 2024, 09:34
I've compile current x86/x64 windows versions of libaacs and libbdplus from videolan repositories

Those files do not work with MPC-BE or am I missing something ?

mick0
12th May 2024, 11:35
Not that I miss anything in particular, but just wondered whether there's still someone collecting the BD+ tables for newly released movies with BD+ since the latest update from July 2023? :-)

AFAIK there haven't been any new titles released with BD+ since 2017.

hnsteyding
13th May 2024, 15:37
@Grimsdyke:

MPC-BE did not recognize/search for these files (i checked this with ProcessMonitor):
https://forum.makemkv.com/forum/viewtopic.php?t=19644

My compiled libraries work with MPLayer

Treaties Of Warp
14th June 2024, 06:44
Edit KEDYB.cfg and add/replace the device keys (DK), processing keys (PK) and host certificates (HC) at the top with the ones from this post (https://forum.doom9.org/showthread.php?p=1990091#post1990091) (valid up to MKBv81). Older keys can be found in this thread (https://forum.doom9.org/showthread.php?p=1883655)

Is this step still necessary even with the latest keydb.cfg file from fvonline-db.bplaced.net (http://fvonline-db.bplaced.net/)?

ewozniakx86
8th July 2024, 16:48
Is there any way to add menu support for bd+ discs on vlc? It sucks that this does not support menus when using a bd+ disc because some blu rays i like to have because of all of the bonus content and the menus.

boelle
21st July 2024, 09:40
i would like to ask the same, i have the star wars collection and yes of course they are "high profile"

i have aacs figured out a while ago as i wanted to convert Person of Interest in to mp4, but the guide in the first post i could not figure

>>>>>"Put the 32-bit or 64-bit libaacs/libbdplus DLLs (all 4) in the corresponding VLC directory"

what is the corresponding VLC directory? C:\Program Files\VideoLAN\VLC where i put libaacs.dll back when i added aacs ?

>>>>>"Edit KEDYB.cfg and add/replace the device keys (DK), processing keys (PK) and host certificates (HC) at the top with the ones from this post (valid up to MKBv81). Older keys can be found in this thread"

i have a file dated 22/5-2024 so its newer than the date of the post that is linked to.... and it also have a lot more lines that in the post.... do i just skip this step or replace everything in the file with the lines from the post?

http://imgur.com/a/FrmApSx
http://imgur.com/a/FrmApSx

so far i get the "Your Blu-ray Player requires an update in order to play this disc" error...

Grimsdyke
21st July 2024, 16:06
Yes, put the 4 dll's into the directories of the players you use !! Into VLC, into MPC-BE, into MPC-HC or whatever.
I don't think that adding the extra datas to the keydb.cfg is really necessary. Just grab the latest version and you should be good to go.

boelle
23rd July 2024, 07:39
well i put them in C:\Program Files\VideoLAN\VLC as i use VLC

but still get the update error as seen here: http://imgur.com/a/FrmApSx

Grimsdyke
23rd July 2024, 08:04
Try playback of a Blu-Ray with MPC-BE. If this also fails then you may have a "bad" drive that maybe needs a firmware patch.

richy
24th July 2024, 11:14
@boelle...

First up, I've gotten lazy and fall back on Xreveal a lot nowadays because it tends to just work nicely with anything that causes VLC problems. But, since this thread is about "Blu-ray playback with libaacs & libbdplus" we'll stick with that, shall we? ;)

I thought I'd try my copy of The Phantom Menace to see what happened and I got the red screen as well! However, I think my VLC setup has got a bit messed up with me trying various different things so I thought I'd have a bit of clean up to see if I could get it working.

The fact that you're at least getting the red screen error means that you must have got most of the setup correct otherwise you'd not have even got that error message to "work". I wasn't even getting that far and VLC was complaining that "This Blu-ray Disc needs a library for BD+ decoding, and your system does not have it." I had a bit of a poke around and discovered I'd somehow got my vm0 folder inside another vm0 folder... oops! Anyway...

I'd downloaded newer builds of libaacs & libbdplus at some point but not done anything with them so I thought I'd try those instead of the ones from 2020-07-26 that I appear to have been using before. Voila! Both the builds from Roof Tile and hnsteyding seemed to work fine. No more red screen error message.

In the end, I decided to settle with the ones compiled by hnsteyding from May of this year:
https://forum.doom9.org/showthread.php?p=2001748#post2001748

TL;DR - Maaaan, I need to be more concise but, basically, try the files from the post I linked to :)

TTide
28th February 2025, 19:22
I came across a post on code.videolan.org (https://code.videolan.org/-/snippets/1754) about a BD+ - Utilities for generating smaller cached convtabs via in-stream tables.

The first tool (bdplus_diff) and The second utility (mask_regen) will hopefully speed up assisting with open-source BD+ playback.

I'm having trouble compling the program bdplus_diff. Can someone help me?


gcc bdplus_diff.c -o bdplus_diff
bdplus_diff.c: In function ‘read_obfut’:
bdplus_diff.c:199:29: error: passing argument 1 of ‘fprintf’ from incompatible pointer type [-Wincompatible-pointer-types]
199 | fprintf("%02x", p[25 + zz]);
| ^~~~~~
| |
| char *
In file included from bdplus_diff.c:31:
/usr/include/stdio.h:357:38: note: expected ‘FILE * restrict’ but argument is of type ‘char *’
357 | extern int fprintf (FILE *__restrict __stream,
| ~~~~~~~~~~~~~~~~~^~~~~~~~
bdplus_diff.c:199:38: error: passing argument 2 of ‘fprintf’ makes pointer from integer without a cast [-Wint-conversion]
199 | fprintf("%02x", p[25 + zz]);
| ~^~~~~~~~~
| |
| uint8_t {aka unsigned char}
/usr/include/stdio.h:358:44: note: expected ‘const char * restrict’ but argument is of type ‘uint8_t’ {aka ‘unsigned char’}
358 | const char *__restrict __format, ...) __nonnull ((1));
| ~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~

maetel99
3rd March 2025, 08:53
Try changing the "fprintf" statements to just "printf" and it should build. Alternatively, change them to be "fprintf(stderr, ...)".

Sidney
3rd March 2025, 20:37
I'm having trouble getting the menus to work for the complete series of Succession on blu-ray. I can either get the title screen to show up but then be unable to click on or play anything from that menu, or I can play without menus and watch only the first episode on discs that usually have 3. I tried fiddling with a few things, but I ended up reverting my setup to the bare bones having the keyfiles, libaacs, libbdplus, libgcrypt, and libgpg error in the aacs folder along with the vlc directory. I set JAVA_HOME to JRE311 with a batch file, and it seems to work for my other discs. My sneaking suspicion is that the discs are too new (released Aug 2024), but I would love to get this working and proven wrong.

TTide
8th March 2025, 20:25
I fixed the code so it compiles but i don't know how to use it.


# Compile bdplus_diff and mask_regen on linux

gcc -laacs bdplus_diff.c -o bdplus_diff
gcc -laacs mask_regen.c -o mask_regen




Parse & Diff BD+ discs.

Usage: ./bdplus_diff [disc_root] [cached BD+ table] [obfuscated FUT output] [diff output]
OR: ./bdplus_diff [disc_root] [decrypted & patched disc_root] [obfuscated FUT output] [diff output]




mask_regen: Regenerate BD+ xor masks for smaller convtabs

Requires obfut and diff files produced by bdplus_diff

Usage: ./mask_regen [disc_root] [obfuscated FUT input] [diff input] [convtab output]



All i have to go by it that convtabs are stored in ".config/bdplus/convtab" and look like this ->


32 Hex No. and the name of the movie.
00000000000000000000000000000000_MOVIE_NAME.bin

TTide
10th March 2025, 23:09
I ran aacs_info and i found the convtab online.


aacs_info /run/media/gamer/MIKE_AND_DAVE_WEDDING_DATES/
MK: B4D2FA93A1174CED96ABC68F1935DB78



I started with a BD+ Disc example in .config/bdplus/convtab

B4D2FA93A1174CED96ABC68F1935DB78_MIKE_AND_DAVE_WEDDING_DATES.bin



This is what i ran but i don't know if it's the right way.


Usage: ./bdplus_diff [disc_root] [cached BD+ table] [obfuscated FUT output] [diff output]

./bdplus_diff -e /run/media/gamer/MIKE_AND_DAVE_WEDDING_DATES/ -c B4D2FA93A1174CED96ABC68F1935DB78_MIKE_AND_DAVE_WEDDING_DATES.bin -o B4D2FA93A1174CED96ABC68F1935DB78-FUTout -d B4D2FA93A1174CED96ABC68F1935DB78-diffout


Hopefully someone will help the process and tell me where i'm going wrong.

gsfx
15th February 2026, 16:54
How To (Windows):

Put the cached BD+ tables (https://mega.nz/#!Jd1xEQbJ!DRhG9eWLNnrmA5dcwHugnKxmVUpIsT9X-HKuuGjU7n8) (1.5GB) in the %APPDATA%\bdplus\convtab directory

updated tables 2020-07-05 (https://mega.nz/file/ZZdA3QCJ#FaL2ohltwFCtX91UMngB_dUtqht8JZ3-nRgnTAJD8jk) (36MB)
updated tables 2021-01-06 (https://mega.nz/file/pc0VTaYY#Tl1XMSex_Y9iCKmvYEKddr7GQQVQbMDEHJbw0uXumj0) (31MB)
updated tables 2022-06-19 (https://mega.nz/file/gVsRQQ7Y#JOJwO5woXdz2X73rrvHHBTYCdLposz7aiSVkEX4vChM) (12MB)
updated tables 2023-07-28 (https://mega.nz/file/AR8DDaib#GgSUMnNGBlVXdJT0BEkNkGm5f4NfodBaQ8SSgFFM4ZA) (3MB)

Put FindVUK's KEYDB.cfg (http://fvonline-db.bplaced.net/) in the %APPDATA%\aacs directory --> DONE.
Edit KEDYB.cfg and add/replace the device keys (DK), processing keys (PK) and host certificates (HC) at the top with the ones from this post (https://forum.doom9.org/showthread.php?p=1990091#post1990091) (valid up to MKBv81). Older keys can be found in this thread (https://forum.doom9.org/showthread.php?p=1883655)



Hello,

I am using Linux (Debian 13 Trixie) and a Blu Ray Device thats connected via USB to a Lenovo M715Q (AMD Ryzen 5 Pro 2400GE, 8 GB RAM, 256 GB SSD). I made the aacs directory with the KEYDB.cfg and the bdplus directory with the vm0 directory (as described in the Linux section). Necessary libraries were installed via apt-get install.

Are the steps mentioned above for the Windows system necessary for the Linux system as well? I can play Blu Ray discs without menus via VLC but the graphical output which starts OK (Narnia, Voyage of the dawn treader, 20th Century Fox) turns buggy (lots of artifacts) after a few seconds. Its not a general playback problem as the playback of the disc starts. But where do I have to search the problem on my configuration?

Thank you in advance!

Kind regards

Frederik



Edit:
It works now, I adapted the KEYDB.cfg like mentioned in this post:

https://forum.doom9.org/showpost.php?p=1990091&postcount=10

And I downloaded the cached BD+ tables and placed the files in the convtab directory in .cache\bdplus ...