All pastes #86995 Raw Edit

dvd2psp

public text v1 · immutable
·published 2006-07-13 14:36 UTC
rendered paste body
#!/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 <path/to/file.psp>"

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