Video to GIF converter

Your file stays on this device. No upload and no third-party request.

Temporary output uses private device storage when available (up to 2 GiB, subject to the estimated quota). Memory is the last fallback: 16 MiB. Input: 200 MiB, 5 min, up to 3840 × 2160 or portrait. Operation: 3 min max. GIF excerpt: 15 s max. Requires WebCodecs and workers. Availability depends on the browser and codec. With Safari, audio conversion requires version 26+; codecs still depend on the browser. Direct AAC copying can work without an audio encoder.

Turn a short section of your own video into a looping image. A GIF has no sound; choose a clear movement or demonstration that makes sense without the soundtrack.

Convert a file in three steps

  1. Choose a video saved on your device. Check its size and duration before proceeding.
  2. Select up to 15 seconds, then choose the GIF width and frame rate.
  3. Start the local conversion and keep this tab open. Check the result, then use its download link.

Build a readable short loop

Choose a range of at most 15 seconds. Set the width to 160, 320, 480 or 640 pixels and the rate to 5, 10 or 15 frames per second. The tool limits width to the source instead of enlarging it. A short, steady view usually explains a gesture more clearly than a long clip with several camera movements.

Each frame is reduced to an optimized palette of up to 256 colors. Gradients, dark scenes and fast motion may show banding or visible artifacts. Increasing width and frame rate increases processing and file size; a GIF is not automatically smaller than the video. There is no audio track in the result. For longer material or a soundtrack, keep a video file instead.

Files, privacy and device limits

Choose an MP4, MOV or WebM file already saved on your device. These extensions describe containers, not the codecs inside them. H.264 video with AAC audio and WebM with VP8 and Opus are useful test cases. A MOV recording may use a different codec, including HEVC, so its extension alone does not establish compatibility. The browser checks the actual tracks before starting.

Input is limited to 200 MiB and 5 minutes on touch or low-memory devices, and 500 MiB and 20 minutes on other desktops. One MiB is 1,048,576 bytes. Up to 3840 × 2160 pixels is accepted, including portrait 2160 × 3840, when the browser can decode the codec. Input size and output memory are different limits: a large file is read progressively rather than copied into one input buffer.

Outputs can use private device storage (OPFS), written in a worker, up to 2 GiB when the estimated quota allows. We reserve 16 MiB and a 25% margin. The quota is checked before conversion and again at startup; it is an estimate, not a guarantee of physical free space. If it is insufficient, use the proposed stronger preset or shorter excerpt. The browser streams the completed file to its download manager without assembling it in a JavaScript buffer. The temporary is deleted when that stream finishes or is cancelled, or when you discard the result. A later visit cleans files left by a crash. Only if file storage is unavailable does memory fall back to 16 MiB on mobile or 32 MiB on desktop. Operation limits are 3 and 5 minutes respectively.

The file never leaves your device. No media upload, account or third party request is used on these tool pages. The site serves its own worker and codec files after you select an accepted file. The result is saved locally, through a download link or directly into the file you choose. It is not a public hosting address. Resetting or leaving releases temporary browser URLs; a file already saved remains where you saved it.

Use material you created or have permission to edit. Local processing does not transfer copyright or remove anyone's rights. Keep your source separately: the downloaded result is a new file, and compression or reencoding can lose detail. Test playback, duration and sound in the app where you intend to use the copy before deleting anything.

Current desktop browsers, Android Chrome and iOS Safari differ in their WebCodecs support. A native video preview may fail even when a track can be copied. If the tool reports an unsupported format or codec, try a supported recording or a desktop editor. It does not install codecs, send the file to a fallback server or retry against another service.

Media choices explained

Resolution describes how many pixels a frame contains. Bitrate describes how much data is used per second. Both affect a video, but they are not interchangeable. A high-resolution file with too little data for its scene can look worse than a lower-resolution file with a more suitable encoding. Duration is the other essential number when estimating size.

A 1920 × 1080 frame contains more pixels than a 1280 × 720 frame. That offers space for more detail if the capture and encoding preserve it. It does not prove that the video is sharp, in focus or free of compression artifacts.

A few useful answers

Does the file get uploaded?

No. The selected video is read and processed locally. The tool downloads its engine from VidFetch, then offers a local output file; it does not upload the recording.

Why is a small file refused?

Size is only one check. Duration, pixel count and the codecs available in your browser also matter. A recording can fit the size cap and still need an unsupported decoder or encoder.

Where is the finished file?

Use the download link when processing finishes. Your browser chooses the download location. On a phone, check Files or Downloads before trying to import a compatible video into Photos or the gallery.

Local tools