notes/video to animated gif-31zKmQCq.sh
#!/bin/bash

#Created by Kris Occhipinti 

#Copyright September 2018
#http://filmsbykris.com

#License - GPLv3 https://www.gnu.org/licenses/gpl-3.0.txt

dir="$HOME/storage/dcim/Camera/"
output="$(date +%s)"
open="termux-open"

#image scale size

scale=320

#frame rate
rate=10


#move to photo dir

cd "$dir"

#if r argument, then create reverse loop

if [ "$1" = "r" ]
then
  reverse=true
fi

#shopt -nullglob

files=( *.mp4 )

let x=0;
for i in "${files[@]}"
do
  echo "$x)$i"
  let x++
done

echo -n "Select a number: "
read vid

v="${files[vid]}"

function progress(){
  while [ $convert ]
  do
    sleep 1
    clear
    echo "Creating Loop..."
    ls -la ${output}_loop.gif|awk '{print $5}'
  done
}

#does file exist?
if [ -f "$v" ]
then
  pal="$HOME/pal.png"

  rm $pal
  ffmpeg -i $v -vf \ fps=15,scale=320:-1:flags=lanczos,palettegen $pal
  #if reverse if true, make reverse loop 
  if [ $reverse ]

  then
    ffmpeg -i "$v" -filter_complex \
      "[0:v]reverse,fifo[r];[0:v][0:a][r] [0:a]concat=n=2:v=1:a=1 [v] [a]"\
      -map "[v]" -map "[a]" -r $rate $output.mp4

    ffmpeg -i "$output.mp4" -i $pal -filter_complex "fps=$rate,scale=$scale:-1:flags=lanczos[x];[x][1:v]paletteuse" $output.gif
    #ffmpeg -i "$output.mp4" -vf scale=$scale:-1  -r $rate $output.gif

    rm "$output.mp4"
  else
    ffmpeg -i "$v" -i $pal -filter_complex "fps=$rate,scale=$scale:-1:flags=lanczos[x];[x][1:v]paletteuse" $output.gif
    #ffmpeg -i "$v" -vf scale=$scale:-1 -r $rate $output.gif

  fi

else
  echo "Bad selection"
  exit 1
fi

$open $output.gif

rm $pal
clear
ls -lh $output.gif

syntax highlighted by Code2HTML, v. 0.9.1