From: Alan J. Pippin Date: Wed, 15 Jul 2009 13:57:10 +0000 (-0600) Subject: Added new AID audio track id override command line option -l X-Git-Tag: 2_0~8 X-Git-Url: http://git.pippins.net/embedvideo/.git/%22%22.%24thumbnail.%22/%24link?a=commitdiff_plain;h=2ba18926e0e436ac665d5c474503021ee7f3febe;p=rip_dvd%2F.git Added new AID audio track id override command line option -l --- diff --git a/rip_dvd b/rip_dvd index ebcd87f..50bdb22 100755 --- a/rip_dvd +++ b/rip_dvd @@ -41,6 +41,9 @@ 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 @@ -95,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;; @@ -115,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;; @@ -168,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 "" @@ -797,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 { @@ -865,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 {