compress.lol Svelte Themes

Compress.lol

Compress videos in your browser to fit Discord limitations and more. - An alternative to 8mb.video

🎬 Compress.lol – WebAssembly-Powered Video Compression

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 and Shadcn/ui components

🚀 Quick Start

🛠️ Manual Installation

# 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

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 for details.


🙏 Acknowledgements


"Making video compression accessible to everyone, one byte at a time"

Top categories

Loading Svelte Themes