Skip to content

Instantly share code, notes, and snippets.

@pm0u
Created September 22, 2025 22:19
Show Gist options
  • Select an option

  • Save pm0u/606049e83ae2a438aa3f445305ba4226 to your computer and use it in GitHub Desktop.

Select an option

Save pm0u/606049e83ae2a438aa3f445305ba4226 to your computer and use it in GitHub Desktop.
convert script
#! /bin/bash
PORTRAIT=0;
WIDTH=-2;
HEIGHT=-2;
FRAMERATE=18
while [[ $# -gt 0 ]]; do
case $1 in
-p)
PORTRAIT=1;
shift;
;;
-d|--dimensions)
DIMENSIONS=$2;
shift;
shift;
;;
-w|--width)
WIDTH="$2";
shift;
shift;
;;
-h|--height)
HEIGHT="$2";
shift;
shift;
;;
-r|--framerate)
FRAMERATE="$2";
shift;
shift;
;;
*)
FILE="$1";
shift;
;;
esac
done
if [[ "$PORTRAIT" -eq "0" ]]; then
DIMENSIONS="1280:-2";
else
DIMENSIONS="480:-2";
fi
if [[ "$WIDTH" -gt 0 || "$HEIGHT" -gt 0 ]]; then
DIMENSIONS="$WIDTH:$HEIGHT"
fi
FILENAME_WITHOUT_EXT="${FILE%.*}"
OUTFILE="$FILENAME_WITHOUT_EXT.gif"
ffmpeg -i "$FILE" -pix_fmt rgb8 -r $FRAMERATE -vf scale="$DIMENSIONS" "$FILENAME_WITHOUT_EXT".gif && \
gifsicle -O3 "$FILENAME_WITHOUT_EXT".gif -o "$FILENAME_WITHOUT_EXT".gif
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment