Skip to content
Steve Dibb edited this page Nov 8, 2024 · 55 revisions

Table of Contents

dvd_info

The dvd_info project contains a collection of programs to access information about DVDs, extract content, and manage drives.

Programs include:

  • dvd_info - display information about a DVD in human-readable, JSON, or MKV chapter formats.
  • dvd_copy - copy tracks and chapters from a DVD to a file or stdout
  • dvd_drive_status - kernel-level access to a DVD drive to check its status (Linux only)
  • dvd_backup - back up a DVD to the filesystem
  • dvd_player - a small DVD player using libmpv as backend
  • dvd_rip - a small DVD ripper using libmpv as backend
  • dvd_debug - display extensive information about a DVD

Building

The two libraries that need to be installed for dvd_info to work is libdvdread and libdvdcss.

You can use standard configure, make, make install scripts to build and install the program.

./configure
make
sudo make install

If you want to build dvd_player and dvd_trip you will need libmpv (part of mpv) installed on your system. Then, pass the build option to configure.

./configure --with-libmpv
make
sudo make install

Device Name

The DVD source can be an optical disc in a drive, a device name, an image of the disc (ISO), or a directory. With no argument, it will use the operating system's default DVD device.

dvd_info
dvd_info /dev/sr0
dvd_info dvd_video.iso
dvd_info ~/Videos/DVD/

Installation

dvd_info has been tested on Linux and FreeBSD. It is also written to work on Cygwin, but I have never had much luck getting libdvdcss installed. It works fine on unencrypted DVDs. It also builds with both gcc and clang just fine.

Gentoo

You will need to install libdvdread and libdvdcss. If you want dvd_player and dvd_rip, you will need to install mpv with libmpv and dvd USE flags. You will also have to build ffmpeg with opus and encode, otherwise dvd_rip will crash.

Standard install should work now:

./configure --with-libmpv && make && sudo make install

You will need to add your user to the cdrom system group to access the DVD drive:

sudo gpasswd -a steve cdrom

Ubuntu

If you are installing dvd_info from source, these are the packages you'll need installed:

sudo apt install build-essential libdvd-pkg libmpv-dev libtool-bin

If you want to install dvd_player and dvd_rip, you will need libmpv-dev and libvpx9 as well:

sudo apt install libmpv-dev libvpx9

To install libdvdcss support, you will have to configure it, since Ubuntu doesn't do so automatically:

sudo dpkg-configure libdvd-pkg

Standard install should work now:

./configure --with-libmpv
make
sudo make install

I don't use Ubuntu, so I'm not 100% sure how to install FDK AAC, x264, or x265. Therefore, you'll have to use VP8 or VP9 video codecs and Opus audio codec in either MKV or WebM container.

For example:

dvd_rip -v vp8 -a opus -o video.mkv

Fedora

I don't use Fedora myself, but I have tinkered with getting it set up to build.

Here's what I got so far to build dvd_info:

sudo dnf group install "C Development Tools and Libraries" "Development Tools"
sudo dnf install libdvdread libdvdread-devel

To build dvd_player and dvd_rip you'll need to run ./configure --with-libmpv after installing these:

sudo dnf install mpv-devel libvpx libopusenc

For libdvdcss, you need to install another repo from rpmfusion: https://rpmfusion.org/Configuration and then install libdvdcss

sudo dnf install rpmfusion-free-release-tainted
sudo dnf install libdvdcss

To get x264 and x265 encoding support for dvd_rip, you need to swap out default ffmpeg with the one from RPMFusion, and install the codecs:

sudo dnf swap ffmpeg-free ffmpeg --allowerasing
sudo dnf install libx264 libx265

Standard install should work now:

./configure --with-libmpv
make
sudo make install

Arch Linux

Install build packages and multimedia dependencies:

sudo pacman -S gcc pkgconf make autoconf automake libdvdread libdvdcss mpv

The autoconf scripts from git need to be updated for your OS, and then you can run configure and make like normal:

autoreconf -fi ./configure --with-libmpv make sudo make install

You will need to add your user to the optical group to access the DVD drive:

sudo gpasswd -a steve optical

FreeBSD

I don't run FreeBSD myself, but the code is ported to use it, and it runs and is tested on 14.1-RELEASE.

Here's how I set it up:

pkg install gcc libdvdread pkgconf mpv
cd /usr/ports/multimedia/libdvdcss && make

Your user must be in the 'operator' group. You can edit '/etc/group' and add your user there:

operator:*:5:root,steve

Default DVD device is /dev/cd0d, and dvd_info will automatically use that one, so you don't have to specify it.

Help

If you run into problems, feel free to contact me or open a bug here on GitHub.

Clone this wiki locally