Batch Convert HEIC on Mac
Batch convert HEIC to JPG on Mac with Terminal sips or GetCompress. Real estate and event photo workflows.
Two hundred HEIC files land in a Finder folder from an iPhone shoot. Photos export one album at a time gets old fast. Real estate, events, and product photography often need JPEG at consistent width before MLS, Shopify, or client galleries accept the batch. You might also get mixed extensions, Live Photo pairs, and duplicate filenames from multiple photographers on one listing. Batch conversion locally beats uploading the camera roll to a converter site and keeps unreleased listing photos on your Mac.
When Photos is enough
If the shoot is already in Photos and you export one album once, File → Export → Export N Photos as JPEG is fine.
| Situation | Use Photos |
|---|---|
| One album already in library | Yes |
| Files only in a Finder folder | No, use batch below |
| Need custom width on every file | Batch tool or GetCompress |
| Situation | Better tool |
|---|---|
200+ HEIC in Listing/raw/ | sips loop or GetCompress |
| Mixed HEIC + Live Photos | Export stills first, then batch |
| Client wants PNG selects | Batch PNG in GetCompress or Terminal |
For single-file context and format comparison, see HEIC to JPG on Mac .
Batch with sips in Terminal
Open Terminal, cd to the folder:
mkdir jpeg-out
for f in *.heic *.HEIC; do
[ -f "$f" ] || continue
sips -s format jpeg -s formatOptions 90 "$f" --out "jpeg-out/${f%.*}.jpg"
done
Resize while converting (common MLS rule: 3000 px long edge):
mkdir jpeg-out
for f in *.heic *.HEIC; do
[ -f "$f" ] || continue
sips -Z 3000 -s format jpeg -s formatOptions 85 "$f" --out "jpeg-out/${f%.*}.jpg"
done
FFmpeg batch when sips fails on a odd file:
mkdir jpeg-out
for f in *.heic *.HEIC; do
[ -f "$f" ] || continue
ffmpeg -i "$f" -q:v 3 "jpeg-out/${f%.*}.jpg"
done
Parallel shoots from two photographers may duplicate IMG_####.HEIC names. Convert into separate jpeg-out/alice/ and jpeg-out/bob/ folders or rename after batch so listing uploads do not overwrite each other.
| Flag / option | Plain meaning |
|---|---|
-Z 3000 | Max width or height 3000 px |
formatOptions 85 | JPEG quality balance |
Always write to jpeg-out/ so originals stay untouched.
Test the loop on three files before running two hundred. If one HEIC fails, note the filename and run FFmpeg on outliers only rather than aborting the whole batch.
| Failure | Next step |
|---|---|
| sips unknown format | FFmpeg -q:v 3 on that file |
| Output too large | Lower formatOptions or add -Z resize |
| Wrong orientation | Fix in Photos first if EXIF matters |
Rename and resize after
MLS and Shopify often want consistent width and filenames like 001-front.jpg. Doing rename, resize, and convert in one pass beats chaining three scripts.
sips cannot rename sequentially easily; many photographers use a batch app or GetCompress preset instead of maintaining shell scripts per portal.
Sequential filenames matter for MLS uploads that sort alphabetically. If rename must happen after conversion, use a dedicated rename tool or export with zero-padded names from GetCompress presets rather than fragile shell printf loops.
If files are still too large after width cap, lower JPEG quality or run a second compress pass. See how to compress images on Mac for general image compression after conversion.
| Portal quirk | Practical response |
|---|---|
| Rejects over 5 MB | Lower q85 to q80 or cap width further |
| Requires sRGB | sips export is usually sRGB already |
| Wants exact 3000 px long edge | Use -Z 3000 in the same loop |
Using GetCompress
GetCompress is the straightforward way to batch convert HEIC on Mac when sips loops feel slow, when Live Photo pairs confuse scripts, or when you need preset width and quality every Friday listing.
Point GetCompress at a folder of HEIC photos. Choose JPEG output, set max width (for example 3000 px for listings) and quality, then export.
Workflow features that help:
- Batch queue: entire iPhone drop folder in one pass.
- Presets: save “MLS 3000px q85” and reuse every shoot.
- Resize plus convert: match portal rules without a second script.
- Folder monitoring: watch an ingest folder and auto-convert new HEIC files.
- Local processing: keep unreleased listing photos off online upload tools.
- Quality presets: when a portal caps megabytes per image, not just pixels.
- Clipboard drop: convert a small AirDrop batch without moving files into Photos.
Save the preset if you run the same settings weekly. Adjust quality once when a portal rejects the first upload rather than re-shooting. Folder monitoring helps when your team drops HEIC into Listing/raw/ every shoot day and you want JPEG in Listing/web/ automatically.
When a shoot mixes HEIC from phones and JPEG from a second shooter, convert HEIC only and leave JPEG untouched in a parallel folder. Merge after width and quality match so MLS sees one consistent grid. GetCompress presets make that second pass faster than tuning two different sips loops.
- Convert HEIC to JPG on MacConvert HEIC to JPG on Mac with Photos or Preview. Batch HEIC to JPEG for MLS, email, and uploads.
- Convert HEIC to PNG on MacConvert HEIC to PNG on Mac for editing. Send clients JPEG unless they asked for PNG.
- For photographersCreate JPEG, PNG, HEIC, TIFF, and WebP delivery files for galleries, proofs, downloads, and social posts while protecting color and useful detail.
- Convert CR2 to JPG on MacConvert Canon CR2 to JPEG on Mac with Photos. Keep RAW masters; export JPG for clients and MLS.
Buy GetCompress now for local media compression with reusable presets and no media upload.