Here is a version with palettegen but only 2 seconds to fit the 2MiB upload limit: Image info: 1.3MB, 75 frames, 512x288 apparent size, coalesced (has minimal effect however, because footage pans slightly from the start), conversion time on a Lenovo P51: 2.3s. STS-132_Liftoff_Space_Shuttle_Atlantis.gif If you want to see the result quality of a video camera video from Wikimedia Commons with a similar command: wget įfmpeg -i STS-132_Liftoff_Space_Shuttle_Atlantis.ogv -r 15 -vf scale=512:-1 \ With smaller GIFs, the lower framerate is less noticeable, and so we can skip some frames and make smaller GIFs. I recommend this option because video formats usually have a higher framerate due to the larger resolution. The input FPS can be found with ffprobe, and the total number of input frames can be found with mediainfo as explained at: The perceived output FPS is adjusted to match the input however, so you won't notice a speedup, only greater granularity. The original video height can be found for example with ffprobe: and is 1024 x 1024 in our case.įor example, the original video was 30 FPS, so -r 15 means that ffmpeg will pick one frame in every 2 ( = 30 / 15).
If you remove this option, the output GIF has the same height as the input video. This is a common use case for images for the web, which tend to have much smaller resolution than video. vf scale=512:-1: make the output 512 pixels in height, and adjust width to maintain the aspect ratio. No, GIFs are not the best way to pirate distribute videos online. ss 00:00:03 -to 00:00:06: start and end time to cut the video from. We could also play with documented palettegen parameters like palettegen=max_colors=16 to achieve different size quality trade-off points.
TODO: why does simply choosing a palette increase the image size? Is it because now more colors so we need more bits per color? How to observe each palette?
You likely want to use something like: sudo apt install ffmpeg
Ffmpeg 3.4.4 can do it directly on Ubuntu 18.04