Installing MakeMKV from source files on an Ubuntu Linux system

After trying unsuccessfully to get the Snap package of MakeMKV working on an Ubuntu Linux system (see Installing the MakeMKV Snap Package on a Ubuntu Linux system), I uninstalled the Snap version and installed the software from the source code with the steps below.
  1. Starting with version 1.8.6 of MakeMKV, the application links directly to libavcodec, which is provided by FFmpeg. Also, starting from version 1.12.1, DTS-HD decoding is handled by ffmpeg as well If you don't have FFmpeg installed, you can install it with sudo apt-get install ffmpeg. You can determine if it is already installed with which ffmpeg or you can use the dpkg -s ffmpeg command.

    alice@Wonderland:~$ which ffmpeg
    /usr/bin/ffmpeg
    alice@Wonderland:~$ 
    

    You will need at least version 2.0 of FFMpeg if you need a FLAC encoder that handles 24-bit audio. If FFmpeg is installed, you can determine the version of the program with ffmpeg --version command.

  2. Download the two gzip files, makemkv-bin and makemkv-oss from the MakeMKV developer's website. You can download them in a browser by going to Download MakeMKV beta on the developer's website and clicking on the link on that page to a forum page for the Linux version. That is currently MakeMKV 1.18.3 for Linux is available. Then either download the files by the links on that page or you can use wget in a Terminal window, of course including the current version number in the commands. E.g.:

    wget https://www.makemkv.com/download/makemkv-bin-1.18.3.tar.gz
    wget https://www.makemkv.com/download/makemkv-oss-1.18.3.tar.gz

  3. Make sure that you have all required tools and libraries installed, including the GNU compiler, and linker and header and library files for following libraries: glibc, openssl-0.9.8, zlib, expat, libavcodec and qt5. You can use the command below to install all of those packages:

    sudo apt-get install build-essential pkg-config libc6-dev libssl-dev libexpat1-dev libavcodec-dev libgl1-mesa-dev qtbase5-dev zlib1g-dev

    If you wish, you can check on whether some of them are already installed with the command dpkg --list | grep -E 'build-essential|pkg-config|libc6-dev|libssl-dev|libexpat1-dev|libavcodec-dev|libgl1-mesa-dev |qtbase5-dev|zlib1g-dev'

    alice@Wonderland:~$ dpkg --list | grep -E 'build-essential|pkg-config|libc6-dev|libssl-dev|libexpat1-dev|libavcodec-dev|libgl1-mesa-dev |qtbase5-dev|zlib1g-dev'
    ii  build-essential                               12.12ubuntu1                               amd64        Informational list of build-essential packages
    ii  libc6-dev:amd64                               2.42-0ubuntu3.1                            amd64        GNU C Library: Development Libraries and Header Files
    ii  libexpat1-dev:amd64                           2.7.1-2ubuntu0.2                           amd64        XML parsing C library - development kit
    ii  pkg-config:amd64                              1.8.1-4build1                              amd64        manage compile and link flags for libraries (transitional package)
    ii  zlib1g-dev:amd64                              1:1.3.dfsg+really1.3.1-1ubuntu2            amd64        compression library - development
    alice@Wonderland:~$
    

    If you have some of the packages already installed, you can remove them from the apt-get install command, but you can use the suggested command without any concern about that as you will be notified if a package is already installed and at the latest version. E.g.:

    alice@Wonderland:~$ sudo apt-get install build-essential pkg-config libc6-dev libssl-dev libexpat1-dev libavcodec-dev libgl1-mesa-dev qtbase5-dev zlib1g-dev
    [sudo: authenticate] Password: 
    Reading package lists... Done
    Building dependency tree... Done
    Reading state information... Done
    build-essential is already the newest version (12.12ubuntu1).
    build-essential set to manually installed.
    pkg-config is already the newest version (1.8.1-4build1).
    pkg-config set to manually installed.
    libc6-dev is already the newest version (2.42-0ubuntu3.1).
    libc6-dev set to manually installed.
    libexpat1-dev is already the newest version (2.7.1-2ubuntu0.2).
    libexpat1-dev set to manually installed.
    zlib1g-dev is already the newest version (1:1.3.dfsg+really1.3.1-1ubuntu2).
    zlib1g-dev set to manually installed.
    Solving dependencies... Done
    
  4. Extract the files within the two .tar.gz files with the tar command, which you can do by executing the two commands below from the directory where you downloaded the files.

    tar -xzf makemkv-oss-1.18.3.tar.gz
    tar -xzf makemkv-bin-1.18.3.tar.gz

  5. Make the working directory the makemkv-oss directory beneath the directory where you extraced the files, e.g. cd makemkv-oss-1.18.3. Then issue the following three commands:

    ./configure
    make
    sudo make install

  6. Then do the same thing for the makemkv directory, e.g. cd ../makemkv-bin-1.18.3. Then issue the two commands below:

    make
    sudo make install

    When you issue the sudo make install command you will be presented with an End User License Agreement (EULA). You can use the arrow keys on your keyboard to scroll through the agreement when it appears on screen. You can press q to exit from viewing the EULA. Then you will be prompted to type "yes" to accept the EULA. When the installation has completed, the executable makemkv command should be installed in the /usr/bin/makemkv, which you can confirm with the which command.

    alice@Wonderland:~/Downloads/makemkv-bin-1.18.3$ sudo make install
    rm -f /usr/bin/makemkvcon
    rm -f /usr/bin/mmdtsdec
    rm -f /usr/share/MakeMKV/*
    install -d /usr/share/MakeMKV
    install -d /usr/bin
    install -t /usr/bin bin/amd64/makemkvcon
    install -m 644 -t /usr/share/MakeMKV src/share/appdata.tar
    install -m 644 -t /usr/share/MakeMKV src/share/blues.jar
    install -m 644 -t /usr/share/MakeMKV src/share/blues.policy
    cd /usr/bin && ln -s -f makemkvcon sdftool
    alice@Wonderland:~/Downloads/makemkv-bin-1.18.3$ which makemkv
    /usr/bin/makemkv
    alice@Wonderland:~/Downloads/makemkv-bin-1.18.3$ 
    
  7. Verify that the account for the user who will be running the program is in the cdrom group, which you can do by the grep cdrom /etc/group command. If the user's account is not listed there, you can add the account with sudo adduser username cdrom where username is the relevant user name.

You then should be able to start the program by issuing the command makemkv in a Terminal window.

MakeMKV Beta

You can then extract video files from a DVD by clicking on File, then selecting Open disc, and then clicking on the DVD title that should appear to the right of Open disc.

MakeMKV Open Disc

When the program has processed the disc, you should see details on the "chapters" on the disc.

MakeMKV chapters on disc

You can click on one of the icons of a green arrow pointing to a disc drive to "Save selected title".

MakeMKV save selected titles

You will be asked whether you wish to create a directory beneath the Videos directory to hold the output files. Click on Yes. When the process is completed, you will see a window indicating the number of titles saved, which will correspond to the number of MKV files saved in the output directory.

MakeMKV copy complete

You can then click on File and Eject disc to eject the disc from the optical drive.

References:

  1. MakeMKV 1.18.3 for Linux is available
    By: mike admin
    Date: April 9, 2009
    MakeMKV Forum

Related articles:

  1. Using MakeMKV for ripping DVDs and for other A/V tasks
    Last modified: Sunday May 26, 2024
  2. Installing the MakeMKV Snap Package on a Ubuntu Linux system
    Date: March 29, 2026