Google Analytics helps us understand which tools you use and which actions work. Your files and entered text stay out of analytics.

How to make a GIF from a video or photos

Choose the moment first. Then balance its timing, colour and file size.

Free toolGIF MakerMake GIFs from videos, photos or existing GIFs. Trim, caption and preview the real file size before saving.Open the GIF maker

The short answer

Open a video or image sequence in a GIF maker, keep a short loop, preview it and export. Start around 480 pixels on the longest edge and 10 to 15 fps for video, then adjust for your footage.

  1. Keep one complete action

    Choose a small gesture, a product movement or a short demonstration. Cut unrelated setup and empty time.

  2. Set a readable canvas

    Crop distractions, keep important text large and check the first frame. Use fewer frames for slower movement.

  3. Check the encoded output

    Look at the actual GIF, not just the video preview. Confirm colour, timing and the byte count before sharing.

Make a GIF from video

Select a start and end time around the action you want to repeat. A local browser tool can decode a supported video without uploading it.

MP4 with H.264 video is a practical starting point. MOV describes a container, so two MOV files can use different codecs. Convert unsupported footage with a trusted local video app before importing it.

Clip typeStarting choiceCheck before saving
A small reactionTwo or three seconds, 320 to 480 pixels, 10 to 15 fps.The expression remains clear after resizing.
A screen demonstrationA tight crop around the relevant control.Small text survives colour reduction and scaling.
A quick movementTry 20 or 25 fps if a lower rate looks jerky.The smoother version is worth its extra size.

Make a GIF from photos or drawings

Arrange the images in the order they should appear and assign each a display time. A shared canvas avoids abrupt changes in dimensions.

For a slideshow, try 500 to 1,000 ms per image. Drawings that form a moving action need shorter delays. Hold a final explanation frame longer so there is time to read it.

  • Use Fill & crop when every image should cover the same shape.
  • Use Fit whole image when cropping would lose something important.
  • Keep a transparent background only when hard transparent edges are acceptable. GIF has no partial transparency.
  • For a back-and-forth loop, avoid doubling both endpoint frames. Otherwise the movement pauses at each turn.

Frame rate and speed are different choices

Frame rate chooses how many pictures represent the action. Playback speed chooses how long those pictures remain visible.

A two-second selection sampled at 15 fps contains 30 frames. Playing those frames at 2× keeps all 30 pictures but aims for a one-second loop. Sampling at 10 fps instead uses 20 pictures while keeping the action near two seconds.

Two-second sourcePicturesDesired frame delay
10 fps, 1×20100 ms
15 fps, 1×30About 66.7 ms
15 fps, 2×30About 33.3 ms

GIF stores delays in hundredths of a second. Floi distributes 10 ms rounding across frames so the total duration stays close to the requested pace. Very short delays are avoided because receiving software may play them inconsistently.

Reduce file size without guessing

Shorten the loop and reduce pixel dimensions before sacrificing lots of colour. Those choices usually remove more work than a small quality adjustment.

Less area

Changing 640×360 to 320×180 leaves one quarter of the pixels per frame. It does not guarantee one quarter of the encoded bytes.

Fewer pictures

Lowering a two-second clip from 20 fps to 10 fps halves its sampled frames. Slow movement may still read clearly.

A simpler palette

Try 128 or 64 colours for flat artwork. Keep 256 for photos when the smaller palette causes distracting colour changes.

Dithering can make gradients less banded, but its pattern is harder to compress. Compare the encoded GIF with dithering on and off. A live composition preview cannot show this tradeoff until encoding happens.

A worked loop you can reproduce

Floi’s Try a sample creates twelve drawings of a bouncing character. Their starting delay is 80 ms each, so a forward loop lasts 960 ms.

Back & forth adds the ten interior frames in reverse order. That produces 22 frames and a 1,760 ms loop at 1× speed. Changing the longest edge alters the dimensions while keeping those timing decisions intact.

