Releases: Mitzingdash/compression
Release list
SmartCompress 3.0.0 — C# rewrite
Full C# rewrite of the original Python prototype. Windows portable build — no installer, no Python, no .NET install required.
What's new
- Two-path Estimator (QualityFirst vs SizeConstrained) replaces the old single binary-search; most files now finish in 1-2 passes instead of 4-5
- Benchmark mode with cross-validation report
- Batch mode — drop a folder, get a preview table, skip-existing on resume
- Live ETA, benchmark progress bar, clean Ctrl+C, input lockout between prompts
- Adaptive complexity fingerprinting + per-encoder slope calibration
Install
- Download
SmartCompress-v3.0.0-win-x64.zipbelow - Extract anywhere (Desktop / USB /
C:\Tools— fully portable) - Run
SmartCompress.exe. First launch downloads ffmpeg (~75 MB) automatically.
Old Python version
Preserved on the old branch for reference.
Made utilising AI assistance for parts of the rewrite.
v1.2.1
Windows setup
Download both init.bat and SmartCompress.ps1 into the same empty folder.
- First run: right-click init.bat -> "Run as administrator"
Fixes execution policy, unblocks the PS1, then deletes itself. - Every run after: right-click SmartCompress.ps1 -> "Run with PowerShell"
If Python or Git are missing, the launcher installs them automatically.
It tries Chocolatey first, then winget, then downloads directly from the official source.
Bug fixes
- PS1 window no longer closes silently -- always pauses on error
- Microsoft Store Python stub detected and skipped
- Python/Git auto-install now works without a package manager (direct download fallback)
- init.bat now also fixes execution policy (Set-ExecutionPolicy RemoteSigned)
- PS1 saved as UTF-8 with BOM so PowerShell 5.1 parses it correctly
To update: just run SmartCompress.ps1 -- it pulls the latest automatically.
v1.2.0
What's new
Bug fixes
- CQP search was cutting off quality — the binary search lower bound was set to a bitrate-math estimate (~CQP 40) instead of
default_cqp(28). This meant files that fit well under the size limit were never tried at better quality. The search now always covers the full CQP range, finding the best-quality file that still fits. - PS1 launcher window closed immediately after compress.py exited — now always pauses for Enter before closing.
New features
- Session log — each compression run appends to
out/compress.log. Records input info, all CQP passes and sizes, SSIM scores, and the final result. - Compress another — after a run completes, the tool asks whether to compress another file instead of exiting.
Config
max_cqpis now per-encoder (9 entries matchingdefault_cqp) instead of per-family (3 entries) — ready for per-encoder tuning and the future community lookup table.- Output folder defaults to the launcher directory instead of inside the cloned repo subfolder.
To update: just run SmartCompress.ps1 / SmartCompress.sh — the launcher pulls the update automatically.
v1.1.0 - Initial Release
First public release
A smart video compressor that figures out codec, quality, and resolution automatically. No manual settings needed.
What's included
- SmartCompress.ps1 - Windows launcher (right-click -> Run with PowerShell)
- SmartCompress.sh - Linux / macOS launcher (chmod +x SmartCompress.sh then ./SmartCompress.sh)
Both scripts handle everything automatically: cloning the repo, setting up Python, installing dependencies, and checking for updates on every run. Python and Git are installed automatically on Windows if missing.
Requirements
- Python 3.10+
- Git
Features
- Interactive wizard - guided step by step, no flags to memorize
- Encoder selection - shows all working encoders with descriptions and a recommendation for your hardware
- Resolution selection - force a specific resolution or let Auto decide
- CQP binary search - converges in 3-5 passes using bitrate math as a starting estimate
- SSIM quality scoring with live progress bar, resolution-normalized against source
- Content complexity analysis - adjusts quality floors and CQP limits automatically
- Resolution ladder - drops resolution if quality floor cannot be met
- Live progress bars for both encoding and quality check passes