#!/bin/bash __usage="Usage: $(basename $0) FILE [ssh alias] Options: [FILE], Input video file [ssh alias], The alias setup in ~/.ssh/config (default location) See: ssh_config(5) -d, Delete origional file Notes: The file will be copied to the remote computer and then the new file movied to the local computer. This can use lots of bandwidth. Plan accordingly. " if [[ -z $1 ]]; then echo "$__usage" echo "Pass the file to encode as the first argument." exit fi if [[ -z $2 ]]; then echo "$__usage" echo "Pass the ssh alias of the remote device as the second argument." exit fi FILE=$1 BASE=$(basename "$FILE") OTHER=$2 EXTENSION=".new.mp4" TEMP="/tmp/" # don't put in a dir with spaces # move file to other's temp drive scp "$FILE" $OTHER:$TEMP # use ffmpeg to encode on other computer ssh $OTHER "ffmpeg -y -i $TEMP\"$BASE\" -vcodec hevc -filter:v scale=-2:720 $TEMP\"$BASE\"$EXTENSION" # move file back scp $OTHER:$TEMP"$BASE"$EXTENSION "$FILE"$EXTENSION # delete temp file ssh $OTHER "rm $TEMP\"$FILE\"; rm $TEMP\"$FILE\"$EXTENSION" if [[ $3 == "-d" ]]; rm $FILE then