Note: This site is currently "Under construction". I'm migrating to a new version of my site building software. Lots of things are in a state of disrepair as a result (for example, footnote links aren't working). It's all part of the process of building in public. Most things should still be readable though.

Remove Black Borders When Making A GIF In ffmpeg

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

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