Difference between revisions of "Extract DVD"
(→Video) |
(→Audio) |
||
Line 42: | Line 42: | ||
Now extract audio from the stream and convert to OGG | Now extract audio from the stream and convert to OGG | ||
<pre> | <pre> | ||
− | avconv -i <title>1.vob -f ogg -c:a libvorbis -q:a | + | avconv -i <title>1.vob -map 0:<audiostream> -f ogg -c:a libvorbis -q:a 4 -vn -sn <title>.audio |
</pre> | </pre> | ||
Revision as of 10:38, 25 March 2012
This describes how to convert a DVD to mkv using:
- x264 for video
- ac3 for audio
- any subtitles
Installation
Install the packages
apt-get install lsdvd ffmpeg vobcopy oggz-tools
For using encrypted DVDs build and install libdvdcss from http://download.videolan.org/pub/libdvdcss/last
./configure --prefix=/usr make make install
Prepare
Use lsdvd to see what's on DVD. Determine the stream you would like to extract as well as the aid for audio and the sid for subtitles.
lsdvd -x
Write the stream to the harddrive so the next steps will go faster.
vobcopy -l -n <stream> -t <title>
As I find it acceptable to have my DVDs compressed to 25% of its size I use the follow calculations to get the bitrate for video and audio.
length=`lsdvd -t <stream> -Ox 2>/dev/null | grep length | sed 's/^[^>]*>//' | sed 's/\..*//'`;vobsize=`find <title>1.vob -printf '%s\n'`; bitrate=$(($vobsize*8/$length/4/5)); echo "audio bitrate = $(($bitrate/1000)) kb/s";echo "video bitrate = $(($bitrate*4/1000)) kb/s"
Video
Detect the amount to crop. Keep it running till it is stable for a while
mplayer -vf cropdetect -nosub lotrE1D1.vob
Convert the video stream to ogv
avconv -i <title>1.vob -f ogg -codec:v libtheora -vf crop=<cropvalues> -g 15 -bf 2 -q:v 8 -an -sn <title>.video
Audio
Now extract audio from the stream and convert to OGG
avconv -i <title>1.vob -map 0:<audiostream> -f ogg -c:a libvorbis -q:a 4 -vn -sn <title>.audio
Subtitles
Extract the subtitles from the stream.
mencoder <title>1.vob -oac copy -nosound -ovc frameno -o /dev/null -sid <sid> -vobsubout <title> -vobsuboutindex <index> -vobsuboutid <langcode>
Merging
Combine everything in a ogg container
oggz-merge -o <title>.ogv <title>.video <title>.audio