DecryptHD software can be used for realtime HD DVD decryption while streaming the decrypted movie to the player.
At the moment, this tool is Linux only for the simple reason that it's my normal desktop and development environment (Debian). So it's kinda obvious the targeted player is mplayer because of this. This is also where the streaming comes into the picture. The ffvc1 decoder not only works for normal playback from harddisk, but also supports streaming.
The current status of the tool is that it works and runs stable. But I've only tested it with the Bourne Supremacy, but I'm hoping that it should with all HD DVDs released to date. Mind the "hoping" though since a 1 disc test is not a 100% guarantee. See this as a testrun. It's written in C++ and if there's demand I'll release the source once the rough edges are gone. Also need to improve the subset-difference stuff first, it's kinda sucky the way it's implemented right now. Also both currently discovered processing keys are in it (let's get this into the open right away). The advantage of this is that there's no fiddling with keys, but the downside is that when keys get revoked/discovered, this will require an update of the app. Maybe I'll make a different solution at a later time, who knows.
If you run into trouble (so many things can go wrong), there's a log created called decrypthd.log in the same directory the tool is in. Please include it in any bug reports.
How to run:
1. unrar e decrypthd.rar (extracts the archive)
2. chmod +x decrypthd (makes it executable)
3. ./decrypthd (run the executable file)
Usage: decrypthd < device > < mountpoint > < filename > -o [options] | < player >
Example: decrypthd /dev/scd0 /mnt/hddvd/ file.evo -o | mplayer -demuxer mpegps -vc -ffvc1 -
First you need to plug in your drive if you haven't done so already. I've been using a Xbox360 HD DVD drive. Unmodified, just as you buy it in a store. Once plugged in you'll need to find it's device. Usually this is /dev/sr0 (it's alias is /dev/scd0). This is the < device > value and you need this for the drive authentication. Next mount the drive (the < mountpoint >). In short now you're good to go.
In reality however, you need to know the filename of the evo you want to watch. On the disc I've got here this is FEATURE_1.EVO (case sensitive). So look this up in the HVDVD_TS directory.
It uses OpenSSL for the signature calculations, so make sure you've got that.
Now fire the entire thing up (I'm assuming you've got the latest mplayer). You need to specify the demuxer and decoder:
decrypthd /dev/scd0 /mnt/hddvd/ FEATURE_1.EVO -o | mplayer -demuxer mpegps -vc ffvc1 -
What's New in This Release:
· Fixed bug where Title Key 0 resulted in an invalid key exception
· Split into libaacs and seperate tools
· Fixed memoryleaks
· Processingkeys are internal again
· Added CMake build system
Version 0.5 is online!
It now uses CMake to build and install. This is a bit different compared to the conventional build system. So here's a quick howto:
Assuming you're doing this from the console:
- Unpack package and go into dir
- ccmake . (including the dot)
- make install
Source should be build and those binaries are installed in /usr/local/bin. The lib itself can be found in /usr/local/lib. It does not install anything else like includes since I don't consider those final yet. So if you want to make your own app, you'll have to place the includes somewhere yourself. Feedback is of course highly appreciated. There's also a doxygen file for building
the documentation. This does not mean I've documented everything yet/
Next will be proper documenting, some further cleanups (there are still things in the code I consider a bit ugly), a C interface so it's more portale and an attempt at adding blueray support.