

When opening the palette file with an image viewer (here Nomacs) a 16x16 pixel colour table is showing: The created file is very small, simply containing color ~ $ du -h /tmp/palette.png This should greatly reduce the resulting GIF size.įirst to create a palette ~ $ ffmpeg -i /tmp/Video.mp4 -vf "fps=15,palettegen=stats_mode=diff" /tmp/palette.png The goal with this method is to create a base image and all the changes (movements) are applied as layers on top of the base image.
Gifsicle loop gif series#
GIF also only allows 256 colors per still image - this means that additional colours (coming from a video file, which is basically a series of jpeg pictures) need to be coped with more gif images (adding the additional colours) in between.Īnother method of creating a GIF is by extracting a "colour palette" of the video first (see this excellent blog post from Cassidy K for more detailed information). GIF was created for graphics, as the name says. The Graphics Interchange Format (GIF) however was never made for photos/pictures. Most modern video codecs and JPEG pictures use a compression level (which can be adjusted). Why is the final GIF larger than the video? The additional parameters -vf "fps10" tell ffmpeg to use 10 frames per second and -loop 0 creates an infinite "play" of the GIF.īut something is bothering: The file size of the ~ $ du -h /tmp/output3.gif The hidden secret is that ffmpeg automatically detects that it should create a GIF from the file suffix (.gif). The difference in size of the original (VID_20200921_083738.mp4) and the scaled video (Video.mp4) speaks for ~ $ du -h /tmp/V*Īlright, now that we have a small sized video file, this one can be used to create an animated GIF.Įxporting and converting the video into an animated gif is actually much easier than one would think ~ $ ffmpeg -i /tmp/Video.mp4 -vf "fps=10" -loop 0 /tmp/output3.gif In this example, the video is scaled to a 320 pixel width and a dynamic height (keeping the same aspect ~ $ ffmpeg -i /tmp/VID_20200921_083738.mp4 -vf scale=320:-1 /tmp/Video.mp4 The source video should first be resized (scaled) to a more common GIF size.
Gifsicle loop gif full#
What aĬome-back the GIFs have made since the flashy websites in the 90s! Resize the original videoĪs mentioned, GIFs (should be) are small in size but a recorded video with a high resolution (such as Full HD) are way too big. (Animated) GIFs are by nature rather small in size - these days they'veīecome a way to express emotions or reactions in social media. It allows to do all kinds of manipulations to a video, such as changing the video or audio codecs, resize (scale) the video, change bitrate or frames per second rate and many many more.īut ffmpeg can also be used to export the video into an animated GIF.


Published on September 21st 2020 - Listed in Multimedia Linuxįfmpeg is the Swiss Army Knife when it comes to video manipulation on the command line. Create an animated gif from a video source using ffmpeg, imagemagick and gifsicle
