This is a local copy of a nice howto you can find in the Ubuntuforums at:
HOWTO: Rip DVDs in MPEG-4 AVC (x264), multi audio, subtitles, Matroska"
Some little changes I've made, are marked in red.
HOWTO: Rip DVDs in MPEG-4 AVC (x264), multi audio, subtitles, Matroska - by Heinz
MPlayer and MEncoder are amazing tools not only for watching but also for backing up DVD content. This HOWTO demonstrates how to create a very high quality rip with next generation video (H.264/x264/MPEG-4 AVC) serveral audio tracks (Vorbis in this case, can be other formats like AC3, MP3) and subtiles (vobsubs) in a Matroska container. In order to install the necessary applications you will need the multiverse repository (https://help.ubuntu.com/community/Repositories/Ubuntu).
1. Install needed applications
sudo apt-get install mplayer mencoder normalize-audio vorbis-tools mkvtoolnix mkvtoolnix-gui gpac x264-bin2. Rip DVD to harddisk
mplayer dvd://1 -v -dumpstream -dumpfile title.vob
- 1 is the stream you want to rip.
In order to determine which subtitles are available on your DVD run the following command
mplayer dvd:// -v -vo null -ao null | grep "subtitle"3.1 Rip subtitles
mencoder dvd://1 -nosound -ovc frameno -o /dev/null -slang en -vobsubout title
- 1 is the stream we extract the subs from
- slang is the desired language (en, de, fr, etc.)
- title is the basename of the vobsub files, in this case title.idx and title.sub
In order to determine which audio tracks are available on your DVD run the following command
mplayer dvd:// -v | grep "audio stream"In case you want to keep the original AC3 audio step forward to 4.4.
4.1 Convert audio to PCM
mplayer title.vob -ao pcm:file=audio1.wav -vc dummy -aid 128 -vo null
- title.vob is the stream we already ripped in step 2
- audio1.wav is the name of the resulting PCM file
- -aid 128 chooses the first audio track
4.2 Normalize audio
normalize-audio audio1.wavRepeat on audio2.wav etc. if you have more than one audio track.
4.3 Encode audio into Ogg Vorbis
oggenc -q3 audio1.wav
- -q5 is the desired quality of the first track. Wikipedia: Many users feel that Vorbis reaches
transparency (sound quality that is indistinguishable from the original source recording) at a quality
setting of -q5, approximately 160 kbit/s. Additional audio tracks can be encoded accordingly with lesser
quality in order to save disc space.
I'm using -q3. This creates files with round about 96kb/s, which is good enough for my needs.
In case you do not want to compress audio but keep the original AC3 track simply extract it from the VOB with
mplayer title.vob -aid 128 -dumpaudio -dumpfile title.ac35. Video
This example uses the two-pass-method and presumes progressive PAL video. Read here how to deal with telecined, interlaced and NTSC video.
First, we have to get rid of black borders around the movie. Hence we playback the file with the cropdetect filter.
mplayer title.vob -vf cropdetectMove a little forward in the movie using the arrow-up key and let MPlayer find the correct settings for you. If you are finished quit MPlayer and copy the part -vf crop=720:432:0:76 from the console. Of course your values might differ from this example.
5.1 Determine video bitrate
The choice of the bitrate depends. If you don't care about filesize anything above 1000 deliveres superb quality. If you do however plan the final file size to be about 700 MB or a multiple calculate like this (copied from MPlayer documentation):
If you aim at a certain size, you will have to somehow calculate the bitrate. But before that, you need to know how much space you should reserve for the audio track(s), so you should rip those first. You can compute the bitrate with the following equation: bitrate = (target_size_in_Mbytes - sound_size_in_Mbytes) * 1024 * 1024 / length_in_secs * 8 / 1000 For instance, to squeeze a two-hour movie onto a 702MB CD, with 60MB of audio track, the video bitrate will have to be: (702 - 60) * 1024 * 1024 / (120*60) * 8 / 1000 = 740kbps
5.2 Start video encoding process
Create a file which runs the first and second pass consecutively.
gedit videncPaste the following into that file and adjust the cropping and video bitrate values with the ones you got from the procedures above
# First passx264encopts threads=auto will speed things up if you own a dual-core cpu.
-ovc x264 -x264encopts subq=4:bframes=3:b_pyramid:weight_b:turbo=1:pass=1:psnr:bitrate=800<\
# Second pass
-vf crop=720:432:0:76,harddup,pp=lb,scale=-1:-2 -aspect 16:9\\
-ovc x264 -x264encopts subq=6:4x4mv:8x8dct:me=3:frameref=5:bframes=3:b_pyramid:weight_b:pass=2:psnr:bitrate=800\
I've added deinterlacing (pp=lb) and scaling (scale=-1:-2 -aspect 16:9), since the automated scaling seemed not to work here. Besides I changed the bitrate from 1000 to 800, which produces good enough quality here.
Since MEncoder is not able to save directly into Matroska containers we encode the video in raw format convert it later into .mp4 and finally mux everything (video, audio, subtitles) together with mkvmerge. Interested in what all those options mean? If everything fits your needs save videnc.
Encoding of MPEG-4 AVC video is a time consuming matter. On my AMD Athlon64 3000+ a 90 minute movie takes about 3 hours for the first and again about 5 hours for the second pass. Best is to let your machine work over night while you sleep.
sh videnc6. Muxing
6.1 Mux video into MP4 container
Good morning! ;)
If encoding went fine we are ready to put that x264 file into an MP4 container
MP4Box -add title.264 title.mp4You can already verify the result by playing it in MPlayer.
6.2 Muxing it all together into Matroska container
Start up the MKV files creator
mmgand simply drag & drop your files into the Input files box
- audio1.ogg or audio.ac3
- title.idx (not title.sub!)