From ArchWiki
Revision as of 08:51, 18 April 2012 by Zeb (talk | contribs) (Revoked Host key/certificate)
Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.

Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어

External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی



Firstly install libbluray from the official repositories and libaacs-gitAUR from the AUR.

Fast & Simple

Put (no pregenerated keys, contains a real hcert) in ~/.config/aacs/. This method will only work if your drive has not revoked the host key/certificate (usually when inserting a newer disc) that is in the KEYDB.cfg file.

cd ~/.config/aacs/ && wget

Next, mount the bluray to a directory. eg:

# mount /dev/sr0 /media/blurays

When you play the disc (using mplayer or vlc), libaacs will store the VUK in ~/.cache/aacs/vuk. The filename is the disc ID and its content is the VUK itself. VLC will reuse this VUK even if it does not find a valid KEYDB.cfg file, so it could be a good idea to backup this directory for the future. Mplayer always depends on a valid KEYDB.cfg file though.

If Fast & Simple does not work

If bluray playback with the hcert mentioned above does not work, install aacskeysAUR and get a list of VUKs from or (newer) and unzip it into ~/.config/aacs/KEYDB.cfg. Then run

sed -i 's/\([[:xdigit:]]\)\{5,\}/0x&/g' ~/.config/aacs/KEYDB.cfg"

Next, mount the bluray to a directory. eg:

# mount /dev/sr0 /media/blurays

Now the bluray has to be added to the key database so that libaacs can decrypt it. To do this, cd into /usr/share/aacskeys and run:

aacskeys </bluray/mount/dir>


cd /usr/share/aacskeys && aacskeys /media/blurays

Edit ~/.config/aacs/KEYDB.cfg and add the information outputted by aacskeys using this syntax:

0x<unit key file hash> = Film Title    | V | 0x<volume unique key>
If aacskeys is not able to generate the key

Try to generate the VolumeID with DumpVID using wine. The VolumeID can now be used to generate the bluray key with aacskeys with the VolumeID option

Usage: aacskeys [options] <mountpath> [volume id / binding nonce]


To play blurays in mplayer the basic playback command is:

mplayer br:///</bluray/mount/dir>


mplayer br://<title number> -bluray-device </bluray/mount/dir>

Mplayer depends on a valid version of KEYDB.cfg, it does not use the stored VUK in .cache/aacs/vuk.


Stuttering Video

It is likely that you will need to enable hardware acceleration and multi core CPU support for the bluray to play smoothly.

For nvidia cards, enable hardware acceleration by installing libvdpau and using the option '-vo vdpau' with mplayer. eg:

mplayer -vo vdpau br:///</bluray/mount/dir>

For multi core CPU support use the options '-lavdopts threads=N', where 'N' is the number of cores. eg:

mplayer -lavdopts threads=2 br:///</bluray/mount/dir>
Incorrect Audio Language

You can scroll through the playback languages using the '#' key.

Out of Sync Audio

From your first mplayer output, you must find the codec used for the bluray. It will be at the end of the line "Selected video codec".

For H.264 discs use the option '-vc ffh264vdpau'. eg:

mplayer -vc ffh264vdpau br:///</bluray/mount/dir>

For VC-1 discs use '-vc ffvc1vdpau'. eg:

mplayer -vc ffvc1vdpau br:///</bluray/mount/dir>

For MPEG discs use '-vc ffmpeg12vdpau'. eg:

mplayer -vc ffmpeg12vdpau br:///</bluray/mount/dir>
Revoked Host key/certificate

Unfortunately, what may happen when inserting a newer BluRay disc is the revocation of host key/certificates (which are keys of licensed software players) by your drive. When this happens, aacskeysAUR will return this message:

 The given Host Certficate / Private Key has been revoked by your drive.

This is part of the AACS protection scheme: editors are able to revoke old software player host keys that have leaked on the Internet and distribute the lists on newer commercial disc releases. This is irreversible and does cannot be fixed even after reflashing the drive. The only two ways to correct this would be:

  • to update the host key/certificate part in the KEYDB.cfg file to ones that have not been revoked (yet)
  • to add in KEYDB.cfg the VUK of each specific disc instead, as explained above. VUKs cannot be revoked by the industry.

When a disc (using mplayer or vlc) is succesfully decrypted, libaacs will store the VUK in ~/.cache/aacs/vuk. If the host key/certificate in KEYDB.cfg is subsequently revoked, VLC will still be able to use the stored VUK, so it could be a good idea to backup the ~/.cache/aacs directory for the future.


Since version 2.0.0, vlc has had experimental bluray playback support. Bluray menus are not yet working. For discs not protected by BD+ the above Fast & Simple method should work (unless your drive has revoked the host key/certificate, then only the other method will work).

Start playback with:

vlc bluray://</bluray/mount/dir>

For BD+ discs, no decoder library exists/has been released yet.

Other Useful Software

For DVD, the libdvdcss package supplies the needed decryption libs. Below are some options for BluRay/HD-DVD decryption. Users can employ to backup a commercial BluRay movie under Fair Use guidelines:

  • anydvdhd - Commercial software requiring users to run it on an Microsoft OS in a VM.