This is an old revision of the document!
dvd_info
- Documentation on wiki, also see man pages
My own set of C programs that are small utilities for reading DVD info, and managing DVD drives.
Included:
dvd_info- a successor in spirit to lsdvd, can output information about a DVD in human-readable or JSON outputdvd_drive_status- poll the DVD drive to see the status of a drive: open, polling, closed with no disc, closed with discdvd_eject- a small eject utility that does its best to make sure a drive is properly closed and ready to go before being able to access it (very useful for shell scripts that access DVD drives)dvd_copy- copies a title straight to harddrive or stdoutdvd_player- a DVD player using libmpvdvd_trip- a DVD ripper using libmpvdvd_debug- a program to display an excessive amount of information about a DVD
The code is open-source, licensed under GNU GPL v2.
Source code is available at https://github.com/beandog/dvd_info.
Build requirements: libdvdread, libdvdcss, libmpv (optional, needed for dvd_player and dvd_trip)
Installation
Then you can do standard ./configure; make; make install
dvd_info
See –help for all the fancy stuff it can do. A man page (man dvd_info) is also included.
dvd_info - display information about a DVD
Usage: dvd_info [path] [options]
Options:
-t, --track <number> Limit to selected track (default: all tracks)
-j, --json Display output in JSON format
Detailed information:
-v, --video Display video streams
-a, --audio Display audio streams
-s, --subtitles Display VobSub subtitles
-c, --chapters Display chapters
-d, --cells Display cells
-x, --all Display all
Narrow results:
-l, --longest Track with the longest length
-A, --has-audio Track has audio streams
-S, --has-subtitles Track has VobSub subtitles
-E, --seconds <secs> Track has minimum number of seconds
-M, --minutes <mins> Track has minimum number of minutes
-T, --vts <number> Track is in video title set number
-L, --valid Track is marked as valid
Other:
-i, --id Display DVD ID only
-u, --volume Display DVD UDF volume name only (for ISO or disc)
-g, --xchap Display title's chapter format for mkvmerge
-h, --help Display these help options
--version Display version
DVD path can be a device name, a single file, or a directory (default: /dev/sr0)
Human-friendly output
Here's what polling a Batman: The Animated Series DVD looks like:
$ dvd_info BATMAN_THE_ANIMATED_SERIES.iso Disc Title: BATMAN_ANIMATED_SERIES_DISC1 Title: 01, Length: 02:36:21.100 Chapters: 07, Cells: 07, Audio streams: 04, Subpictures: 03 Title: 02, Length: 00:00:12.000 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 Title: 03, Length: 00:00:32.033 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 Title: 04, Length: 00:01:06.800 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 Title: 05, Length: 00:00:29.967 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 Title: 06, Length: 00:22:20.100 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 Title: 07, Length: 00:22:20.834 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 Title: 08, Length: 00:22:24.433 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 Title: 09, Length: 00:22:17.000 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 Title: 10, Length: 00:22:18.734 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 Title: 11, Length: 00:22:24.000 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 Title: 12, Length: 00:22:16.000 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 Title: 13, Length: 00:05:02.000 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 Title: 14, Length: 00:22:20.100 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03 Longest track: 01
Specifing a track:
$ dvd_info -t BATMAN_THE_ANIMATED_SERIES.iso Disc Title: BATMAN_ANIMATED_SERIES_DISC1 Title: 06, Length: 00:22:20.100 Chapters: 01, Cells: 01, Audio streams: 04, Subpictures: 03
JSON output
The JSON output functionality will print *all* the information that dvd_info polls about the DVD. This is far more than the human-friendly output.