>>107954735
>>107954719
Specifically I have this script. It's a bit crap but you can probably adapt it:
#!/data/data/com.termux/files/usr/bin/sh
ext="$(echo "$1" | rev | awk -F "." '{print $1}' | rev)"
f="$(printf "%s" "$1" | sed "s|.${ext}\$||g")"
fps="$(ffprobe "$1" 2>&1 | grep -F Video | grep -F Stream\ \#0 | tail -1 | grep -ohE "[0-9]+\.?[0-9]+? fps" | awk '{print $1}')"
[ -n "$ext" ] || exit 1
[ "$ext" = "mkv" ] && exit 1
[ -n "$f" ] || exit 1
[ -n "$fps" ] || exit 1
set -x
DURATION="-t 00:00:02.75"
DURATION="-t 00:00:02.85"
DURATION="-t 00:00:02.87"
LOOP="-loop 0"
ffmpeg -i "${f}.${ext}" $DURATION -c:v ffv1 -an -y "${f}.mkv"
ffmpeg -i "${f}".mkv -filter_complex "fps=${fps},split[v1][v2]; [v1]palettegen=stats_mode=full [palette]; [v2][palette]paletteuse=dither=sierra2_4a" -vsync 0 ${LOOP} "${f}".gif