All pastes #438749 Raw Edit

palmrest 0.2

public shellscript v1 · immutable
·published 2007-04-13 20:41 UTC
rendered paste body
#!/bin/bashecho -e "palmrest 0.2\r"echo -e "-----\r"echo -e "This script takes in a HandBrakeCLI command, a quality percentage, and\r"echo -e "a stats file name. From those, it executes a CRF pass, then uses the\r"echo -e "statistics from that to do a(n) ABR pass(es). The bitrate of the ABR\r"echo -e "pass(es) is taken from the output bitrate of the CRF rip.\r"echo -e "-----\r"#Enable interactive mode if the arguments weren't provided by the userif [ -z "$1" ]then    echo -e "\n* Choose a workflow\r"    echo -e " (just enter the number for the one you want to use):\r"    echo -e "* 1: 1 CRF, 1 ABR (fastest)\r"    echo -e "* 2: 1 CRF, 2 ABR (needlessly slow)\r"    echo -e "* 3: 1 CRF linked to 2 ABR (most precise)\r"    read WORKFLOW    echo -e "\n* Enter a HandBrake command and hit return:\r"    echo -e " (omit bitrate/quality and output destination)\r"    read HBCOMMAND    echo -e "\n* Provide a quality in decimal form:\r"    echo -e " (1% is 0.01, 75% is 0.75)\r"    read QUALITY    echo -e "\n* Input a base name for the files.\r"    echo -e " (on the desktop, in /tmp, and the output movie)\r"    read BASENAME    echo -e "\n* Where should the output movie go?\r"    echo -e " (default: $HOME/Movies)\r"    read DESTINATION    echo -e "\n* Any extra x264 options?\r"    read X264OPTIONSelse    HBCOMMAND="$1"    QUALITY="$2"    BASENAME="$3"    DESTINATION="$4"    WORKFLOW="$5"    X264OPTIONS="$6"        #When the user doesn't specify a workflow at the prompt, use the fastest    if [ "$5" == "" ]    then        echo -e "\rUsing default workflow: 1 CRF, 1 ABR\r"        WORKFLOW="1"    fifi#These options will be applied to the first pass(es) to double the speed at minimal bitrate increase.TURBO="subme=1:me=dia:trellis=0:analyse=none"echo -e "\n Well, here's what I've got...\r"echo -e "-----\r"echo -e "WORKFLOW: $WORKFLOW\r"echo -e "HBCOMMAND: $HBCOMMAND\r"echo -e "QUALITY: $QUALITY\r"echo -e "BASENAME: $BASENAME\r"echo -e "USERNAME: $USER\r"echo -e "X264OPTIONS: $X264OPTIONS\r"echo -e "TURBO: $TURBO\r"echo -e "\nPASS 1: $HBCOMMAND -o $DESTINATION/$BASENAME.mp4 -q $QUALITY -Q -a none -x $X264OPTIONS:$TURBO:pass=1:stats=$HOME/Desktop/$BASENAME.stats"echo -e "\nOkay, starting the jobs now.\r"echo -e "-----\r"if [ "$WORKFLOW" == "1" ]then    echo -e "\rMODE 1: 1 CRF, 1 ABR (fastest)\r"        ###### 1 CRF, 1 ABR #######    ##### (good, fast) #######        ((($HBCOMMAND -o $DESTINATION/$BASENAME.mp4 -q $QUALITY -a none -x $X264OPTIONS:$TURBO:pass=1:stats=$HOME/Desktop/$BASENAME.stats) 3>&1 1>&2 2>&3 | tee /tmp/$BASENAME.log) 3>&1 1>&2 2>&3)    echo -e "PASS 2: $HBCOMMAND -o $DESTINATION/$BASENAME.mp4 -b $(cat /tmp/$BASENAME.log | grep    kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}') -a 1 -x $X264OPTIONS:pass=2:stats=$HOME/Desktop/$BASENAME.stats"    $HBCOMMAND -o $DESTINATION/$BASENAME.mp4 -b $(cat /tmp/$BASENAME.log | grep    kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}') -a 1 -x $X264OPTIONS:pass=2:stats=$HOME/Desktop/$BASENAME.stats    elif [ "$WORKFLOW" == "2" ]then    echo -e "\rMODE 2: 1 CRF, 2 ABR (needlessly slow)\r"        ###### 1 CRF, 2 ABR #######     ##### (better, slow) #####    ((($HBCOMMAND -o $DESTINATION/$BASENAME.mp4 -q $QUALITY -a none -x $X264OPTIONS:$TURBO) 3>&1 1>&2 2>&3 | tee /tmp/$BASENAME.log) 3>&1 1>&2 2>&3)    echo -e "PASS 2: $HBCOMMAND -o $DESTINATION/$BASENAME.mp4 -b $(cat /tmp/$BASENAME.log | grep    kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}') -a 1 -2 -x $X264OPTIONS"    $HBCOMMAND -o $DESTINATION/$BASENAME.mp4 -b $(cat /tmp/$BASENAME.log | grep    kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}') -a 1 -2 -x $X264OPTIONS    elif [ "$WORKFLOW" == "3" ]then    echo -e "\rMODE 3: 1 CRF linked to 2 ABR (most precise)\r"    ###### 1 CRF, 2 ABR, n-pass #######    ########## (best, slow) ##########    ((($HBCOMMAND -o $DESTINATION/$BASENAME.mp4 -q $QUALITY -a none -x $X264OPTIONS:$TURBO:pass=1:stats=$HOME/Desktop/$BASENAME.stats) 3>&1 1>&2 2>&3 | tee /tmp/$BASENAME.log) 3>&1 1>&2 2>&3)      echo -e "PASS 2: $HBCOMMAND -o $DESTINATION/$BASENAME.mp4 -b $(cat /tmp/$BASENAME.log | grep    kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}') -a none -x $X264OPTIONS:$TURBO:pass=3:stats=$HOME/Desktop/$BASENAME.stats"        $HBCOMMAND -o $DESTINATION/$BASENAME.mp4 -b $(cat /tmp/$BASENAME.log | grep    kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}') -a none -x $X264OPTIONS:$TURBO:pass=3:stats=$HOME/Desktop/$BASENAME.stats    echo -e "PASS 3: $HBCOMMAND -o $DESTINATION/$BASENAME.mp4 -b $(cat /tmp/$BASENAME.log | grep    kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}') -a 1 -x $X264OPTIONS:pass=2:stats=$HOME/Desktop/$BASENAME.stats"        $HBCOMMAND -o $DESTINATION/$BASENAME.mp4 -b $(cat /tmp/$BASENAME.log | grep    kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}') -a 1 -x $X264OPTIONS:pass=2:stats=$HOME/Desktop/$BASENAME.statsfi