home
NOTE: Under Construction - I'm in the middle of upgrading my site and lots of stuff is kinda broken. Please forgive the mess.

Remove Black Borders When Making A GIF In ffmpeg

This is a one liner that finds the area to crop and then does it:

May 2021
Code
ffmpeg -i "input.mp4" -t 1 \
-vf cropdetect -f null - 2>&1 | \
awk '/crop/ { print $NF }' | \
tail -1 | xargs -I{} ffmpeg \
-ss 25 -t 9.2 -i "input.mp4" \
-vf "{},fps=11,scale=380:-2:flags=lanczos,split[s0][s1];[s0]palettegen=max_colors=52[p];[s1][p]paletteuse" \
-y "output.gif"

Old notes

Code
ffmpeg -i input.mp4 -t 1 -vf cropdetect -f null - 2>&1 | awk '/crop/ { print $NF }' | tail -1

which will give you something like:

Results
crop=2912:1696:52:196

which you use like this:

Code
ffmpeg -ss 0 -i input.mp4 -vf "crop=2912:1696:52:196,fps=30,scale=800:-2:flags=lanczos,split[s0][s1];[s0]palettegen[p];[s1][p]paletteuse" -loop 0 -hide_banner -loglevel warning -y output.gif

This works for .webp too - not sure how the color stuff works with it though if it's the best way to do the pallet stuff or not.

═══ § ═══