How to batch compress videos on a Mac
You do not need to compress videos one at a time on a Mac. Select them all in the Finder, right-click, and choose Encode Selected Video Files to run them through Apple’s encoder at 720p or 1080p in one go; for a specific target size per file, drop the whole selection into Manatee’s Shrink mode and it works through them as a job list. Both write new files and leave the originals untouched, which is the one rule that matters when you are processing dozens of clips.
Before you start: pick one target and keep the originals
Batch work means applying the same decision to every file, so make the decision once and make it a safe one.
- Decide on the output. For sharing and archiving phone footage, 1080p H.264 is the safe default: it plays everywhere and looks good on any screen that is not a 4K television. For screen recordings and long lectures, 720p is often enough.
- Keep the originals. Every method below writes new files rather than replacing the old ones. Do not delete the originals until you have opened a few of the results and checked they play all the way through.
- Put the sources in one folder. It makes selecting them, and cleaning up afterward, much easier.
- Test on two or three files first. A setting that looks fine on a talking-head clip can look rough on a drone shot. Check a representative sample before committing a hundred files to it.
If you are unsure which setting to change to get a file smaller, our post on bitrate, resolution and frame rate explains what each one does.
Option 1: the Finder’s built-in encoder
macOS includes a video encoder you can reach from a right-click, and it accepts a multiple selection.
- In the Finder, select all the videos you want to compress (Command-A in the folder, or Command-click to pick).
- Right-click the selection and choose Encode Selected Video Files. If you do not see it, look under Services, or enable it in System Settings, then Extensions, then Finder.
- In the dialog, choose a size: 480p, 720p, 1080p or 4K. Pick the one at or below your source resolution.
- Choose Greater Compatibility (H.264, plays everywhere) or Higher Quality (HEVC, smaller files, Apple and modern devices only).
- Click Continue. A progress indicator runs through the files, and each result appears next to its source with the same name plus a suffix.
This method is free, fast (it uses the Mac’s hardware encoder), and good enough for most batches. Its limits: you cannot set a bitrate or a target size, and the output names and format are fixed. If every file needs to be under, say, 25 MB for an upload form, the resolution presets alone will not guarantee that.
Option 2: a Shortcuts workflow you can reuse
The Shortcuts app (on macOS 12 and later) has an Encode Media action that does the same job as the Finder command, with the advantage that you can save it as a Quick Action and add steps around it.
- Open Shortcuts and create a new shortcut.
- Add the Encode Media action. Set the size (720p or 1080p) and leave the format on Video.
- Add a Save File action after it, and point it at an output folder so results do not land in the same place as the sources.
- In the shortcut’s details, turn on Use as Quick Action and enable it for Finder, with the input set to Files (or Media).
- Back in the Finder, select your videos, right-click, and choose the shortcut from the Quick Actions menu.
You can also add a Rename action, or drop the results into a dated folder, which is handy if you run this every week on camera footage.
Option 3: ffmpeg in Terminal for full control
If you want to choose the exact bitrate or quality and you are comfortable with Terminal, ffmpeg is the tool. It is not part of macOS, so install it first with Homebrew (brew install ffmpeg), then run a loop over the folder.
- Open Terminal and move into the folder: type cd, a space, then drag the folder into the window and press Return.
- Run a loop that re-encodes every .mov into a new .mp4 alongside it:
for f in *.mov; do
ffmpeg -i "$f" -c:v libx264 -crf 24 -preset medium \
-c:a aac -b:a 128k -movflags +faststart "${f%.*}-compressed.mp4"
done
- Adjust -crf to taste: lower numbers mean higher quality and larger files (20 is very good, 28 is noticeably compressed). Add -vf scale=-2:1080 before the audio options to force 1080p output.
- Change .mov to .mp4 or *.MP4 to match your sources; the shell is case sensitive.
This gives you a consistent quality level across every file, which is a different thing from a consistent size. A boring clip will come out much smaller than a busy one at the same CRF.
Option 4: a target size per file with Manatee
When the requirement is a number (“every clip under 50 MB for the portal”), Manatee’s Shrink mode is the direct route. You name a size in megabytes, and for each file Manatee finds the quality that fits.
- Select all the videos in the Finder and drag them onto Manatee’s window, or onto its menu bar icon. You can also right-click in the Finder and use Fix with Manatee from the Services menu.
- Each file appears as a row in the job list.
- Choose Shrink and enter the target size. Manatee works through the list, showing progress on each row.
- Each result is written as a new file next to its original. Originals are never modified.
Manatee accepts MOV, MP4, M4V, AVI, MKV, WebM, MTS and the rest of the common camera and phone formats, so a folder that mixes an iPhone’s .mov files with a camcorder’s .mts files can go in together. Everything runs on the Mac; no file leaves it.
What Manatee does not do: it is not an editor, so it will not trim, crop or join clips, and it does not rename or sort output for you. It is a converter and shrinker with a queue. If you need a 60 fps clip cut to a specific length first, do that in QuickTime Player before dropping it in.
Checking the results
Whichever method you used, spot-check before you move or delete anything.
- Sort the output folder by size. Anything that came out suspiciously undersized (a few hundred kilobytes for a minute of video) probably failed partway; open it.
- Open three or four results in QuickTime Player and scrub to the end. A file that plays the first minute and then stops was an interrupted encode.
- Compare one result side by side with its original at full-screen. If detail in faces or text has gone soft, go back and choose a higher setting for the whole batch; it is quicker than redoing a few individually.
- Only then archive or delete the originals.
If a source file refuses to encode at all, it may be damaged rather than unsupported. Our post on how to check whether a video file is corrupted walks through the diagnosis; Manatee’s Repair mode can often rebuild a file that plays partway and then stops.
Questions
Can I batch compress straight from the Photos app?
Yes, indirectly. In Photos, select the videos, choose File, then Export, then Export Videos, and pick a movie quality (720p or 1080p). Photos re-encodes on export. For camera originals from Photos that you want to run through one of the methods above, use Export Unmodified Original instead, then process the exported files.
Will batch compression change the file dates?
The new files get today’s date as their creation date in the Finder. The recording date inside the video’s own metadata is usually carried over by the Finder encoder and by ffmpeg, but not always, so if dates matter for sorting, keep the originals or check before you delete them.