ShrinkMaster re-encodes your videos and photos so they look exactly the same — and take up 70–90% less space.
Typical examples:
A 1.4 GB phone video → 180 MB, looking the same. About 12 seconds of work on an M-series Mac.
A 12 MB iPhone HEIC photo → 2 MB JPEG, looking the same. Under a second.
Supported formats:
- Video — MP4, MOV, MKV, WebM, AVI, M4V, and more
- Image — JPEG, PNG, HEIC, WebP, AVIF, TIFF, GIF, BMP
That's the whole product. One window, drag a file in, get a smaller version out.
You probably ran into one of these recently:
- 📧 Email won't send the file. Most email providers cap attachments at 25 MB.
- 💬 Discord, Slack, WhatsApp reject it. "File too large."
- 🐦 Twitter / Bluesky / your blog trims or refuses oversized clips and photos.
- 📱 Your phone's 4K videos and HEIC photos are eating your hard drive, but they look great so you don't want to just delete them.
- 📨 Sharing a kid's recital with grandma but the file is 2 GB and her email won't accept it.
There are online compressors that can do this, but you have to upload your file to a stranger's server, wait, then download it back. ShrinkMaster runs entirely on your Mac — your files never leave your device. No upload, no account, no waiting in a queue behind other people.
↓ Download ShrinkMaster for Mac
The same file works on Intel Macs and Apple Silicon (M1 / M2 / M3 / M4). Requires macOS 11 (Big Sur) or later — that's basically any Mac from 2014 onward that's been kept up to date.
Open the file you downloaded (ShrinkMaster-mac-universal.dmg). A window will pop up with the ShrinkMaster icon and an Applications folder shortcut.
Drag the ShrinkMaster icon onto the Applications folder. That's the install.
You can now eject the DMG (drag it to the Trash, or right-click → Eject).
This is the only weird step. Apple charges developers $99/year to "verify" their apps. ShrinkMaster doesn't pay that fee, so the first time you open it, macOS shows a scary warning:
"ShrinkMaster cannot be opened because the developer cannot be verified."
It's safe — you just need to open it differently the first time:
- Open your Applications folder (Finder → Applications, or press
⌘ + Shift + A) - Right-click ShrinkMaster (or hold the
Controlkey and click) - Choose Open
- Click Open again in the dialog
After this one time, you can open ShrinkMaster normally — just double-click it like any other app.
If that still doesn't work: open the Terminal app (Applications → Utilities → Terminal) and paste this, then press Enter:
xattr -cr /Applications/ShrinkMaster.app
Drag a video or photo into the ShrinkMaster window. Compression starts immediately.
When it finishes, you'll see a "Compression Complete" screen showing how much space you saved (e.g. "Saved 87% Space!"). Click Save As... to save the smaller version wherever you want — Desktop, your Downloads folder, anywhere.
That's the whole flow. Drop a file. Save the result.
- Batch mode: drag multiple files (or a whole folder) at once. Videos and images can be mixed — ShrinkMaster compresses them one by one and shows progress for each.
- Cancel anytime: hit "Cancel Processing" if you change your mind. The half-finished file is cleaned up automatically.
- Choose your codec: open Advanced Settings to switch between H.265 (default — fast, plays everywhere) and AV1 (slower but produces even smaller files).
- Switch language: Advanced Settings → Language. ShrinkMaster works in English and 简体中文, and follows your Mac's system language by default.
- Your original is safe: ShrinkMaster never deletes or overwrites the original file. The compressed version is always saved separately.
Is it really free? Yes. Free download, free to use, free forever. The code is on GitHub under an open-source license — anyone can read it, fork it, or run their own version.
Will the compressed file look worse? No. The default settings produce results that look identical to the source for most viewers. Modern codecs (H.265 / AV1 for video, modern image encoders for photos) are designed exactly for this — keeping quality high while making files much smaller.
Does ShrinkMaster send my files anywhere? No. All compression happens on your Mac. The app makes zero network requests during compression. You can verify this in Activity Monitor (or just unplug your Wi-Fi mid-compression — it keeps working).
Why is the download so big (~300 MB)? ShrinkMaster bundles its own copy of ffmpeg, the actual compression engine. Bundling it means you don't have to install anything else — just drag and run. The download includes both Intel and Apple Silicon versions of ffmpeg in one file, so it works natively on every Mac.
What kinds of files does it accept? Video — MP4, MOV, MKV, AVI, WebM, FLV, WMV, M4V, TS, MTS. Output is MP4 (H.265) or MKV (AV1). Image — JPEG, PNG, HEIC, WebP, AVIF, TIFF, GIF, BMP. HEIC and BMP get converted to JPEG (because those decoders are universal); everything else keeps its original format.
What if I don't like the result? Your original file is never touched. Just delete the compressed version, change settings if you want, and try again.
Will there be a Windows version? Maybe later. Mac is the only supported platform for now.
How is this different from HandBrake? HandBrake is more powerful but its interface has hundreds of options, which is overwhelming if you just want to make a video smaller. ShrinkMaster is the simpler version — sane defaults, drag-and-drop, no settings panel by default. If you need fine control over every encoding parameter, HandBrake is better. If you just want a smaller video, ShrinkMaster is faster.
Kelly Peng — independent developer.
I built ShrinkMaster because I have a lot of video files over 10 GB. They won't fit in email. Uploading them anywhere takes forever. And keeping them eats through expensive hard drives. So I built it for myself, and decided to make it free for everyone else with the same problem.
If ShrinkMaster is useful to you, the kindest thing you can do:
- ⭐ Star this project on GitHub — it helps other people find it
- 🐦 Follow me on X (@kellyyuweipeng) — I post when I ship new tools and write about indie building
- 🐛 Report a bug — I read every issue
For developers — run, build, and contribute
npm install
./download_ffmpeg_macos.sh # populates ./bin with universal2 ffmpeg + ffprobe
npm startFor a full release (build + upload + tag handling), use:
./scripts/release.shThat script kills running instances, regenerates the icon, builds the DMG, and uploads with --clobber to the existing GitHub Release matching package.json version. See CLAUDE.md for the full deploy model (which changes need a rebuild and which are web-only).
For a manual build without uploading:
./scripts/build-icon.sh # generates build/icon.icns from build/icon.svg
./download_ffmpeg_macos.sh # universal2 ffmpeg + ffprobe (~260 MB total)
npm run dist:mac
# → dist/ShrinkMaster-mac-universal.dmg
# → dist/ShrinkMaster-mac-universal.zipThe current build is unsigned (ad-hoc only). For signed and notarized distribution later, set:
CSC_LINK/CSC_KEY_PASSWORD(Developer ID Application certificate)APPLE_ID/APPLE_APP_SPECIFIC_PASSWORD(for notarization)- Flip
mac.identityback to omitted (or your team identity) andmac.hardenedRuntimetotrueinpackage.json
main.js— Electron main process, spawns ffmpeg, IPC handlerspreload.js— context-bridge between renderer and main (sandboxed)renderer.js— UI logic (queue, progress, drag-drop, cancel, i18n)index.html— markup and styles for the app UIbin/— bundled ffmpeg / ffprobe universal2 binaries (gitignored; fetched by the download script)build/icon.svg→build/icon.icns— app icon (regenerated byscripts/build-icon.sh, no homebrew deps)build/entitlements.mac.plist— hardened-runtime entitlements (ready for future signing)docs/index.html— landing page (deployed to shrinkmaster.kellypeng.com via GitHub Pages)integrations/— drop-in HTML snippets for embedding ShrinkMaster on other sites
See ARCHITECTURE.md for codec selection details and dev-vs-production path resolution.
ShrinkMaster auto-detects the best available encoder at startup:
- H.265:
hevc_videotoolbox(Apple Silicon) →hevc_nvenc→hevc_qsv→hevc_amf→libx265(CPU fallback) - AV1:
av1_nvenc→av1_qsv→av1_amf→libsvtav1(CPU fallback)
MIT. The bundled ffmpeg binaries shipped in macOS releases are under their own licenses (LGPL / GPL) — see the note at the bottom of LICENSE.