How to Make a GIF from a Video: Size, Frame Rate and Loop Tips
To make a GIF from a video, pick a moment of two to six seconds, scale it to 320–640 px wide, drop the frame rate to 10–15 fps and let the converter build a 256-color palette from that clip. Those four choices decide whether you get a crisp 2 MB loop or a 30 MB file that no chat app will accept.
What a GIF file actually stores
GIF is older than the web. CompuServe published the first version, GIF87a, in 1987 as a way to send still pictures over dial-up connections, and the 1989 revision, GIF89a, added the two features that made animation possible: a delay value for each frame and one transparent color. Looping came later, in 1995, when Netscape Navigator 2.0 started reading a small application extension that says how many times to repeat. Every animated GIF today is still a GIF89a file with that block inside, which is why it plays in practically every browser and mail client.
Inside, a GIF is a stack of indexed images. Each frame points at a color table of at most 256 entries, so a frame can show 256 different colors and no more, even though the video it came from had millions. The pixels are then compressed with LZW, a lossless dictionary method that works well on flat areas of a single color and badly on photographic noise, grain and gradients. Nothing is thrown away by LZW itself; the loss happens earlier, when millions of colors are squeezed into the palette.
There are two other things a GIF cannot hold. It has no audio track of any kind, so the sound in your video simply disappears. And its timing is coarse: delays are stored in hundredths of a second, and most browsers treat a delay of 0 or 1 hundredth as 10 hundredths, so a GIF built at 50 fps or faster plays slower, not smoother. In practice, 10 to 25 fps is the useful range.
- GIF89a adds animation
- 1989
- Colors per frame, at most
- 256
- Smallest delay step
- 1/100 s
- Audio tracks
- 0
Why GIFs balloon, and the order to cut them
A modern video codec such as H.264 stores a full picture only now and then and describes most frames as small changes from the one before. GIF can do a little of that by updating only a rectangle of the previous frame, but it has nothing like motion prediction. As soon as the camera moves, almost every pixel changes, and each frame is stored close to in full. That is why a 2 MB phone clip can become a 15 MB GIF, while a screen recording of a mouse moving over a still window stays tiny.
The size of a GIF is roughly width times height times frames, with a discount for how much stays still between frames. That makes the levers easy to rank. Length cuts frames one to one: four seconds instead of eight halves the file. Width cuts pixels quadratically: going from 640 px to 320 px leaves a quarter of the pixels in every frame. Frame rate cuts frames linearly again, and 12 fps holds up surprisingly well for gestures and faces. Fewer colors helps less than people expect, usually 10 to 30 percent, because LZW cares more about repeating patterns than about the palette size.
Dithering is the trade-off that confuses most people. It scatters dots of nearby palette colors to fake the shades the palette lacks, which hides banding in skies and skin but adds the kind of fine noise LZW compresses poorly. Turn it off for screen recordings, cartoons and UI demos, where flat color is the truth anyway, and keep it on for real footage. Cropping is the last lever: cutting away a static border or a black letterbox removes pixels without touching the subject.
- 1stShorten the clipEvery second removed takes its frames with it; 2–6 seconds covers most reactions.
- 2ndLower the widthHalf the width leaves a quarter of the pixels; 320–480 px suits a chat window.
- 3rdDrop the frame rate10–15 fps keeps motion readable; 8 fps suits slow screen recordings.
- 4thTrim colors and dithering64–128 colors without dithering for graphics; 256 with dithering for footage.
Choosing the start and end of the clip
Most GIFs that get shared are a single beat: a reaction, a goal, a button click and the screen that follows. Watch the video once with a stopwatch in your head and note the second where the beat starts and the second where it has clearly landed, then add a few frames on each side so the loop does not feel clipped. If the source is long, cut the range out first with a video trimmer and work on the short file;. On a converter, typing the times into Start at and End at in seconds or minutes:seconds does the same job without a separate step.
Think about where the GIF starts playing, too. Many chat apps and mail clients show the first frame while the file loads, and Outlook for Windows from 2007 to 2016 shows only the first frame and never animates. Start on a frame that makes sense as a still picture, not on a blur in the middle of a pan. If the message of the GIF is a caption or a result, hold that final moment for half a second by extending End at, so viewers can read it before the loop starts again.
TipShoot the source with the GIF in mind: hold the phone still, fill the frame with the subject and avoid zooming. A locked-off shot can be half the size of a handheld one at the same settings.
GIF size limits on Discord, Slack, GIPHY, X and Reddit
Where the GIF is going sets the budget before any setting does. Discord lowered its free upload limit to 10 MB per file in 2024, and that is the number most people hit first; Nitro Basic raises it to 50 MB and Nitro to 500 MB. GIPHY accepts uploads of up to 15 seconds and 100 MB. X takes GIFs up to 15 MB and turns them into a looping video on upload, and Reddit accepts GIFs up to 100 MB but also serves them as video. Slack takes files of up to 1 GB, but custom emoji must stay under 128 KB, which means a tiny width, a short loop and few colors.
Email is the odd one out. Gmail allows 25 MB of attachments per message and Outlook.com 20 MB, but a GIF placed inline in the body of a newsletter or signature should stay well under 1 MB so the message opens quickly on mobile data. In chat, aim for half the limit rather than right under it, since the people receiving it may be on slow connections. The numbers below were current in 2025; check the service's help page when a file sits right on the edge.
| Where it goes | Limit | What happens to the GIF |
|---|---|---|
| Discord, free account | 10 MB per file | Plays inline and loops |
| Discord Nitro Basic / Nitro | 50 MB / 500 MB | Plays inline and loops |
| Slack message / custom emoji | 1 GB / 128 KB | Animates inline unless the viewer turned animation off |
| GIPHY upload | 15 seconds, 100 MB | Served as GIF, MP4 and WebP renditions |
| X (Twitter) | 15 MB | Converted to a silent looping MP4 |
| 100 MB | Converted to video for playback | |
| Inline in an email | Under 1 MB recommended | Outlook 2007–2016 for Windows shows frame one only |
When MP4, WebM, WebP or APNG beat a GIF
The reason X converts every uploaded GIF into an MP4, and has done so since 2014, is bandwidth. The same five seconds that weigh 4 MB as a GIF typically fit in a few hundred kilobytes as H.264, with full color instead of 256 shades and no dithering noise. GIPHY and Tenor do the same: the GIF button in your keyboard usually fetches a small MP4 or WebP. So the honest question is not how to make the best GIF, but whether the place you are posting to needs a GIF at all.
Keep a real GIF when the destination shows images but not video: an email body, a GitHub README or issue, a Jira ticket, a wiki, an old forum, a slide deck that has to work in every viewer. Anywhere a video plays inline and muted, which covers most social networks and modern chat apps, an MP4 or WebM loop looks better and loads faster. On a web page you control, a <video autoplay muted loop playsinline> element behaves like a GIF and costs a fraction of the bytes.
Two image formats sit in between. Animated WebP, from Google, supports millions of colors and lossy compression and has played in Safari since version 14 in 2020, so it now works in every current browser, though many apps outside the browser still refuse it. APNG extends PNG with frames, keeps full color and real alpha transparency, and is what Apple and LINE use for animated stickers. If a GIF already exists and you only need it smaller for a site that plays video, turning the GIF back into an MP4 is usually the biggest single saving.
GIF
256 colors, no sound, large files, but shows as an image everywhere.
- Email bodies, READMEs, tickets and wikis
- Loops with no play button
- Worst size-to-quality ratio of the four
MP4 or WebM
Full color and motion compression, often a tenth of the size.
- Can keep the sound
- Autoplays muted on most social sites
- Not shown inline by most mail apps
Animated WebP or APNG
Full-color animated images; APNG adds smooth transparency.
- Work in every current browser
- Patchy support in desktop apps and mail
- APNG is common for stickers
Six ways to make a GIF from a video
Phones can do it without extra apps. On an iPhone, the Shortcuts app has a Make GIF action that accepts a video or a Live Photo, and a Live Photo with the Loop or Bounce effect is a quick way to shoot the source. Samsung's Gallery app shows a GIF button while a video is playing, which records the visible section as a GIF. The GIPHY app and its web GIF Maker trim, caption and upload in one place, but the result is public unless you only save it. In Photoshop, File > Import > Video Frames to Layers brings in up to 500 frames, and Export > Save for Web (Legacy) writes the GIF with palette and dither controls.
For full control and batch jobs, ffmpeg's two-pass palette method gives the cleanest result: the first filter scans the clip and builds a 256-color palette from its actual colors, the second maps every frame onto it. The one-liner below cuts five seconds starting at 0:02, scales to 480 px wide, samples 12 fps and loops forever. In a browser, the video to GIF converter does the same palette step with Width, Frame rate, Colors and Dithering controls, and the MP4 to GIF page opens it with MP4 preselected. Phone clips in MOV work the same way; if an app rejects them, read converting MOV to MP4 first.
iPhone
- 01In Shortcuts, build Select Photos → Make GIF → Save to Photo Album.
- 02Run it and pick the video or Live Photo; trim long clips in Photos first.
- 03Share the GIF from the Animated album in Photos.
Android
- 01Open the video in Samsung Gallery and tap GIF while it plays.
- 02Drag the handles to the section you want.
- 03Tap Save; on other phones, use a web converter in Chrome.
Desktop
- 01In Photoshop, choose File > Import > Video Frames to Layers.
- 02Set frame delay and Forever looping in the Timeline panel.
- 03Export with Save for Web (Legacy) as GIF, 128–256 colors.
ffmpeg -ss 2 -t 5 -i input.mp4 -vf "fps=12,scale=480:-1:flags=lanczos,split[a][b];[a]palettegen[p];[b][p]paletteuse" -loop 0 output.gif
Clean loops and a last quality check
A GIF loops forever by default because the Netscape extension is written with a repeat count of zero, which means infinite. Setting a count of one makes it play once and stop on its last frame, which suits a GIF that ends on a message. The harder part is making the loop invisible. Look for a stretch where the start and end frames are nearly identical, such as a wave that returns to the same position, or play the clip forward and then backward with Boomerang, which removes the jump at the cost of twice as many frames.
Before you send it, open the GIF at its real size in a browser tab, not as a thumbnail, and watch three full loops. Check that text in the frame is readable at the chosen width, that faces have not turned into posterized blotches, and that the timing matches the video. Then compare the file size with the limit in the table above; if it is close, go back to the cutting order of length, width, frame rate and colors. For longer clips or anything with sound, compressing a video for Discord and email is the better route.
Banding in skies, shadows and skin
The palette ran out of shades. Keep 256 colors and switch Dithering to Sierra or Floyd–Steinberg, or send an MP4 for gradient-heavy footage.
The GIF plays faster or slower than the video
Delays are stored in hundredths of a second. 10, 20 and 25 fps divide evenly; anything above 50 fps gets slowed down by browsers.
Text in the frame is unreadable
Raise the width to 640 px and lower the frame rate to compensate, or crop to the area with the text before converting.
A visible jump when the loop restarts
Move Start at and End at to frames that match, or turn on Boomerang and shorten the range by half.
Key takeaways
- A GIF holds at most 256 colors per frame, no audio and frame delays in hundredths of a second.
- Size follows length, width and frame rate; cut them in that order before touching colors.
- Aim for 2–6 seconds, 320–640 px and 10–15 fps; turn dithering off for screen recordings.
- Discord free takes 10 MB, X 15 MB, GIPHY 15 seconds and 100 MB, Slack emoji 128 KB.
- Where video plays inline, an MP4 or WebM loop is smaller and looks better than any GIF.
Frequently asked questions
What is the best frame rate for a GIF made from a video?
Between 10 and 15 fps for most clips. Fast sports or gaming footage can justify 20 fps; slow screen recordings look fine at 8 fps and come out much smaller.
How many seconds should a GIF be?
Two to six seconds covers almost every reaction, demo and highlight. Past ten seconds a GIF gets heavy quickly, and a short MP4 is usually the better file to share.
Is a GIF lossless?
The LZW compression inside a GIF is lossless, but the conversion is not, because millions of video colors are reduced to a palette of 256 per frame. That reduction is where banding and grain come from.
Why does X turn my GIF into a video?
X has converted uploaded GIFs into looping MP4 files since 2014 because the video is far smaller and keeps full color. The post still loops silently like a GIF.
Can I make a GIF from a YouTube video?
Only from a file you have on your device and the right to use. Download your own upload from YouTube Studio or use the original recording, then trim and convert it.
What is the difference between GIF and animated WebP?
Animated WebP supports millions of colors, lossy compression and smooth transparency, so it is usually much smaller. GIF works in more places, including email clients and older apps that ignore WebP.
Keep reading
How to Compress a Video for Discord and Email (10 MB and 25 MB)
Discord free takes 10 MB, Gmail 25 MB, Outlook 20 MB. Learn how bitrate and length set file size, which settings to change, and when a share link beats compression.
Mina Sato · Sep 16, 2026 · 11 min read
How to Convert MOV to MP4 on iPhone, Mac, Windows and Online
MOV and MP4 are near twins; the HEVC codec inside iPhone clips is what fails on Windows and Android. Free ways to convert, when quality stays exact, and fixes for common errors.
Mina Sato · Oct 5, 2026 · 11 min read
Instagram Post and Story Sizes in 2025: Every Dimension in Pixels
Instagram sizes for 2025: posts 1080 × 1350 (4:5) or 1080 × 1080, landscape 1080 × 566, Stories and Reels 1080 × 1920 with a 250 px safe zone, profile photo 320 × 320.
Jonas Weber · Oct 7, 2026 · 11 min read