I've used Handbrake for years, to transcode practically any video fileâincluding ripped DVDs and Blu-Raysâso I can watch the videos on practically any device. It's especially helpful for .mkv files, which can have a hodgepodge of video formats inside, and are notoriously difficult to play back, especially on older or more locked down playback devices.
But Handbrake's achilles heel, as a GUI-first application, is in a lack of easy batch operation. You can queue videos up one at a time, which is nice, but more recently, as I've ripped more TV seasons onto my NAS, I've wanted to transcode 5, 10, or 20 files at a time.
2026 Update : I've since noticed an option File > Add Titles to Queue... (Shift + Command + B), or you can click the dropdown next to 'Add To Queue' and select "Add All Titles To Queue". I'm not sure if the options were always there or not, but it seems like that's an easy enough way to do this in the GUI.
Enter HandBrakeCLI . Assuming you're on a Mac and installed Handbrake already (e.g. with
brew install --cask handbrake
), download
HandBrakeCLI
, mount the downloaded disk image, and copy the executable into a system path:
sudo cp /Volumes/HandBrakeCLI-1.5.1/HandBrakeCLI /usr/local/bin/
Then you can use it to loop over an entire directoryâeven recursivelyâand transcode all the video files within.
Here's a very tiny bash script I use to do just that, converting any file that ends in
.mkv
to an MP4 using the
General/HQ 1080p30 Surround
preset:
Let that run for a while, and you can transcode an entire TV series in one go.