#!/bin/bash echo -e "palmrest 0.1\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 user if [ -z "$1" ] then echo -e "* Choose a workflow (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: (leave out bitrate/quality)\r" read HBCOMMAND echo -e "\n* Now, enter a quality in decimal form (1% is 0.01, 75% is 0.75)\r" read QUALITY echo -e "\n* Finally, enter a name for the stats file to store on your desktop.\r" read LOGNAME echo -e "\n* Oh yeah. What's your username?\r" read USERNAME else HBCOMMAND="$1" QUALITY="$2" LOGNAME="$4" USERNAME="$3" WORKFLOW="$5" #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" fi fi 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 "LOGNAME: $LOGNAME\r" echo -e "USERNAME: $USERNAME\r" echo -e "PASS 1: $HBCOMMAND -q $QUALITY -Q -a none -x pass=1:stats=/Users/$USERNAME/Desktop/$LOGNAME" echo -e "\nOkay, starting the jobs now.\r" echo -e "-----\r" if [ "$WORKFLOW" == "1" ] then echo -e "\rTESTING WORKFLOW ONE CONDITIONAL\r" ###### 1 CRF, 1 ABR ####### ##### (good, fast) ####### ((($HBCOMMAND -q $QUALITY -a none -x pass=1:stats=/Users/$USERNAME/Desktop/$LOGNAME) 3>&1 1>&2 2>&3 | tee /tmp/palmrestlog.txt) 3>&1 1>&2 2>&3) echo -e "PASS 2: $HBCOMMAND -b `cat /tmp/palmrestlog.txt | grep kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}'` -a 1 -x pass=2:stats=/Users/$USERNAME/Desktop/$LOGNAME" $HBCOMMAND -b `cat /tmp/palmrestlog.txt | grep kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}'` -a 1 -x pass=2:stats=/Users/$USERNAME/Desktop/$LOGNAME elif [ "$WORKFLOW" == "2" ] then echo -e "\rTESTING WORKFLOW TWO CONDITIONAL\r" ###### 1 CRF, 2 ABR ####### ##### (better, slow) ##### ((($HBCOMMAND -q $QUALITY -a none) 3>&1 1>&2 2>&3 | tee /tmp/palmrestlog.txt) 3>&1 1>&2 2>&3) echo -e "PASS 2: $HBCOMMAND -b `cat /tmp/palmrestlog.txt | grep kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}'` -a 1 -2" $HBCOMMAND -b `cat /tmp/palmrestlog.txt | grep kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}'` -a 1 -2 elif [ "$WORKFLOW" == "3" ] then echo -e "\rTESTING WORKFLOW THREE CONDITIONAL\r" ###### 1 CRF, 2 ABR, n-pass ####### ########## (best, slow) ########## ((($HBCOMMAND -q $QUALITY -a none -x pass=1:stats=/Users/$USERNAME/Desktop/$LOGNAME) 3>&1 1>&2 2>&3 | tee /tmp/palmrestlog.txt) 3>&1 1>&2 2>&3) echo -e "PASS 2: $HBCOMMAND -b `cat /tmp/palmrestlog.txt | grep kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}'` -a none -x pass=3:stats=/Users/$USERNAME/Desktop/$LOGNAME" $HBCOMMAND -b `cat /tmp/palmrestlog.txt | grep kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}'` -a none -x pass=3:stats=/Users/$USERNAME/Desktop/$LOGNAME echo -e "PASS 3: $HBCOMMAND -b `cat /tmp/palmrestlog.txt | grep kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}'` -a 1 -x pass=2:stats=/Users/$USERNAME/Desktop/$LOGNAME" $HBCOMMAND -b `cat /tmp/palmrestlog.txt | grep kb/s:*| awk '{print $NF}' | awk -F\: '{print $2}'` -a 1 -x pass=2:stats=/Users/$USERNAME/Desktop/$LOGNAME fi