How to Play Blu-Ray on Linux

Blu-ray has been out for a long time now, so it seems crazy that there still isn’t a clear-cut way to play them in Linux. That’s mostly because Blu-ray is loaded with DRM that Hollywood doesn’t want open-source programs to be able to get past. Unfortunately, this means that completely legitimate video players are robbed of the capability in yet another instance of DRM hurting users instead of pirates.

With all of that aside, there is an excellent program that is available for Linux that can read Blu-ray disks. It’s called MakeMKV, and it’s partially open source. That’s a big part of the reason you probably haven’t come across it in your distribution’s repositories. The closed source part handles reading Blu-ray, while the rest of it is open, striking an unusual balance for this particular task. MakeMKV is available for free. Its Linux version is in a constant beta, so it’s not officially supported, but it does work.

MakeMKV isn’t a video player, though. It just reads them. It can, however, convert what it has read into a stream that you can pick up with a video player like Kodi that can play streaming content.

Before you get started building, yes building, MakeMKV, there are some required packages for you to install. You’ll need VLC, too, because you’re going to use that to play your video later on.

Do note that the following instructions are done on Ubuntu.

Open a terminal window and use apt to get the following packages:

sudo apt install build-essential pkg-config libc6-dev libssl-dev libexpat1-dev libavcodec-dev libgl1-mesa-dev libqt4-dev kodi

MakeMKV’s latest releases are posted on this unassuming forum post along with some of the instructions outlined here. It’s important to always have the latest release of MakeMKV to be able to play any Blu-ray that you need. That’s why that post is actually the best place to download it from.

Create a directory where you want to build MakeMKV. You’ll be downloading and unpacking each of the source tarballs into it.

cd Downloads
mkdir makemkv-build
cd makemkv-build

Download both tarball files from the post and place them in your build directory. You can use a GUI archive manager or tar. It doesn’t really matter which.

Change directories into the “oss” directory that you unpacked. It contains all of the open source code for MakeMKV.

cd makemkv-oss-1.10.6

Now, use the provided configuration script and GNU make to build MakeMKV.

./configure
make -j5

Replace the number after -j with the amount of CPU cores on your system plus one.

It will take a few minutes to finish. Afterward, that part of the program will be ready for you to install as root or with sudo.

sudo make install

Move back up and into the “bin” directory to install the closed source part. This one is very simple.

cd ../makemkv-bin-1.10.6
make
sudo make install

It won’t take long. When it’s finished, MakeMKV will be completely installed.

Start Up MakeMKV

Through the install, you’ll have an option to launch MakeMKV through your distribution’s application launcher. Go ahead and do that.

The window that you’ll see is fairly plain, and it doesn’t contain much until you load in a Blu-ray. Before you can do anything, you need to enter the MakeMKV beta key. It’s somewhat of a formality because MakeMKV is always in beta, but you do need to enter a new key every so often.

You can always find the MakeMKV beta key here. Copy it after you find it.

In the MakeMKV window, click on “Help,” then click “Register” in the menu that drops down. A window will open for you to enter the beta key.

Load Blu Ray MakeMKV

Now you can find a Blu-ray to play and load it. MakeMKV will load it quickly, and you’ll see the disk drive image colorize. Click on it to load your disk.

MakeMKV will take a few minutes to read the disk. That’s normal – there’s a lot of data. When it finishes, you’ll see a breakdown of the files stored on the Blu-ray.

MakeMKV Blu Ray File Listing

It can be difficult to figure out which ones are which, but for movies, the largest file is usually the feature. TV shows are a little trickier, but you can look for a series of files that are nearly the same size. They’re usually the episodes.

To start your stream, click the streaming icon at the top of the window. It looks like a disk with a couple of lines radiating from it.

MakeMKV will open up the file and stream it. By default, it will use port 51000 on your computer.

It’s true that you can do this with VLC, too, but due to some weird library issues, Kodi is the much better option. MakeMKV creates a UPnP stream, which Kodi works very well with. Since it’s a local stream on your network, that means you can stream to another device in your home running Kodi.

Kodi Add MakeMKV Stream

Open up Kodi and go to the “Videos” section. Click on “Files,” then click “Add videos…” In the next window you need to click the “Browse” button. In the list to the left, find “UPnP devices.” Select your MakeMKV stream and browse to the file that you want to play. Click “Open” when you’ve found it. Don’t worry if it looks empty.

Kodi Select MakeMKV Source

You should see your stream in the file listing now. Click on it to open it. There will probably be a couple of files there with totally useless names. The right one will probably have a .m2ts file extension. Different Blu-rays may use different conventions, so there might be some trial and error involved. When you find the right file and click it, your stream will open and play your video.

Kodi Playing MakeMKV Stream

Obviously, this solution is a little clunky. Unfortunately, Blu-ray’s DRM means that things probably aren’t going to change any time soon. This method can also be considered breaking that DRM, which is sort of a legal gray area, depending on where you live, so be mindful of that, too. Certainly, no matter where you are, only use these tools for your own personal viewing. Duplication and/or distribution of Blu-ray content is definitely illegal.

With that out of the way, enjoy your Blu-ray content on Linux, stream it to your Raspberry Pi, and get the most out of your media.

Leave a Reply

Yeah! You've decided to leave a comment. That's fantastic! Check out our comment policy here. Let's have a personal and meaningful conversation.