DVD Encoding

From SmlugWiki

Jump to: navigation, search

DVD Encoding in Linux (for backup / archival purposes)

TODO: Explain the shell script below

#!/bin/bash
if [ "$#" -lt 1 ];
then
  NAME=`lsdvd|grep "Disc Title"|cut -f 3 -d " "`
  #OPTS="-oac lavc -ovc lavc -lavcopts vcodec=mpeg4:mbd=1:vbitrate=1000:abitrate=192"
  OPTS="-oac copy -ovc lavc -lavcopts vcodec=mpeg4:v4mv:mbd=2:vbitrate=1400"
  TRACK=`lsdvd|grep "Longest"|cut -f 3 -d " "`
  AID=`mencoder -v dvd://$TRACK -o /dev/null $OPTS -chapter 3 -endpos 0 2>&1 |grep 'aid'|grep ' en '|grep 'ac3'|grep "5.1"|cut -f 12 -d " "`
  CROP=`mencoder -v dvd://$TRACK -o /dev/null $OPTS -chapter 3 -endpos 1 -vf cropdetect 2>&1 |grep "\-vf crop="|cut -f 2 -d "="|cut -f 1 -d ")"|uniq`
  TESTOPTS="dvd://$TRACK -o $NAME-Test.avi $OPTS -aid $AID -vf crop=$CROP -chapter 3 -endpos 60"
  RUNOPTS="dvd://$TRACK -o $NAME.avi $OPTS -aid $AID -vf crop=$CROP"
  echo "----------------------------------------------------------------------------------------"
  echo "** Best Guesses **"
  echo "----------------------------------------------------------------------------------------"
  echo "Movie Title: $NAME"
  echo "Title Track: $TRACK"
  echo "AID: $AID"
  echo "CROP: $CROP"
  echo "----------------------------------------------------------------------------------------"
  echo ""
  echo "Command for Test: "
  echo ""
  echo "mencoder dvd://$TRACK -o $NAME-Test.avi $OPTS -aid $AID -vf crop=$CROP -chapter 3 -endpos 60"
  echo ""
  echo "Command for Run:"
  echo ""
  echo "mencoder dvd://$TRACK -o $NAME.avi $OPTS -aid $AID -vf crop=$CROP"
  echo "----------------------------------------------------------------------------------------"
  echo "Enter T to do test run, R to do full encode or Control-C to quit"
  echo ""
  read
  if [ "$REPLY" = "T" ];
  then
    mencoder $TESTOPTS
  elif [ "$REPLY" = "R" ];
  then
    mencoder $RUNOPTS
  else
   exit
  fi
fi
exit
if [ "$#" -lt 2 ];
then
  echo "Usage:"
  echo "    dvdencode.sh <Title> <Name> [Extra Options to mplayer]"
  echo "You must include Title Track Number and Name"
  exit
else
  TRACK=$1
  NAME=$2
  shift
  shift
  REST=$*
  echo "** Preparing to Encode DVD **"
  echo "** For Best Picture and performance you can determine which Title to"
  echo "** Encode by typing the following command:"
  echo "** "
  echo "lsdvd"
  echo "**"
  echo "** You can also determine which Audio Track to use by typing"
  echo "**"
  echo "mplayer -v dvd://1 |grep aid"
  echo "**"
  echo "** To Determine the picture size to crop to, type"
  echo "**"
  echo "mplayer dvd://1 -chapter 3 -endpos 5 -vf cropdetect |grep crop"
  echo "**"
  echo "** then use the -vf crop= from that output on the command line"
  echo "**"
  echo "** Command line used is:"
  echo "**"
  CMD="mencoder dvd://$TRACK -o $NAME.avi -oac lavc -ovc lavc -lavcopts vcodec=mpeg4:mbd=1:vbitrate=1000:abitrate=192 $REST"
  echo "$CMD"
  echo "**"
  read -p "** Press <Enter> to Continue or Control-C to stop" RESULT
  mencoder dvd://$TRACK -o $NAME.avi -oac lavc -ovc lavc -lavcopts vcodec=mpeg4:mbd=1:vbitrate=1000:abitrate=192 $REST
  #mencoder -v dvd://`lsdvd|grep "Longest"|cut -f 3 -d " "` -o $NAME .avi -oac lavc -ovc lavc -lavcopts vcodec=mpeg4:mbd=1:vbitrate=1000:abitrate=192 $REST -chapter 3 -endpos 3
fi

Personal tools