Convert your videos into high-quality GIFs directly in the browser using FFmpeg.wasm. Add custom text overlays, download locally, or upload your GIFs to Giphy and share them instantly. 🚀
- 🎞️ Upload any video (MP4, WebM, etc.)
- ⚡ Convert to GIF fully client-side (no server needed)
- 📝 Add custom text captions
- 💾 Download your GIF locally
- 🌐 Upload directly to Giphy via their API
- 📋 Copy the Giphy share link with one click
- 🌙 Light/Dark mode support
Clone the repo:
git clone https://github.com/your-username/video-gif-converter.git
cd video-gif-converterInstall dependencies:
npm installRun development server:
npm run devBuild for production:
npm run buildCreate a .env file in the root:
VITE_GIPHY_API=your_giphy_api_key_here
- Get your free API key from Giphy Developers.
- Keys must be prefixed with
VITE_to be exposed to the client.
This app is designed for Vercel or Netlify.
You must set headers to enable SharedArrayBuffer:
For Vercel, create a vercel.json file:
{
"headers": [
{
"source": "/(.*)",
"headers": [
{ "key": "Cross-Origin-Opener-Policy", "value": "same-origin" },
{ "key": "Cross-Origin-Embedder-Policy", "value": "require-corp" }
]
}
]
}For Netlify, create a _headers file in public/:
/*
Cross-Origin-Opener-Policy: same-origin
Cross-Origin-Embedder-Policy: require-corp
src/
├── components/
│ └── Navbar.jsx
├── VideoShow.jsx # main conversion logic
├── App.jsx
├── main.jsx
public/
├── font.ttf # custom font for GIF text
└── _headers / vercel.json (for deployment)
- 🔊 Support audio → GIF with sound as MP4 export
- 🎨 More advanced text styling (color, position, animations)
- 🌐 Social share buttons
MIT License © 2025 Aarish Mansur Feel free to use, modify, and share. 🎉