Skip to content

Batch Compress and Convert on Mac

Automate repetitive compress jobs on Mac with Shortcuts, Automator folder actions, Hazel, or folder watching in GetCompress.

By Petr Samokhin

Same export folder every Friday? Automation saves clicks. One random file once a month? Just use Preview. Batch compress and convert on Mac makes sense when settings repeat and file counts climb past what manual export tolerates.

Automation is not free either. You spend time once on presets, folder rules, or scripts so every future Friday is one step instead of thirty. Stop automating when the settings change every job.

When automation is worth it

SignalExample
Same settings weeklyRender output folder
Many files at onceWhole photo shoot
Team shared MacSame steps for everyone
Upload cap every sendEmail or portal limit

If the pain is occasional email bounces, read the email attachment size limits guide first. You may only need a one-time batch, not a permanent watch folder.

Batch workflow examples

These patterns show up often in design, QA, and content workflows:

WorkflowInputOutputTool starting point
Web handoffPNG UI shotsJPEG max 1920 pxGetCompress preset
Bug clipsMOV screen captureMP4 720p under 20 MBGetCompress target file size
Scan archiveLarge PDFCompressed PDFPreview or GetCompress
Podcast rawMP4 interviewM4A 128 kbpsQuickTime or GetCompress
Social stillsHEIC from iPhoneJPEG for CMSGetCompress batch convert

Before you automate, write down the preset once: max width, codec, and target folder. Automation fails when “smaller” is vague and every run picks different settings. Share the preset name with teammates so Friday exports look identical to last week.

For video-heavy batches, the video compression guide for Mac explains bitrate and resolution tradeoffs before you lock a preset. Sensitive client work should stay local; the online compressor safety guide explains why upload batch tools are a poor fit.

Shortcuts and Automator

Shortcuts (Applications → Shortcuts): build a workflow that runs a shell script you paste in, or opens the apps you use every time.

Automator: create a Folder Action that runs when new files land in a folder. Look for “Run Shell Script” or “Encode Media” on your macOS version.

No coding required for simple cases. Automator folder actions break occasionally after macOS upgrades, so keep a manual fallback (GetCompress drag-and-drop) for deadline weeks. Document which folder action maps to which export preset so a teammate can fix it when paths change.

Hazel folder rules

Hazel (paid app) watches a folder and runs a script when files appear. Polished if you already own it. You still maintain the script Hazel calls, often FFmpeg or sips one-liners.

Hazel shines when you need conditions beyond “new file appeared” (only PNG over 5 MB, only on weekdays). GetCompress folder monitoring covers the simpler “compress everything new with preset X” case without extra software.

Simple Terminal script

Optional. Open Terminal (Applications → Utilities → Terminal). Install FFmpeg through Homebrew if it is not already installed:

brew install ffmpeg

Edit paths, save as compress.sh, then run:

cd ~/Exports/in
for f in *.jpg; do sips -Z 1920 "$f"; done
for f in *.mov; do
  ffmpeg -i "$f" -vf scale=-2:1080 -c:v libx264 -crf 23 \
    -c:a aac -b:a 128k ~/Exports/out/"${f%.mov}.mp4"
done

Someone technical should maintain this when macOS or FFmpeg updates. Scripts do not give you preview, trim, or mixed PDF plus video in one queue unless you write that logic yourself.

Document the script in your team README: input folder, output folder, and which codec flags you chose. The next person should not reverse-engineer CRF values from a cron job comment.

Folder monitoring in GetCompress

In GetCompress settings, turn on folder monitoring, choose a watch folder, and attach a saved preset. New JPEG, MP4, or PDF files process automatically when they appear.

Watch folderPresetResult
~/Exports/webWeb JPEG 1920 pxReady for CMS upload
~/Movies/CapturesMP4 1080pSmaller bug repro clips
~/Documents/Scans/inPDF mediumLighter attachments

Output goes to a folder you pick. Files stay on your Mac. No upload step. This is the lowest-maintenance way to batch compress and convert on Mac when the trigger is “new file landed” rather than a cron schedule.

Start with one watch folder and one preset. Add complexity only when that path is stable for a month. Two presets on the same folder without subfolders usually causes confusion about which output belongs to which job.

Using GetCompress

GetCompress covers manual batch runs and ongoing folder watches:

  • Drop an entire folder for a one-time batch when you only need a single run this week.
  • Queue mixed PNG, MP4, and PDF with one preset per media type where settings differ.
  • Save presets (web JPEG, email PDF, Slack MP4) and reuse them on the next job.
  • Enable folder monitoring when exports land in the same directory on a fixed schedule.
  • Trim video and preview output before export so you do not re-open QuickTime for every clip.

Pair folder monitoring with MCP when you also want Cursor to trigger the same presets on demand. For most freelancers and small teams, monitoring plus saved presets replaces hand-maintained shell scripts.

Buy GetCompress now for local media compression with reusable presets and no media upload.