#!/bin/bash -e NO="8x8dct:bframes=3" X264="trellis=2:subq=6:4x4mv:qcomp=1:me=3:frameref=3:brdo:bime:mixed_refs:b_pyramid:weight_b" VB=100 [ "$#" -ne 1 ] && exec echo "usage: $0 " clean_tmp(){ [ -z "$KEEPTEMP" ] && rm -f /tmp/dvd2psp.$$.avi /tmp/audio.$$.wav /tmp/audio.$$.mp4 /tmp/audio.$$_track1.aac /tmp/video.$$.264 /tmp/mkpsppass.$$.log exit 0 } trap clean_tmp SIGINT trap clean_tmp SIGQUIT trap clean_tmp SIGKILL echo -e "\e[32mRipping DVD...\e[39;49m" CROP=$(mplayer -dvd-device /dev/hda -alang it dvd:// -vo null -nosound -vf cropdetect -ss 1800 -frames 25 2>/dev/null |grep '[CROP]' |tail -n 1 |cut -d '(' -f 2 | cut -d ')' -f 1) mencoder -dvd-device /dev/hda -alang it dvd:// $CROP,scale=368:-10 -ovc lavc -lavcopts vcodec=ffvhuff -oac copy -o /tmp/dvd2psp.$$.avi -msglevel all=0:avsync=5 || clean_tmp eject /dev/hda echo -e "\e[32mEncoding Audio...\e[39;49m" #faac --mpeg-vers 4 -q 80 /tmp/audio.$$.wav || clean_tmp mplayer /tmp/dvd2psp.$$.avi -vc null -vo null -ao pcm:fast:file=/tmp/audio.$$.wav -af lavcresample=48000 -msglevel all=0:avsync=5 || clean_tmp normalize-audio --peak /tmp/audio.$$.wav || clean_tmp neroaacenc -lc -if /tmp/audio.$$.wav -of /tmp/audio.$$.mp4 -q 0.2 || clean_tmp rm -f /tmp/audio.$$.wav MP4Box -raw 1 /tmp/audio.$$.mp4 || clean_tmp rm -f /tmp/audio.$$.mp4 echo -e "\e[32mEncoding Video (1° pass)\e[39;49m" mencoder /tmp/dvd2psp.$$.avi -vf harddup -ofps 25000/1001 -o /dev/null -of rawvideo -ovc x264 -nosound $VF -x264encopts $X264:bitrate=$VB:turbo=1:pass=1 -passlogfile /tmp/mkpsppass.$$.log -msglevel all=0:avsync=5 || clean_tmp echo -e "\e[32mEncoding Video (2° pass)\e[39;49m" mencoder /tmp/dvd2psp.$$.avi -vf harddup -ofps 25000/1001 -o /tmp/video.$$.264 -of rawvideo -ovc x264 -nosound $VF -x264encopts $X264:bitrate=$VB:pass=2 -passlogfile /tmp/mkpsppass.$$.log -msglevel all=0:avsync=5 || clean_tmp echo -e "\e[32mPutting all together\e[39;49m" cp /usr/lib/gpac/empty.psp "$1" MP4Box -fps 24.975 -add /tmp/video.$$.264 -add /tmp/audio.$$_track1.aac "$1" || clean_tmp echo -e "Saved to \e[32m$1\e[39;49m" clean_tmp