X-Git-Url: http://git.pippins.net/embedvideo/.git/static/gitweb.js?a=blobdiff_plain;f=rip_dvd;h=24d881e73dbbf9b19746e678fe990a01c01ee733;hb=238ad23548a670aa46a586cf76095abf00e00f12;hp=0035a2d284ad8ec25a20e895a4296027cce22503;hpb=f95d0312d13f205bbdc5e30312095c0133f44b36;p=rip_dvd%2F.git diff --git a/rip_dvd b/rip_dvd index 0035a2d..24d881e 100755 --- a/rip_dvd +++ b/rip_dvd @@ -113,7 +113,7 @@ fi ############################################################################################## # Command line processing ############################################################################################## -while (($#)) && getopts 162wmvifkzx:ht:n:d:b:B:s:t:a:p:e:j:l:r:R: opt "$@" +while (($#)) && getopts 162wmvifkzx:hT:t:n:d:b:B:s:t:a:p:e:j:l:r:R: opt "$@" do case $opt in (n) dvdname=$OPTARG;; @@ -140,6 +140,7 @@ do (l) aid_override=$OPTARG;; (r) drc=$OPTARG;; (w) set -x;; + (T) minimum_feature_title_length=$OPTARG;; (h) show_usage=1;; (:) echo >&2 "$0: $OPTARG requires a value"; errors=errors+1;; (\?) echo >&2 "$0: invalid option '$OPTARG'"; errors=errors+1;; @@ -167,9 +168,9 @@ function usage() { echo >&2 " - iphone = MP4, x264 codec, 2 pass encoding, forced 480:320 scaling" echo >&2 " - ipod = MP4, x264 codec, 2 pass encoding, forced 320:240 scaling" echo >&2 " Handbrake Only Encoder Profiles:" - echo >&2 " - mkvvhq = MKV, very high quality encoding (0.95 quality)" - echo >&2 " - mkvhq = MKV, high quality encoding (0.90 quality)" - echo >&2 " - mkv = MKV, high quality encoding (0.85 quality)" + echo >&2 " - mkvvhq = MKV, very high quality encoding, x264 codec, 2 pass encoding" + echo >&2 " - mkvhq = MKV, high quality encoding, x264 codec, 2 pass encoding" + echo >&2 " - mkv = MKV, high quality encoding, x264 codec, 2 pass encoding" echo >&2 " - mp4vhq = MP4, very high quality encoding, x264 codec, 2 pass encoding" echo >&2 " - mp4hq = MP4, high quality encoding, x264 codec, 2 pass encoding" echo >&2 " - mp4 = MP4, fast encoding, x264 codec, 2 pass encoding" @@ -207,6 +208,7 @@ function usage() { 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 " -T <length> Specify the minimum feature title length in minutes. This is used when picking which title to rip." echo >&2 " -w Set the sh Execute/Verbose flag (causes every command to be echoed)" echo >&2 "" exit 2 @@ -264,7 +266,7 @@ if [ -z "$encoder" ]; then encoder="mencoder"; # If we can't find handbrake, set mencoder as the default [[ -x `which $handbrake_xvid` ]] && [[ "$profile" =~ "xvid" ]] && encoder="handbrake"; [[ -x `which $handbrake_mp4` ]] && [[ "$profile" =~ "mp4" ]] && encoder="handbrake"; - [[ -x `which $handbrake_mp4` ]] && [[ "$profile" =~ "mk4" ]] && encoder="handbrake"; + [[ -x `which $handbrake_mp4` ]] && [[ "$profile" =~ "mkv" ]] && encoder="handbrake"; [[ -x `which $handbrake_mp4` ]] && [[ "$profile" =~ "ip" ]] && encoder="handbrake"; [[ -x `which $handbrake_mp4` ]] && [[ "$profile" =~ "hb" ]] && encoder="handbrake"; fi @@ -743,11 +745,12 @@ function encode_vob_file_handbrake { fi fi - # MP4 profile - if [[ "$profile" =~ "mp4" ]]; then + # MP4 || MKV profile + if [[ "$profile" =~ "mp4" ]] || [[ "$profile" =~ "mkv" ]]; then found_profile=1 handbrake_cli="$handbrake_mp4" - final_output_file="$dest/$dvdname.mp4" + [[ "$profile" =~ "mp4" ]] && final_output_file="$dest/$dvdname.mp4" + [[ "$profile" =~ "mkv" ]] && final_output_file="$dest/$dvdname.mkv" PASSES="$PASSES -T" # Handle custom parameter overrides @@ -775,43 +778,6 @@ function encode_vob_file_handbrake { fi fi - # MKV profile - if [[ "$profile" =~ "mkv" ]]; then - found_profile=1 - handbrake_cli="$handbrake_mp4" - final_output_file="$dest/$dvdname.mkv" - PASSES="" - - # Handle custom parameter overrides - if [ $custom_video_bitrate == 1 ]; then - handbrake_opts[0]="-b $target_video_bitrate" - fi - if [ $custom_audio_2ch == 0 ]; then - audio_2ch=0 - fi - if [ $custom_audio_6ch == 0 ]; then - audio_6ch=0 - fi - - # Very High Quality - if [ "$profile" == "mkvvhq" ]; then - handbrake_opts[0]="-q 0.95" - fi - # High Quality - if [ "$profile" == "mkvhq" ]; then - handbrake_opts[0]="-q 0.90" - fi - # Fast - if [ "$profile" == "mkv" ]; then - handbrake_opts[0]="-q 0.85" - fi - - # Common options to all profiles above - handbrake_opts[1]="--strict-anamorphic" - handbrake_opts[2]="--crop 0:0:0:0" - - fi - # iphone and ipod MP4 profiles if [ "$profile" == "iphone" ] || [ "$profile" == "ipod" ]; then found_profile=1 @@ -1166,7 +1132,7 @@ function make_dvd_mkv_image { # Move the largest created MKV file into place # There might be multiple ones, so just grab the largest one - largest_mkv_file=`/bin/ls -rS "$dstdir"/*.mkv | head -1` + largest_mkv_file=`/bin/ls -1S "$dstdir"/*.mkv | head -1` echo -e "\n Moving largest mkv file $largest_mkv_file -> $dstmkv\n" | tee -a "$ddrescuelog" mv "$largest_mkv_file" "$dstmkv" @@ -1912,6 +1878,7 @@ if [ $mirror_mode -eq 0 ]; then # Create our "vobfile" using makemkv if told to do so if [[ "$isofile" =~ "iso" ]] && [[ "$ripper" == "makemkv" ]]; then + echo "-> Creating VOB/MKV file from $isofile" vobfile="$tmpdir/$dvdname.mkv" make_dvd_mkv_image "$vobfile" "iso" "$isofile" fi