Skip to content

Instantly share code, notes, and snippets.

@mnot
Created September 20, 2010 06:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mnot/587514 to your computer and use it in GitHub Desktop.
Save mnot/587514 to your computer and use it in GitHub Desktop.
rip.sh
#!/bin/sh
DVD_DIR=/misc/dvd
NAS_DIR=/misc/media
DO_LO=1
DO_HI=1
DO_LIST=0
TRACK_NO=0
REGION=0
usage() {
echo >&2 "Usage: $0 -l";
echo >&2 "Usage: $0 [ -i | -d ] [ -t track_no ] [ -r region ] output_file";
echo >&2 " -i rip only for iPhone / iPod";
echo >&2 " -d rip only for DLNA";
echo >&2 " -l show tracks";
echo >&2 " -r region";
echo >&2 " -t track number to rip (default: longest)";
exit 1;
};
die() {
echo >&2 "ERROR: $1";
exit 1;
}
set -- $(getopt hidlt:r: "$@")
if [ $? -ne 0 ] ; then
usage;
fi
for o
do case "$o" in
-h) usage; shift;;
-i) DO_HI=0; shift;;
-d) DO_LO=0; shift;;
-l) DO_LIST=1; shift;;
-t) shift; TRACK_NO="$1"; shift;;
-r) shift; REGION="$1"; shift;;
--) shift; break;;
esac
done
if [ "${TRACK_NO}" != 0 ] ; then
TRACK="-t ${TRACK_NO}";
else
TRACK="-L";
fi
if [ ${DO_LIST} = 1 ] ; then
# list tracks
LD_LIBRARY_PATH=/usr/local/lib HandBrakeCLI -i ${DVD_DIR}/VIDEO_TS/ -t 0 2>&1 | egrep ^\ \*\\+;
exit;
fi
if [ ! ${SSH_AGENT_PID} ] ; then
eval `ssh-agent`;
ssh-add;
fi
if [ ${DO_LO} = 1 ] ; then
# iPhone / iPod
TARGET="${@}.mp4"
LD_LIBRARY_PATH=/usr/local/lib HandBrakeCLI -i ${DVD_DIR}/VIDEO_TS/ \
-o "${TARGET}" ${TRACK} --preset="iPhone & iPod Touch" || die;
cp "${TARGET}" "${NAS_DIR}/iPhone\ Video/";
rm -f "${TARGET}"
fi
if [ ${DO_HI} = 1 ] ; then
# Film
TARGET="${@}.mpeg";
THUMB="${NAS_DIR}/DLNA/${@}.jpg";
VID_OPTS="-lavcopts vcodec=mpeg2video:vrc_buf_size=1835:vrc_maxrate=3500:vbitrate=2500:keyint=15:trell:mbd=2:precmp=0:subcmp=3:cmp=3:dia=2:cbp:mv0:vqmin=1:lmin=1:dc=10:vstrict=0:threads=4";
EXTRA_VF="";
REG_OPT="";
if [ ${REGION} = 1 ] ; then
REG_OPT="-ofps 24000/1001";
EXTRA_VF="pullup,softskip,";
else
REG_OPT="-noskip -mc 0";
fi
mencoder dvd://${TRACK_NO} -of mpeg \
-channels 6 -oac lavc -lavcopts acodec=ac3:abitrate=384 -aid 128 \
-ovc lavc $VID_OPTS \
${REG_OPT} \
-vf ${EXTRA_VF}harddup \
-o "${TARGET}" || die;
ffmpegthumbnailer -i "${TARGET}" -o "${THUMB}" || die;
cp "${TARGET}" "${NAS_DIR}/DLNA/";
rm -f "${TARGET}";
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment