Universal offline-first desktop media optimizer to compress videos, images, audio, PDFs and files —
no quality headaches, no watermarks, 100% private offline on your device.
Built with Python + FFmpeg. No subscriptions, no internet required. Your files never leave your computer.
- 🎯 Target-size mode (MB or KB) — "make this under 25 MB" or "this photo under 50 KB". Perfect for email limits and government / exam form uploads (passport photo, signature, PDF size limits). The feature paid tools charge for — free here.
- 🎬 Video — H.264 re-encode with resolution capping (real example: 748 MB → 94 MB, −87%)
- 🖼️ Images — JPEG/PNG/WebP + HEIC (iPhone photos), smart resize (real example: 10 MB → 1.4 MB, −86%)
- 🎵 Audio — MP3 re-encode at chosen bitrate (−80% on WAV)
- 📄 PDF — downsamples embedded images; target an exact KB size for portals
- 📦 Any file/folder — falls back to high-ratio
.7zarchiving - 🛡️ Bulletproof — handles locked/empty/huge files gracefully, shows real error reasons, writes a debug log
- 🖱️ Drag & drop + batch processing (compress dozens at once)
- ⚡ Parallel compression — uses multiple CPU cores (~3.3× faster batches)
- 👁️ Before/after preview for images, plus an upfront reduction estimate
- 🎚️ Presets (High Quality / Balanced / Small / Instagram / Email) + Advanced manual sliders
- ⏹️ Live progress bars and a Stop button for long jobs
- 📊 Lifetime stats, remembered settings, light/dark theme
- 🧵 Multithreaded — the window never freezes
- 💾 Handles huge files — streams through disk; a 50 GB video never loads into RAM
- 🪟🍎🐧 Cross-platform — Windows, macOS and Linux
- Go to the Releases page and download
Tukdify-MultiCompressor-Setup-1.1.0.exe(Installer) orTukdify-MultiCompressor.exe(Portable). - Run the installer or launch the portable executable directly. FFmpeg is bundled inside, nothing else to install.
When you run it the first time, Windows SmartScreen may show a blue warning. This is normal for every new open-source app — it appears because the app isn't signed with an expensive certificate yet, not because it's harmful.
To run it: click "More info" → "Run anyway."
You can verify it's safe yourself: the full source code is right here in this repo, and the app makes zero internet connections — everything happens offline on your machine. The warning will disappear on its own as more people download it. 🛡️
In real-world testing performed locally on an 8 GB RAM Windows laptop without cloud processing:
| Source File | Original Size | Compressed Size | Space Saved | Processing |
|---|---|---|---|---|
| Raw Video File | 9.82 GB | 3.02 GB | 69.2% reduction | 100% Local / Offline |
Note
Results vary depending on source media, input codec, resolution, selected quality preset or target size, and host hardware.
# 1. Clone
git clone https://github.com/Tukdify/Tukdify-MultiCompressor.git
cd Tukdify-MultiCompressor
# 2. Install dependencies (FFmpeg comes bundled via pip — no manual install!)
pip install -r requirements.txt
# 3. Run the app
python main.pypython cli.py video.mp4 photo.jpg scan.pdf --preset small --output ./out
python cli.py --helpThe GUI and CLI both call one entry point (engine.py), which routes each
file to the right compressor. Nothing in the UI knows about FFmpeg or Pillow —
clean separation of concerns.
main.py / cli.py
│
▼
engine.compress_path() ← the dispatcher ("brain")
│
├── image_compressor.py (Pillow + pillow-heif)
├── pdf_compressor.py (PyMuPDF)
├── video_compressor.py ─┐(FFmpeg)
├── audio_compressor.py ─┘ via ffmpeg_runner.py (shared, cancellable)
└── archive_compressor.py (py7zr)
presets.py · config.py · history.py · utils.py ← supporting modules
gui/app.py ← the window
| Module | Responsibility |
|---|---|
engine.py |
Detects file type, routes to the correct compressor, logs history |
ffmpeg_runner.py |
Runs FFmpeg, parses live progress, supports cancellation |
presets.py |
Maps human intent (“Instagram”) → technical settings (CRF, DPI…) |
utils.py |
Streaming-safe file ops, size formatting, output paths |
config.py / history.py |
Remembered settings + lifetime stats (JSON in ~/.multicompress) |
gui/app.py |
The desktop window (threaded, drag-drop) |
pip install -r requirements-dev.txt
pytest -qpip install -r requirements-dev.txt
python build_exe.pyThe bundled app (with FFmpeg inside) appears in dist/Tukdify-MultiCompressor.exe.
Attach the standalone binary or the installer to a GitHub Release so anyone can download
and run it — no Python needed.
python install_context_menu.py # adds "Compress with Tukdify MultiCompressor"
python install_context_menu.py --remove # removes itThen right-click any file or folder in Explorer → Compress with Tukdify MultiCompressor →
the app opens with that file already queued. (Uses HKEY_CURRENT_USER, so no
admin rights needed.)
Install the free Inno Setup, then:
python -m PyInstaller tukdify.spec # 1. build standalone executable
ISCC installer/tukdify.iss # 2. compile the installerProduces Tukdify-MultiCompressor-Setup-1.1.0.exe — Start Menu shortcut, desktop icon,
optional right-click menu, and a clean uninstaller.
The code is cross-platform. To build a native app, run the same command on that OS (PyInstaller can't cross-compile):
pip install -r requirements-dev.txt
python -m PyInstaller tukdify.spec # produces a macOS .app / Linux binary in dist/The right-click menu (install_context_menu.py) is Windows-only; everything
else — compression, GUI, drag-drop, presets, parallel jobs — works everywhere.
A ready-made landing page lives in docs/index.html.
Enable GitHub Pages → Deploy from branch → /docs in your repo settings and
it goes live at https://tukdify.github.io/Tukdify-MultiCompressor/.
Python · FFmpeg (imageio-ffmpeg) · Pillow · pillow-heif · PyMuPDF · py7zr · CustomTkinter · tkinterdnd2
MIT — see LICENSE. Includes a third-party notice for FFmpeg (LGPL/GPL).
Made as a free tool for creators, students and anyone who shouldn't have to pay to make a file smaller. Contributions welcome — open an issue or PR!

