Private Video
GIF Maker

Convert video clips (MP4, WebM, MOV) to high-quality GIFs directly in your browser. Trim to any range, adjust frame rate and resolution, add captions and stickers — no uploads, 100% private.

Upload Video

GIF Options

-1 = infinite, 0 = once, 1-100 = finite repeats

Reverse

Backward playback

Normal

Forward

High Color

Better colors

Standard

Smaller files

Web Worker

Background

Main Thread

Blocks UI

GIF

Looping image

MP4

Coming soon

Social Media Preset

One-click resize for popular platforms. Overrides custom width/height until reset.

Caption Overlay

Type the words that will appear on the final GIF

Outline

Text outline

No Outline

Plain text

Everything happens on your machine. Your video stays in your browser tab — we never see, touch, or store it. gif.js encodes each frame locally, so the result is as private as it gets.

Created with the open-source gif.js library, which runs in a Web Worker by default. This page uses no analytics, no cookies, and no server side — just your browser and a free tool that stays cool under load.

How GIF Conversion Works

Simple Steps:

  1. 1Upload your video file by dragging & dropping or clicking the upload area.
  2. 2Set the start and end time of the clip you want to turn into a looping GIF.
  3. 3Adjust the frame rate, resolution scale, and toggle loop / reverse playback.
  4. 4Optionally add caption text and a sticker overlay for meme-style edits.
  5. 5Preview your selection, then click "Generate GIF" to start background encoding.
  6. 6Download the resulting GIF and use it anywhere�everything stays private.

Pro Tips:

  • Upload your source video and set the start/end time for the clip you want to turn into a GIF.
  • Choose a frame rate (8-30 FPS) - higher FPS looks smoother but increases file size and encode time.
  • Scale the resolution with a percentage or enter custom width/height; lock the aspect ratio to avoid stretching.
  • Add caption text and/or a sticker overlay to create meme-style GIFs with personalized flair.
  • Click "Generate GIF" - encoding runs in a Web Worker so the page stays responsive while you wait.

Common Use Cases

Educational Tutorials

Clip long screen recordings into short, looping GIFs that illustrate a single concept without requiring a full video player.

Example:

Social Media Memes

Turn reaction clips into shareable memes with captions and stickers, optimized for Twitter, Reddit, and Discord.

Example:

Product Previews

Create silent looping product GIFs for e-commerce that autoplay on any site without a play button.

Example:

UI Feedback Loops

Capture micro-interactions and UI animations as lightweight looping GIFs for design presentations.

Example:

Email Newsletters

Embed animated GIFs in email campaigns that work everywhere because GIF has 100% email client support.

Example:

Data Viz Loops

Convert chart animations into compact looping GIFs for reports and slides where embedded videos would be too large.

Example:

Frequently Asked Questions

Technical Details

How the Core Mechanic Works

The conversion pipeline decodes your video on the main thread, extracts frames with the Canvas 2D API, then hands them to gif.js for color quantization and LZW compression inside a dedicated Web Worker.

Browser File → ObjectURL → <video>
→ loadedmetadata: duration + videoWidth/Height captured
→ for each output frame:
seek(video, t) → drawImage(canvas, frame) → addFrame(canvas)
→ gif.js render() → GIF Blob URL → download

Quality & Performance

Frame Rate

Lower FPS cuts file size linearly. 10-15 fps is the sweet spot for most clips; 30 fps for smooth motion.

Palette

gif.js defaults to 256 colors. Palette optimization uses a median-cut algorithm to shrink the color map with minimal visual loss.

Resolution

Each dimension is rounded to an even number. Halving each axis roughly quarters the pixel count and file size.

Encoding

Runs in a Web Worker so the page never locks up. Memory grows with frame count and dimensions.

Browser Compatibility

Fully Supported

Chrome 90+, Firefox 88+, Edge 90+, Safari 14+. Requires HTML5 video, Canvas 2D, createImageBitmap, and Web Workers.

Partial Support

Older Safari (13-) and some mobile browser video elements may stall on seeking for very short clips.

Not Supported

MP4 (H.264) inside GIF is not supported and WebM inside GIF is not supported. Use the WebM input for best cross-browser results.

Privacy & Security Architecture

Zero Server

No file ever leaves your device. All processing is in-browser JavaScript; the page makes no network requests for your data.

In-Memory Only

Blob URLs and canvases live in page memory. The cleanup() handler revokes all Object URLs and pauses the video on unmount.

Open Source Engine

Encoding is done by gif.js (jnordberg), audited and MIT-licensed. No opaque binaries handle your pixels.

No Tracking

No analytics, no cookies, no referrer leakage. The privacy badge is honest because nothing is collected.

Was this tool helpful?

Help us improve by sharing your experience