https://github.com/anhostfr/compress.lol
Compress videos in your browser to fit Discord limitations and more. - An alternative to 8mb.video
https://github.com/anhostfr/compress.lol
compression ffmpeg ffmpegwasm file-compression svelte sveltekit tailwindcss video-compression video-compressor
Last synced: 9 months ago
JSON representation
Compress videos in your browser to fit Discord limitations and more. - An alternative to 8mb.video
- Host: GitHub
- URL: https://github.com/anhostfr/compress.lol
- Owner: anhostfr
- License: apache-2.0
- Created: 2025-09-10T14:04:48.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2025-10-01T21:34:37.000Z (9 months ago)
- Last Synced: 2025-10-01T23:28:02.885Z (9 months ago)
- Topics: compression, ffmpeg, ffmpegwasm, file-compression, svelte, sveltekit, tailwindcss, video-compression, video-compressor
- Language: Svelte
- Homepage: https://compress.lol
- Size: 9.76 MB
- Stars: 222
- Watchers: 2
- Forks: 12
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# 🎬 Compress.lol – WebAssembly-Powered Video Compression
[](https://opensource.org/licenses/Apache-2.0)
[](https://github.com/anhostfr/compress.lol/issues)
[](https://kit.svelte.dev/)
[](https://www.typescriptlang.org/)
[](https://ffmpeg.org/)
> **Compress.lol** – _"Crushing file sizes, not dreams"_ ⚡
> WebAssembly-powered video compression that runs entirely in your browser.
---
## ✨ Features
- 🎯 **Target-size compression** with intelligent quality adjustment
- 🧠 **Motion detection** for optimized encoding settings
- ⚡ **Lightning-fast processing** using WebAssembly FFmpeg
- 🔒 **100% client-side** – your videos never leave your device
- 📱 **Responsive design** – works on desktop and mobile
- 🌍 **Multilingual interface** with Paraglide JS
- 🎨 **Modern UI** with TailwindCSS, Shadcn/ui components, and Catppuccin themes
---
## 🚀 Quick Start
### 🛠️ Manual Installation
```bash
# Clone the repository
git clone https://github.com/anhostfr/compress.lol
cd compress.lol
# Install dependencies
npm install
# Start development server
npm run dev
```
---
## 🎯 How It Works
### Smart Compression Algorithm
1. **Video Analysis**: Automatically detects motion levels, resolution, and encoding characteristics
2. **Target-Based Encoding**: Calculates optimal bitrates and settings for your target file size
3. **Motion-Aware Settings**: Adjusts encoding parameters based on content complexity
4. **WebAssembly Processing**: Uses FFmpeg compiled to WASM for native-speed compression
### Compression Targets
- **8 MB** – Ultra compression for sharing
- **25 MB** – High compression for social media
- **50 MB** – Medium compression for email
- **100 MB** – Low compression for archival
---
## 🛠️ Development
```bash
npm run dev # Development server
npm run build # Production build
npm run preview # Preview production build
npm run check # TypeScript check
npm run format # Prettier formatting
```
### FFmpeg Integration
The app uses FFmpeg.wasm for video processing:
- **Core**: `ffmpeg-core.js` – Main FFmpeg engine
- **WASM**: `ffmpeg-core.wasm` – WebAssembly binary
- **Worker**: `ffmpeg-core.worker.js` – Background processing
---
### Adding Languages
1. Create new message files in `src/lib/paraglide/messages/`
2. Update language configuration
3. Add language selector option
---
## 📱 Browser Support
- **Chrome/Edge**: 90+
- **Firefox**: 89+
- **Safari**: 15+
Requires WebAssembly and SharedArrayBuffer support.
### File Size Limits
- **Maximum file size**: 2GB (browser limitation)
---
## 🤝 Contributing
1. Fork the repository
2. Create a feature branch: `git checkout -b feature/amazing-feature`
3. Make your changes
4. Run tests: `npm run check`
5. Format code: `npm run format`
6. Commit changes: `git commit -m 'Add amazing feature'`
7. Push to branch: `git push origin feature/amazing-feature`
8. Open a Pull Request
---
## 📄 License
Apache 2.0 License – see [LICENSE](LICENSE) for details.
---
## 🙏 Acknowledgements
- [FFmpeg.wasm](https://github.com/ffmpegwasm/ffmpeg.wasm) – FFmpeg compiled to WebAssembly
- [SvelteKit](https://kit.svelte.dev/) – The fastest way to build svelte apps
- [Paraglide JS](https://inlang.com/m/gerre34r/library-inlang-paraglideJs) – Type-safe i18n
- [TailwindCSS](https://tailwindcss.com/) – Utility-first CSS framework
- [Shadcn/ui](https://ui.shadcn.com/) – Beautiful UI components
- [Catppuccin](https://catppuccin.com/) – Lovely color palette and themes
---
"Making video compression accessible to everyone, one byte at a time"