X-Git-Url: http://git.pippins.net/embedvideo/.git/?a=blobdiff_plain;f=rip_dvd;h=50bdb22a369d8a3f749659e252abcea0213e1ed1;hb=2ba18926e0e436ac665d5c474503021ee7f3febe;hp=9e13ae37042121c2e18148ca20c972a190224a4b;hpb=f34156ef86753dd27309b3038b4b6fa60107422c;p=rip_dvd%2F.git diff --git a/rip_dvd b/rip_dvd index 9e13ae3..50bdb22 100755 --- a/rip_dvd +++ b/rip_dvd @@ -40,6 +40,10 @@ typeset SCALE="" typeset CROP="" typeset profile="xvidvhq" typeset extension="" +typeset mailto="" +typeset default_alang="en" +typeset -i default_aid=128 +typeset -i aid_override=-1 typeset -i force_onepass_mode=0 typeset -i eject_disk=1 typeset -i keep_isofile=0 @@ -74,16 +78,16 @@ config="${0%/*}/rip_dvd.conf" found_config=0 # 1) /path/to/rip_dvd/script/rip_dvd.conf.dist -[ -e "${config}.dist" ] && found_config=1 && . ${config}.dist +[ -e "${config}.dist" ] && found_config=1 && . "${config}.dist" # 2) /path/to/rip_dvd/script/rip_dvd.conf -[ -e "${config}" ] && found_config=1 && . ${config} +[ -e "${config}" ] && found_config=1 && . "${config}" # 3) /etc/rip_dvd.conf -[ -e "/etc/rip_dvd.conf" ] && found_config=1 && . /etc/rip_dvd.conf +[ -e "/etc/rip_dvd.conf" ] && found_config=1 && . "/etc/rip_dvd.conf" # 4) $PWD/rip_dvd.conf -[ -e "rip_dvd.conf" ] && found_config=1 && . rip_dvd.conf +[ -e "$PWD/rip_dvd.conf" ] && found_config=1 && . "$PWD/rip_dvd.conf" # Check to make sure we found the config file if [ $found_config -eq 0 ]; then @@ -94,7 +98,7 @@ fi ############################################################################################## # Command line processing ############################################################################################## -while (($#)) && getopts 12mvifkxht:n:d:b:s:t:a:p:e:j: opt "$@" +while (($#)) && getopts 12mvifkxht:n:d:b:s:t:a:p:e:j:l: opt "$@" do case $opt in (n) dvdname=$OPTARG;; @@ -114,6 +118,7 @@ do (p) profile=$OPTARG;; (e) extension=$OPTARG;; (j) eject_disk=$OPTARG;; + (l) aid_override=$OPTARG;; (w) set -$opt;; (h) show_usage=1;; (:) echo >&2 "$0: $OPTARG requires a value"; errors=errors+1;; @@ -167,6 +172,7 @@ function usage() { echo >&2 " -k Keep the intermediate files (good for debugging)" echo >&2 " In -x mode, run with this option to keep the original .VOB file" echo >&2 " By default, all intermediary files are deleted. Only the final image is kept" + echo >&2 " -l Specify the audio AID language ID to rip from the source DVD" echo >&2 " -t Specify the main feature title to pull from the DVD (only required if this script can't figure it out)" echo >&2 " -w Set the sh Execute/Verbose flag (causes every command to be echoed)" echo >&2 "" @@ -796,17 +802,22 @@ function get_audio_id_from_iso { # This should be 128. However, if 128 is not there, pick the next one that incrementally is. iso="$1" aidcheck=`tempfile` - aid=128 - mplayer -v -endpos 0 -dvd-device "$iso" dvd://$feature_title > $aidcheck 2>&1 - grep -q "aid: $aid" $aidcheck - while [ $? == 1 ] && [ $aid -lt 159 ]; do - (( aid = aid + 1 )) + aid=$default_aid + alang=$default_alang + if [ $aid_override -lt 0 ]; then + mplayer -v -endpos 0 -dvd-device "$iso" dvd://$feature_title > $aidcheck 2>&1 grep -q "aid: $aid" $aidcheck - done - [[ -e "$aidcheck" ]] && rm -f "$aidcheck" + while [ $? == 1 ] && [ $aid -lt 159 ]; do + (( aid = aid + 1 )) + grep -q "aid: $aid" $aidcheck + done + [[ -e "$aidcheck" ]] && rm -f "$aidcheck" + else + aid=$aid_override + fi echo "-> Setting the audio stream ID to $aid" | tee -a "$logfile" # mencoder default DVD audio track language selection (english) - lang_opts="-aid $aid -alang en" + lang_opts="-aid $aid -alang $alang" } function get_crop_from_iso { @@ -864,17 +875,22 @@ function get_audio_id_from_vob { # This should be 128. However, if 128 is not there, pick the next one that incrementally is. vob="$1" aidcheck=`tempfile` - aid=128 - mplayer -v -endpos 0 "$vob" > $aidcheck 2>&1 - grep -q "Found audio stream: $aid" $aidcheck - while [ $? == 1 ] && [ $aid -lt 159 ]; do - (( aid = aid + 1 )) + aid=$default_aid + alang=$default_alang + if [ $aid_override -lt 0 ]; then + mplayer -v -endpos 0 "$vob" > $aidcheck 2>&1 grep -q "Found audio stream: $aid" $aidcheck - done - [[ -e "$aidcheck" ]] && rm -f "$aidcheck" + while [ $? == 1 ] && [ $aid -lt 159 ]; do + (( aid = aid + 1 )) + grep -q "Found audio stream: $aid" $aidcheck + done + [[ -e "$aidcheck" ]] && rm -f "$aidcheck" + else + aid=$aid_override + fi echo "-> Setting the audio stream ID to $aid" | tee -a "$logfile" # mencoder default DVD audio track language selection (english) - lang_opts="-aid $aid -alang en" + lang_opts="-aid $aid -alang $alang" } function check_vob_for_corrupted_start {