Ubuntu Forums ubuntu.com - launchpad.net - ubuntu help  

Go Back   Ubuntu Forums > The Ubuntu Forum Community > Other Community Discussions > Tutorials & Tips
Register Reset Password Forum Help Forum Council Search Today's Posts Mark Forums Read

Tutorials & Tips
The place to find Ubuntu related Tips & Tricks.

 
 
Thread Tools Display Modes
Prev Previous Post   Next Post Next
Old October 8th, 2006   #1
Heinz
First Cup of Ubuntu
 
Heinz's Avatar
 
Join Date: Apr 2005
Location: Germany
Beans: 10
Xubuntu Jaunty Jackalope (testing)
HOWTO: Rip DVDs in MPEG-4 AVC (x264), multi audio, subtitles, Matroska

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

Quote:
sudo apt-get install mplayer mencoder normalize-audio vorbis-tools mkvtoolnix mkvtoolnix-gui gpac x264-bin
2. Rip DVD to harddisk

Quote:
mplayer dvd://1 -v -dumpstream -dumpfile title.vob
  • 1 is the stream you want to rip.

3. Subtitles

In order to determine which subtitles are available on your DVD run the following command

Quote:
mplayer dvd:// -v -vo null -ao null | grep "subtitle"
3.1 Rip subtitles

Quote:
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

4. Audio

In order to determine which audio tracks are available on your DVD run the following command

Quote:
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

Quote:
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
If you would like to rip another audio track (e.g. commentary or different language) repeat the above with the next track number (-aid 129 would be the second track) and save as audio2.wav.

4.2 Normalize audio

Quote:
normalize-audio audio1.wav
Repeat on audio2.wav etc. if you have more than one audio track.

4.3 Encode audio into Ogg Vorbis

Quote:
oggenc -q5 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.

4.4 Keep original Dolby Digital AC3 audio

In case you do not want to compress audio but keep the original AC3 track simply extract it from the VOB with

Quote:
mplayer title.vob -aid 128 -dumpaudio -dumpfile title.ac3
5. 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.

Quote:
mplayer title.vob -vf cropdetect
Move 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.

Quote:
gedit videnc
Paste the following into that file and adjust the cropping and video bitrate values with the ones you got from the procedures above


Code:
# First pass
mencoder -v\
         title.vob\
        -vf crop=720:432:0:76,harddup\
        -ovc x264 -x264encopts subq=4:bframes=3:b_pyramid:weight_b:turbo=1:pass=1:psnr:bitrate=1000\
        -oac copy\
        -of rawvideo\
        -o title.264

# Second pass
mencoder -v\
         title.vob\
        -vf crop=720:432:0:76,harddup\
        -ovc x264 -x264encopts subq=6:4x4mv:8x8dct:me=3:frameref=5:bframes=3:b_pyramid:weight_b:pass=2:psnr:bitrate=1000\
        -oac copy\
        -of rawvideo\
        -o title.264
x264encopts threads=auto will speed things up if you own a dual-core cpu.

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.

Run videnc
Quote:
sh videnc
6. 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

Quote:
MP4Box -add title.264 title.mp4
You 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

Quote:
mmg
and simply drag & drop your files into the Input files box
  • title.mp4
  • audio1.ogg or audio.ac3
  • audio2.ogg
  • title.idx (not title.sub!)
You might have noticed that we did not scale the video during the encoding process. That is because Matroska handles the aspect ratio itself. Simply define the languages and track names in the Tracks box and choose the correct aspect ratio. Choose an output filename (the default would produce title.mkv) and hit Start muxing.

Changelog:
  • 09.10.2006 - fixed encoding parameters
  • 09.10.2006 - added telecined, interlaced, NTSC
  • 10.10.2006 - added encode to certain file size
  • 10.10.2006 - added determine audio and subtitle tracks, overworked document structure
  • 13.10.2006 - changed -oac copy instead of -nosound due to sync issues
  • 28.01.2007 - added option "harddup" to video filter chain, added support for dual-core cpus (thanks to NobodySpecial)

ToDo:
  • Rip chapters with OGMTools

Last edited by Heinz; January 28th, 2007 at 09:36 AM.. Reason: Update
Heinz is offline   Reply With Quote
 

Bookmarks

Tags
dvd, rip

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 03:43 AM.


vBulletin ©2000 - 2010, Jelsoft Enterprises Ltd. Ubuntu Logo, Ubuntu and Canonical © Canonical Ltd. Tango Icons © Tango Desktop Project. lingonberry