#!/bin/bash # # (c) 2002 by Killer # # version 0.4 # # 20/09/2002: added autocrop functionality! # 01/10/2002: improved resolution rescaling # 09/10/2002: improved audio track grabbing # # If you have any comments, critics, suggestions, etc..., # send me an e-mail. # Thanks to the MPlayer developers for this great software and to # Patrick J. Volkerding for his "pkgtool" that inspired me. # # This script is free software; you can redistribute and/or # modify it under the terms of the GNU General Public # License as published by the Free Software Foundation. # # This script is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY. # See the GNU General Public License for more details. # You should have received a copy of that along with this # software, if not refer to: http://www.fsf.org/licenses/gpl.txt # # # README: # # Pay attention to have write permission on /tmp directory # and necessary rights to execute system shutdown (if not use sudo). # # Don't forget to edit your cdburner settings 8 lines below. # # That's all. # Happy encoding! # # Specify your cdburner settings: CDR_DEVICE=/dev/scd1 CDR_SPEED=4 CDR_ID=0,1,0 dialog --backtitle "MencTool 0.4" --menu "How many cds (700 Mb) would you use?" 9 51 2 1 "one cd (recommended)" 2 "two cd's (if movie is longer than 150 min)" 2>/tmp/f; SPACE=`cat /tmp/f` # Creates the summary file echo "Cd number: `echo $SPACE`" > /tmp/summary; # Avi final size SPACE=`expr $SPACE \* 690 \* 8192` dialog --backtitle "MencTool 0.4" --inputbox "Which track would you encode?" 9 30 1 2>/tmp/f; TRACK=`cat /tmp/f` dialog --backtitle "MencTool 0.4" --inputbox "Insert total movie time (minutes):" 9 30 2>/tmp/f; TIME=`cat /tmp/f` # Conversion from minutes to seconds TIME=`expr $TIME \* 60` dialog --backtitle "MencTool 0.4" --menu "Select audio bitrate:" 11 30 4 64 "Kbit/s" 96 "Kbit/s" 112 "Kbit/s" 128 "Kbit/s" 2>/tmp/f; A_BITRATE=`cat /tmp/f` # Finds audio track size AUDIO=`expr $A_BITRATE \* $TIME` # Finds video bitrate BITRATE=`expr $SPACE - $AUDIO` BITRATE=`expr $BITRATE / $TIME` # If video bitrate is major than 6000 sets it to 6000 Kbit/s if [ $BITRATE -gt 6000 ] then BITRATE=6000 fi dialog --backtitle "MencTool 0.4" --menu "Select audio language:" 12 30 5 "en" english "it" italian "fr" french "de" german "hu" hungarian 2>/tmp/f LANGUAGE=`cat /tmp/f` dialog --backtitle "MencTool 0.4" --menu "Select horizontal resolution:" 14 30 4 720 "(original)" 640 "" 480 "" 360 "" 2>/tmp/f; RESOLUTION=`cat /tmp/f` dialog --backtitle "MencTool 0.4" --inputbox "Insert .avi file name:" 9 30 .avi 2>/tmp/f; FILENAME=`cat /tmp/f;` dialog --backtitle "MencTool 0.4" --yesno "Would you like to burn the movie, after ripping?" 9 30 BURN=$? if [ $BURN -eq 0 ] then eject $CDR_DEVICE; dialog --backtitle "MencTool 0.4" --msgbox "Insert a 700 Mb Cd-R..." 9 30; fi dialog --backtitle "MencTool 0.4" --yesno "Would you like to shutdown the system, finally?" 8 30 # Variabile verified at the end of script for shutdown HALT=$? # Appends rip settings to summary file echo "Selected track: `echo $TRACK`" >> /tmp/summary; echo "Video bitrate : `echo $BITRATE` Kbit/s" >> /tmp/summary; echo "Resolution: `echo $RESOLUTION` pixel" >> /tmp/summary; echo "Audio bitrate : `echo $A_BITRATE` Kbit/s" >> /tmp/summary; echo "Language: `echo $LANGUAGE`" >> /tmp/summary; dialog --backtitle "MencTool 0.4" --textbox /tmp/summary 11 31 rm -f /tmp/summary; clear; cd; # Start time log date > time.txt; rm -f frameno.avi lavc_stats.txt divx2pass.log; # Detects crop value to cut black bands mencoder -dvd $TRACK -chapter 2 -endpos 5 -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$BITRATE:keyint=50:vhq -vop cropdetect,scale -zoom -xy $RESOLUTION -sws 2 -oac copy -o /dev/null | grep vop | tail -n 1 | cut -d "=" -f 2 | tr -d ')' > /tmp/f; CROP=`cat /tmp/f` # Detects audio track number mencoder -dvd $TRACK -v | grep "$LANGUAGE aid" | cut -d ":" -f 5 | tr -d ' ' > /tmp/f; AUDIOT=`cat /tmp/f; rm -f /tmp/f` # Save on disc selected track. If you don't have enough disk space # comment this line and edit the three passes removing 'cat TEMP.VOB |' # and using 'mencoder -dvd $TRACK ...'; remember to also remove the '-'. mencoder -dvd $TRACK -ovc copy -oac copy -aid $AUDIOT -o TEMP.VOB; # First pass: audio compression cat TEMP.VOB | mencoder - -ovc frameno -oac mp3lame -lameopts br=$A_BITRATE:cbr:vol=3 -o frameno.avi; # Second pass: video compression first pass cat TEMP.VOB | mencoder - -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$BITRATE:keyint=50:vhq:vpass=1 -vop crop=$CROP,scale -zoom -xy $RESOLUTION -sws 2 -oac copy -o /dev/null; # Third pass: video compression second pass while adding compressed audio cat TEMP.VOB | mencoder - -ovc lavc -lavcopts vcodec=mpeg4:vbitrate=$BITRATE:keyint=50:vhq:vpass=2 -vop crop=$CROP,scale -zoom -xy $RESOLUTION -sws 2 -oac copy -o $FILENAME; # Delete temporary files rm -f frameno.avi TEMP.VOB; # End time log date >> time.txt # Burns the movie if [ $BURN -eq 0 ] then mkisofs -J -l -V "$FILENAME" $FILENAME | cdrecord -v dev=$CDR_ID speed=$CDR_SPEED -data - fi # System shutdown using sudo (for non privileged users) if [ $HALT -eq 0 ] then sudo halt fi