StreamDVD - A DVD Backup Tool
-----------------------------

StreamDVD is a fast tool to backup Video DVDs 'on the fly', there
will be no ripping, demultiplexing, recoding, remultiplexing ....
You can select the wanted title, chapters, video, audio and subpicture streams
and also a resize factor and StreamDVD will write a 'ready to author' vob file
to stdout. 
Since version 0.4 some additional stuff comes with StreamDVD:
- an easy-to-use perl gui
- streamanalyze
- lsdvd (patched version)



Requirements:
  libdvdread >= 0.9.2

Requirements for GUI:
  see README in Gui directory



Install:
  - Just unpack the archive and cd into the created directory.

  - The default installation directory is '/usr/local/bin', to change this you should edit the
    path in the Makefile.

  Different build options:
  - If you simply want to build and install streamdvd just type 'make', then 'make install'.

  - If you want to install streamdvd and the additional tools 'streamanalyze' and 'lsdvd'
    type 'make', then 'make addon', then 'make install'.

  - If you want to install streamdvd with a GUI type 'make gui', then 'make gui_install'.
    This also installs 'streamanalyze' and 'lsdvd' autom.

  Uninstall
  - To remove installed binaries (NOT the perl gui) type 'make uninstall'.



Usage:
  streamdvd -i device -t title [-c chapter|chapter range] [-s stream(s)] [-f factor] [-d level] [-v]

  -i <device>
     the input device defines the data source. This could be the devicefile of your DVD drive (on most
     systems this might be /dev/dvd) or a directory containing the DVD file structure (VIDEO_TS, AUDIO_TS).

  -t <title number>
     selects the title number.

  -c <chapter|chapter range>
     selects the chapter(s) to process (default all chapters)
     To process a single chapter, use: -c chapternumber   i.e.: -c 1
     To process a chapter range, use : -c start-stop      i.e.: -c 1-5

  -s <stream(s)>
     selects the video/audio/subpicture streams (default all streams)

     Videostream id's always start with '0xen' where n is the track number. In most cases a video DVD
     contains only one video stream '0xe0', multiangle videos might contain more video streams.

     Audiostream id's always start with '0x8n' where n is the track number. Most video DVDs contain
     multiple audiostreams in different languages, director comments, ...
     There's a special case for MPEG audiostreams, that are pretty rare to find. Anyway if you have
     a dvd containing MPEG audiostreams and want to select one of them, use 0xcn as identifier where
     n is the tracknumber (also special, counting starts from 1).

     Subpicturestream id's always start with '0x2n' where n is the track number. Most video DVDs contain
     multiple subpicture streams in different languages.

     Example:
       to select only the first video and audio track: 
          -s 0xe0,0x80
       to select first video, 2nd and 3rd audio and first subpicture track: 
          -s 0xe0,0x81,0x82,0x20
       special case: select only the first video and mpeg audio track:
          -s 0xe0,0xc1

  -f <factor>
    the factor to resize the video stream (default no resizing)
    Most video DVDs contain more data than 4,37 GB, even if you selected only 1 video and 1 audio track.
    To backup this movie to a DVD-R you have to reduce the video bandwidth. A factor = 1 will leave the
    video as it is, without reducing the bandwidth, factor = 2 will produce a video track with half the
    size of the original video track. In most cases a factor between 1.0 and 1.5 should be ok.

  -d <debuglevel>
    show info about what's going on, the higher the value the more detailed info will be displayed (default 0)

  -v 
    print version info and exit



Hints:
  You can get all info about what is available on your dvd by using transcode's tcprobe or lsdvd,
  a handy little tool coming with AcidRip.
  To get the resizing factor needed for the movie to fit on a dvd-r just use streamanalyze.

  You shouldn't use a requant factor bigger than 1.5. The quality decreases with reducing the bitrate
  and 1.5 seems to be a magic line from where the quality loss might be clearly visible.

  When using dvdauthor to build the dvd structure, you can generate a new dvd with only one step.
  You can pass the complete streamdvd commandline (followed by a '|') to the -f switch in dvdauthor
  i.e.: lets say your dvd drive is accessable at /dev/dvd, the saving directory is /movies/movie1
        and you want to backup title 1, all chapters with 1st video and 1st audio track:
        -> dvdauthor -t -o /movies/movie1 -f 'streamdvd -i /dev/dvd -t 1 -s 0xe0,0x80 |'
        After that, build the missing ifo files with:
        -> dvdauthor -T -o /movies/movie1
  That's it :-)



Bugs:
  nothing reported so far



Changelog:
  0.4          - fixed identification of pcm audio tracks
               - still no subpicture support !!!
  0.4pre3      - fixed another bug in requantizer input, some minor bug fixes
  0.4pre2      - fixed major bug causing floating point exception in requantizer
  0.4pre1      - complete new streamdvd code, now uses the mplex multiplexor for output
                 NOTE: support for subpicture tracks deactivated
  0.3          - (hopefully) fixed this floating point error stuff, there shouldn't be any difference
                 between cbr and vbr encoded movies now
  0.2          - fixed 2 minor bugs in stream handling when all streams were selected
  0.1          - first public version



Contact:
  To send comments, suggestions or bug reports mail to: GeniusR13@gmx.net
  Get the latest version at http://www.badabum.de/streamdvd.html



Credits:
  The resizing (or better requantizing) in StreamDVD is based on a (slightly) modified version of
  M2VRequant written by Antoine Missout, parts of the dvd data access were taken from transcode
  (by Thomas Oestreich) and lsdvd (part of AcidRip by Chris Phillips). The multiplexor engine is
  taken from mplex (part of the mjpeg-tools).

