dvd_copy ships with the dvd_info package. It lets you copy a track with specific chapters from a disc to filesystem or stdout. See –help for options:

dvd_copy - copy a single DVD track

Usage: dvd_copy [path] [options]

  -t, --track <number>     Copy selected track (default: longest)
  -c, --chapter <#>[-#]    Copy chapter number or range (default: all)
  -o, --output <filename>  Save to filename (default: dvd_track_##.mpg)
      --output -           Write to stdout

DVD path can be a device name, a single file, or directory (default: /dev/sr0)

Note that saving to a vob or mpg extension doesn't change the content, I'm only adding those examples as a visual indicator that that's what the formats are.

It doesn't copy VobSub subtitle tracks right now, that'd be additional functionality since they're not in the transport stream. The closed captioning subtitles are in there because it's part of the MPEG2 transport stream. You can use ccextractor to get them out.


Here's an example of copying a DVD and encoding with ffmpeg:

dvd_copy '/dev/sr0' -t '1' -o '-' 2> /dev/null | ffmpeg -i '-' -map '0:v' -map 'i:0x80' -vcodec 'libx264' -acodec 'copy' -y 'dvd_rip.mkv'