Try thisExpected behaviour
Forward, 1×12 frames, 0.96 seconds per pass.
Back & forth, 1×22 frames, 1.76 seconds per pass.
Forward, 2×12 frames, 0.48 seconds per pass.
Fit under 256 KiBEncodes and compares actual bytes. If it reduces dimensions or colours, those settings appear beside the result.

On 4 October 2026, the sample exported as 74,754 bytes in Chrome on macOS. Settings were 480×300, 256 colours, dithering on, no added caption and forward playback. Choose Try a sample and Balanced. Set Repeat to Forever and Fit to file size to Keep my settings, then select Make GIF.

This checks one generated loop, not typical compression or export speed. Its timing follows the twelve source delays. Your footage may need a different palette or a much larger file.

Which method fits your task?

Choose the method by your source, privacy needs and editing requirements. No single GIF maker is best for every clip.

MethodUseful whenTradeoff
floiYou want local video/photo editing, captions and an encoded-size check together.Browser codecs and explicit memory/frame limits apply. No website URL input or mixed video/photo sequence.
EzgifYou need its wider range of format converters and animation tools.Its observed workflow stores the processed media on its server. Text, crop and optimisation use subsequent tools.
GifmakeYou want an image/GIF frame editor with drawing and individual timing.The page lists 8 MB per input and 250 frames. It claims local processing; that network claim was not independently tested here.
GifskiYou want a dedicated video-to-GIF encoder to assess on photographic footage.It is not the same kind of in-browser caption and image-sequence editor.
FFmpegYou need local batch conversions and repeatable command-line settings.You must choose the filters and validate the output yourself.

The web-tool observations were made in October 2026. Their published features and limits can change. No same-input quality or timing comparison was completed, so this table does not rank their output quality.

Make a GIF locally with FFmpeg

Generate a palette from your chosen clip, then apply it to the same sampled frames. This gives you repeatable settings without a browser editor.

ffmpeg -ss 1 -t 2 -i input.mp4 -filter_complex "[0:v]fps=15,scale=480:-1:flags=lanczos,split[a][b];[a]palettegen[p];[b][p]paletteuse=dither=sierra2_4a" -loop 0 output.gif

This example starts one second into the source and selects two seconds. It samples at 15 fps and sets a 480-pixel width. -loop 0 repeats forever. Rename the input and output paths for your files.

Use the FFmpeg palette filters documentation to change dithering or palette generation. The GIF89a specification explains palette and delay storage.

When keeping video is the better choice

Keep MP4 or WebM when sound, long playback or photographic quality matters more than GIF compatibility. A small video can look better than a much larger GIF.

For instructions that need sound and timed words, use the subtitle editor. For one still frame, use the frame extractor rather than encoding a whole loop.

Frequently asked questions

What is the best free GIF maker?

The best choice depends on the job. Floi gives you a local editor with an encoded preview and optional size fitting. Ezgif offers a wider selection of format converters. Gifski is worth considering for video with difficult gradients. FFmpeg suits repeatable batch conversions. Compare an exported sample from your own footage before choosing.

Why is my GIF much larger than the MP4?

MP4 can describe motion using changes between video frames. GIF uses a limited palette and lossless compression of indexed image data. A detailed scene repeated across many frames can be expensive. Shorten the loop and reduce dimensions first. If the destination accepts video, keeping MP4 may be the better decision.

Why does my GIF look grainy or have bands?

Each GIF frame has at most 256 palette entries. A sky or shadow can contain far more colour shades. Without dithering, those shades may become visible bands. Dithering spreads the error into a dot pattern. That can soften bands while adding grain and increasing file size. Check both versions at the size people will see.

Can I use the same GIF in email and social media?

Test the actual destination. Some email clients or previews show only a still frame. Social platforms may convert the GIF to video or restrict animation in avatars, stickers and emoji. Make the first frame meaningful, keep essential text visible and check the platform’s current size requirements.

↑↓ move↵ openesc close