VLC and Blu-ray on Mac : the results (and Java menus)

I have been testing the reading of Blu-ray on Mac via VLC since 2 years now. In February 2012, I could read a test Blu-ray, unprotected, with a beta version of VLC 2.0. Today, in March 2014, a significant part of my Blu-ray works, some with the menus, and the work done is really important. I take this opportunity to make a small report.
En français.

A little technique, first. To read a Blu-ray on a Mac, you will need a Blu-ray reader, it is about $70 for a external one.

For the reading itself, one needs three libraries : libbluray (currently version 0.5), libaacs (currently version 0.7) and libbdplus (currently in version 0.1).

Libbluray is directly integrated in VLC, and manages the reading of the Blu-ray, without protections. Currently, VLC includes libbluray 0.4 without BD-J support (a Java implementation used for menus and bonuses). The next version of VLC, 2.2, should integrate libbluray 0.5 with the BD-J support. For the test, I manually compiled VLC 2.2 for my machine with libbluray 0.5 and BD-J, but it’s still pretty much complicated, so I suggest you wait for a final version.

Libaacs is available on the website of Videolan, must be compiled and is to be used to decode Blu-ray protected with AACS. In the world of Blu-ray, all commercial films are protected. Libaacs requires keys to operate, which are obviously not distributed by Videolan for copyright reasons.

Libbdplus is available on Videolan, must be compiled and is to be used to decode the (rare) Blu-ray protected with BD+. Libbdplus requires the equivalent of a key to work, which is not distributed by Videolan (for obvious reasons again).

The keys

To simplify, there are two ways to decode a Blu-ray : either with its unique key (VUK) or by using a “generic” key. Finding VUK keys is fairly easy, but the ideal solution is obviously the generic key, even if it has limitations. Blu-ray evolve indeed, and the decryption key as well : the first films were protected with a version 1, the current Blu-ray are (at least) version 44. The keys that can be found on the Internet with a few clicks enable the decoding of Blu-ray whose key is up to version 28, according to my tests. Beyond version 28, decoding does not work.

BD+ decoding is theoretically possible on the first three generations of the protection (it is currently in version 17), but I could not decode movies after generation 2.

The menus

The menu support is still experimental. Currently, on about 94 Blu-ray, I got five discs which menus are fully functional, and fifteen discs which menus are used partially. Note that the management of Region is left to the reading software (and not to the physical player as on DVDs) and therefore you must sometimes set VLC manually to select the correct Region.

Un message de zone


Le choix de la zone


An example of a menu that works on VLC :

Technically, VLC should be able to read the vast majority of Blu-ray with an updated key : on 94 movies, I have 18 BD+ movies and some work, the others use only AACS. In practice, I have only one disc that does not work at all : a bonus Blu-ray.