| Both sides previous revisionPrevious revision | |
| dvd_info [2023/12/26 08:50] – beandog | dvd_info [2025/04/21 06:09] (current) – external edit 127.0.0.1 |
|---|
| ====== dvd_info ====== | ====== dvd_info ====== |
| |
| * [[http://github.com/beandog/dvd_info|GitHub dvd_info repo]] | * [[http://github.com/beandog/dvd_info|Homepage]] |
| * [[https://github.com/beandog/dvd_info/releases|Downloads]] | * [[https://github.com/beandog/dvd_info/releases|Downloads]] |
| * [[https://github.com/beandog/dvd_info/wiki|Documentation]] on wiki, also see man pages | * [[https://github.com/beandog/dvd_info/wiki|Documentation]] |
| * Portability: Linux, Cygwin, [[OpenBSD]], [[NetBSD]], FreeBSD | |
| * [[dvd_copy]] | * [[dvd_copy]] |
| * [[dvd_drive_status]] | * [[dvd_drive_status]] |
| * [[dvd_player]] | * [[dvd_player]] |
| * [[dvd_rip]] | * [[dvd_rip]] |
| | * [[dvd_backup]] |
| |
| My own set of C programs that are small utilities for reading DVD info, and managing DVD drives. | My own set of C programs that are small utilities for reading DVD info, and managing DVD drives. |
| |
| Included: | Includes: |
| |
| * ''dvd_info'' - a successor in spirit to [[lsdvd]], can output information about a DVD in human-readable or JSON output | * ''dvd_info'' - a successor in spirit to [[lsdvd]], can output information about a DVD in human-readable or JSON output |
| * ''dvd_drive_status'' - poll the DVD drive to see the status of a drive: open, polling, closed with no disc, closed with disc | * ''dvd_drive_status'' - poll the DVD drive to see the status of a drive: open, polling, closed with no disc, closed with disc |
| * ''dvd_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 stdout | * ''dvd_copy'' - copies a title straight to harddrive or stdout |
| * ''dvd_player'' - a DVD player using [[mpv|libmpv]] | * ''dvd_player'' - a DVD player using [[mpv|libmpv]] |
| * ''dvd_trip'' - a DVD ripper using [[mpv|libmpv]] | * ''dvd_rip'' - a DVD ripper using [[mpv|libmpv]] |
| | * ''dvd_backup'' - back up a DVD completely, similar to [[dvdbackup]] (note the different names) |
| * ''dvd_debug'' - a program to display an excessive amount of information about a DVD | * ''dvd_debug'' - a program to display an excessive amount of information about a DVD |
| |
| Source code is available at [[https://github.com/beandog/dvd_info]]. | Source code is available at [[https://github.com/beandog/dvd_info]]. |
| |
| Build requirements: libdvdread, libdvdcss, libmpv (optional, needed for ''dvd_player'' and ''dvd_trip'') | Build requirements: libdvdread, libdvdcss, libmpv (optional, needed for ''dvd_player'' and ''dvd_rip'') |
| |
| === Installation ==== | === Installation ==== |
| Then you can do standard ''./configure; make; make install'' | Then you can do standard ''./configure; make; make install'' |
| |
| ==== dvd_info ==== | ==== Documentation ==== |
| |
| See ''--help'' for all the fancy stuff it can do. A man page (man dvd_info) is also included. | Run ''--help'' to see what it can do. |
| |
| <code> | There is more documentation available on the [[https://github.com/beandog/dvd_info/wiki|project wiki]]. Also, there are ''man'' pages for each program. |
| dvd_info - display information about a DVD | |
| |
| Usage: dvd_info [path] [options] | ==== Operating Systems ==== |
| |
| Options: | I've written it so it will build and run on [[FreeBSD]], [[OpenBSD]], and [[NetBSD]]. You will just need to install the library dependencies and you'll be good to go. |
| -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) | |
| </code> | |
| | |
| === Human-friendly output === | |
| | |
| Here's what polling a Batman: The Animated Series DVD looks like: | |
| | |
| <code> | |
| $ 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 | |
| </code> | |
| | |
| Specifing a track: | |
| | |
| <code> | |
| $ 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 | |
| </code> | |
| | |
| === 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. | |
| |
| | I don't have a Mac otherwise I'd make sure it works on OS X. I'm sure it's fine though. |