#!/usr/bin/env bash set -e INPUT="$1" OUT="${2:-output.gif}" TMP_PALETTE="$(mktemp /tmp/palette.XXXX.png)" ffmpeg -y -i "$INPUT" \ -vf "fps=15,scale=900:-2:flags=lanczos,palettegen=max_colors=256:stats_mode=diff" \ "$TMP_PALETTE" ffmpeg -y -i "$INPUT" -i "$TMP_PALETTE" \ -lavfi "fps=15,scale=900:-2:flags=lanczos [x]; [x][1:v] paletteuse=dither=bayer:bayer_scale=5" \ "$OUT" rm "$TMP_PALETTE"