encxvid / dvd2vobs - Simple mencoder frontend and DVD rip utilities

DVD Rip Utilities consists of two major components:

Download: DVD RIP Utilities v0.20

encxvid, dvd2vobs and support utilities

Installation

% tar zxf dvdriptuils-v0-20.tgz
% make
% sudo make install
% sudo make config
Installation directory is /usr/local/...
Note: make config modifies /etc/fstab, /etc/group and creates the directory
/mnt/dvd2vobs. These changes are required so dvd2vobs can run without
root privilege. /etc/fstab has a line appended to the end; /etc/group
has the login user added to group "disk". A backup /etc/group.bak
file is created.
Example use
This is the simplest use case for a DVD which can be read by vobcopy.

% sudo mount /dev/sr0 /mnt/dvd
% mkdir $HOME/Videos/DvdToCopy
% cd $HOME/Videos/DvdToCopy
% dvd2vobs --dvd /mnt/dvd
% encxvid *.vob
% sudo umount /dev/sr0
The DVD to copy is mounted under /mnt/dvd. A new directory under Videos is created, and the disc is copied and dissected into segments by dvd2vobs. Afterwards, the individual VOB files are transcoded to XvID format (AVI containers) using encxvid.

Dependencies
This project is dependent on many other video processing utilities and libraries. Make will fail when one of these dependency checks fails. The name of the missing component is displayed in the build break.

This project has these dependencies:

For Ubuntu users, good directions for how to add Debian repositories that contain libdvdcss2 are provided here:

https://help.ubuntu.com/community/Medibuntu

The build will fail, and print the name of a missing dependent components before building the utility package.

dvd2vobs takes the output of an already ripped DVD and "dissects" it into individual tracks. Then segments within tracks are found (if present) and cuts tracks at segment boundaries. This step is important for proper encoding of an extracted MPEG2 VOB into AVI format. Sometimes frame rate, video or audio bitrate changes occur in the middle of a track (at a segment boundary). This change can result in the remainder of an extracted track to be unplayable, either because audio is lost, or other encoding artifacts of such files.

The other major use for this utility is subdividing a DVD that is part of a larger series, and the single disc contains multiple episodes from the series. Some DVDs encode all episodes on that disc into a single large VOB file. dvd2vobs can split such a file into individual episodes.

dvd2vobs sample usage

mount /dev/sr0 /mnt/dvd
mkdir -p Videos/movie
cd Videos/movie
dvd2vobs --dvd /mnt/dvd
encxvid *.vob
Note: In this example, dvd2vobs will dissect all tracks on a dvd into individual .vob files. encxvid will transcode these video files into AVI files, using the default video/audio values.

encxvid is a extremely simple to use front end to mencoder for transcoding video files into XvID AVI files. It uses intelligent defaults for video and audio bitrates, aspect ratio. The simplest usage is:

encxvid video.vob

This results in an AVI file with video encoded at 950kbps, MP3 audio encoded at an ABR of about 170kbps.

The command line options for encxvid are simple, and easy to understand, allowing the default encoding parameters to be easily modified. These example enxcvid usages demonstrate the simplicity of encxvid command line parameters.

encxvid usage
usage: encxvid [--size MB] [--bitrate br] [--abitrate br] [--start secs] [--vfps 24|30] [--duration secs] [--ffmpeg][--threads N] [--no-interleave] [--silent] [--debug] [--verbose] [--aid en/sp/fr/...] [--subtitle 0/1/2/... ] [--dry-run] [--help] [-h] [--outdir path] infile

infile: Any video file viewable by mplayer
 
--size: Target file size in MB
 
--bitrate: Video bitrate setting in kbps
  Negative value is target size in MB (-700 for 700MB video)
 
--abitrate: Audio bitrate setting in kbps (8-320 valid)
  Valid values: 8-320, medium, standard, extreme, insane
medium (150-180kbps)  
standard (170kbps-210kbps)  
extreme (200kbps-240kbps)  
insane (320kbps)  
copy (pass through
Default is standard (170kbps-210kbps)
 
--vfps: 24 (23.976) or 30 (29.970) (default 23.976)
  In some cases, a mismatch in source VOB vfps and encoded
  vfps results in a corrupt/blocky video encoding.
 
--start: Begin encoding at specified start time
 
--duration: Length of input file encoded
  Note: Test start_time/duration with mplayer -ss and -endpos options
 
--ffmpeg: Preprocess using ffmpeg
  Useful for converting some MKV to AVI
 
--aid: Audio ID (en/fr/sp...)
 
--subtitle: subtitle ID (0/1/2/3)
 
--verbose: Display details when encoding
 
--debug: Show additional debug information during encoding.
 
--dry-run: Show encoding commands, but do not execute.
 
--outdir: Override default output directory (pwd).
 
Releases

Copyright (c) 2011-2013, Adam Bernstein, All Rights Reserved.
Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
  
    * Redistributions of source code must retain the above copyright notice,
this list of conditions and the following disclaimer.
    * Redistributions in binary form must reproduce the above copyright
notice, this list of conditions and the following disclaimer in the
documentation and/or other materials provided with the distribution.
    * Neither the name of Adam Bernstein nor the names of its
contributors may be used to endorse or promote products derived from this
software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.