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
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
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:
- 1Upload your video file by dragging & dropping or clicking the upload area.
- 2Set the start and end time of the clip you want to turn into a looping GIF.
- 3Adjust the frame rate, resolution scale, and toggle loop / reverse playback.
- 4Optionally add caption text and a sticker overlay for meme-style edits.
- 5Preview your selection, then click "Generate GIF" to start background encoding.
- 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.
Social Media Memes
Turn reaction clips into shareable memes with captions and stickers, optimized for Twitter, Reddit, and Discord.
Product Previews
Create silent looping product GIFs for e-commerce that autoplay on any site without a play button.
UI Feedback Loops
Capture micro-interactions and UI animations as lightweight looping GIFs for design presentations.
Email Newsletters
Embed animated GIFs in email campaigns that work everywhere because GIF has 100% email client support.
Data Viz Loops
Convert chart animations into compact looping GIFs for reports and slides where embedded videos would be too large.
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.
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