Make a GIF from a video file
TubePull Video to GIF turns up to 30 seconds of a video into an animated GIF that loops forever. Choose the file, mark the part you want, pick a width and a frame rate, and press Start. The GIF is made on your own device, inside this browser tab. The video isn't uploaded, there's no account to sign up for, and the GIF carries no watermark. The defaults are 480 pixels wide at 15 frames per second, a good starting point for chats and forum posts. When the GIF is ready, the page shows it with its size before you save it. Your video and settings stay loaded, so you can try another width or frame rate without choosing the file again.
Choose the part that becomes the GIF
Once the video is loaded, the selection runs from the beginning to 30 seconds in, or to the end of a shorter video. Drag the two handles on the timeline, or type the start and end times into the fields below it. Write times as plain seconds, as M:SS or as H:MM:SS, for example 12.5, 1:12.5 or 0:01:12.500. A typed time is applied when you press Enter or move to another field, and the selected duration appears underneath. If the part you mark is longer than 30 seconds, Start switches off and a message beside it gives the length you've selected. Bring it back to 30 seconds or less and Start returns. The shortest GIF you can make is 0.1 seconds. When your browser can play the source file, a video preview appears above the timeline. Moving either handle seeks the preview to that point, so you can check the beginning and end before converting. If no preview appears, the conversion still works; use the time fields, or find the moment with the Video Trimmer, which can extract frame previews for formats the browser cannot play.
The settings
| Setting | Choices | Default |
|---|---|---|
| Width | 320, 480 or 640 pixels | 480 pixels |
| Frame rate | 10, 15 or 20 frames per second | 15 fps |
| Length | From 0.1 to 30 seconds | The first 30 seconds, or all of a shorter video |
The height is worked out from the width and the shape of your video, so the picture is never stretched or squashed. A width larger than the video itself is switched off, because the GIF is never scaled up; if that rules out 480, the widest option left is chosen. A video narrower than 320 pixels keeps its own width, and the page tells you so. Width and frame rate go back to their defaults whenever you choose a new file. A few things are the same for every GIF:
- Loop: each GIF is set to repeat forever.
- Sound: the GIF format can't carry audio, so the soundtrack is dropped.
- File name: your video's name with "-gif" added, so party.mov downloads as party-gif.gif.
How the GIF is made
A GIF can show no more than 256 colors, so the choice of colors decides how good it looks. The tool makes every GIF in two passes. The first pass looks at each frame inside the part you marked, at the width and frame rate you chose, and builds a palette of up to 256 colors from them. The second pass draws every frame of the GIF with that palette. Frames outside your selection have no say in the colors. While it works, the progress area shows "Pass 1 of 2: building the color palette" and then "Pass 2 of 2: rendering the GIF". The number of frames is the selected length multiplied by the frame rate, so a 4-second part at 15 fps becomes exactly 60 frames and plays for 4 seconds. A frame rate higher than the one your video was recorded at keeps that timing, but it can't add motion the video doesn't have. Phone videos recorded upright come out upright, and videos stored with non-square pixels are shown at their intended shape, because the size comes from the video as a player displays it.
Keeping the GIF small
A GIF stores each frame as a picture of its own, without the methods video formats use to record only what changes from one frame to the next. That is why a GIF is often many times larger than the clip it came from. Its size climbs with the number of frames and the area of each frame, so a shorter part, a lower frame rate and a smaller width all help. When a GIF comes out larger than 15 MB, the result adds a line suggesting the next smaller width and the next lower frame rate. After a 480-pixel GIF at 15 fps, for example, it suggests 320 pixels and 10 fps. If one of the two is already at its lowest, only the other is suggested, and at 320 pixels and 10 fps it asks you to select a shorter part. The large GIF can still be downloaded. Chat apps, forums and social sites each set their own upload limits, and they change from time to time, so check the limit where you plan to post.
Videos that work
GIFs can be made from MP4, MOV, WebM, MKV, 3GP, AVI, WMV, FLV or MPEG-TS files, whether they came from a phone, a camera, a screen recorder or an old Windows program. The tool tells the format by reading the file's contents, so a wrong extension doesn't matter. Inside, the picture can be H.264, HEVC, VP9, VP8, Windows Media or MPEG-4 Part 2 (Xvid or DivX) video. The engine decodes all of these itself, so it doesn't matter whether your browser can play the file. AV1 is the exception: the engine can't decode it, so no GIF is made and a message says the codec in the file can't be processed. Opening the page in a different browser doesn't change that. A file with only sound in it, or sound and a cover picture, gets a message that it has no video, and Start stays off until you choose a video.
Making GIFs on a phone
On an iPhone or an Android phone, open this page in the browser, pick the video from your library or files, and save the GIF when it's done. For a video over 500 MB the page warns that a phone could struggle with it, and the job can still be started. On an iPhone, Apple's Shortcuts app has a Make GIF action as well; this page lets you set the exact part, the width and the frame rate.
Where the GIF is made
The video is read and turned into a GIF in this tab, and the GIF is saved from there. TubePull never receives your video, the file name or anything read from the file. Besides its own program files, the page downloads nothing. Every GIF is made by the compatibility engine, a WebAssembly build of the FFmpeg media toolkit (ffmpeg.wasm). The engine weighs about 32 MB. The first GIF downloads it, and later ones use the copy in your browser's cache. It loads when you press Start, or as soon as you pick an FLV, AVI or WMV file, because the engine also reads those formats for the page. Its exact version, its license and a link to its source code are on the licenses page.
What to expect
- One GIF is at most 30 seconds long. Each job takes a single video, and DRM-protected videos can't be opened.
- Before starting, the engine estimates how big its output will be, and it won't run a job estimated above about 1.5 GB. For a GIF, that estimate is the share of your video's file size that the selected part covers, so with 30 seconds or less it only stops footage recorded at more than about 400 Mbit/s.
- How much your device can handle depends on its memory, and a computer copes with bigger videos than a phone.
- The output is always a GIF. There is no text, cropping, speed change or reverse.
Making a GIF from a link
This page works on videos saved on your device. For a YouTube video, YouTube to GIF makes the GIF from its link. Videos from other sites can be saved with the TubePull downloader and then opened here. To keep a moment as a video with its sound instead, cut it with the Video Trimmer, or change a whole file's format with Convert to MP4. Every other tool is on the free video tools page.