FFMPEG of course. Being a command line application it can be easily integrate into any batch process no matter how convoluted, with the benefit that you get to learn about the power of the command line while you're at it (worked for me).
I haven't explored h.265 encoding much yet, but using settings I stole from the ffmpeg wiki here's how you'd encode a folder full of .movs:
cd "/the/path to/your/folder/"
mkdir "for the trash"
for i in *.mov; do;
ffmpeg -i "$i" -c:v libx265 -preset slow -crf 25 -c:a copy "${i/\.mov/.mp4}"
mv $i "./for the trash/"
done
Note that this won't delete the files, it will move them to a new folder called for the trash. This is because if you delete files with the command line they disappear instantly, you don't get a second chance if you change your mind or make a typo. There are trash command line utilities, but that's beyond the scope of this answer.
here's the wiki entry I based my ffmpeg command on, it does a good job of explaining the options used (I'm a bit thingy about lossy compression so I wound up the quality settings somewhat. I also used the slow preset which gives smaller file sizes. Depending on how much time you have you could use anything from ultrafast
to placebo
to achieve results that vary in file size but with the same quality. placebo
being so named because the tiny bit of difference it makes at the expense of greatly increased processing time is mostly in your head):
In this example, we will use the following settings:
- default CRF of 28. The CRF of 28 should visually correspond to libx264 video at CRF 23, but result in about half the file size.
- medium preset. The preset determines how fast the encoding process will be – at the expense of compression efficiency. Put differently,
if you choose ultrafast, the encoding process is going to run fast,
but the file size will be larger when compared to medium. The visual
quality will be the same. Valid presets are ultrafast, superfast,
veryfast, faster, fast, medium, slow, slower, veryslow and placebo.
- AAC audio at 128 kBit/s. This uses the ffmpeg-internal encoder, but under AAC you will find info about more options.
ffmpeg -i input -c:v libx265 -preset medium -crf 28 -c:a aac -b:a 128k
output.mp4
Handbrake also works on the command line.
And lastly if you are allergic to the colossal power lurking in terminal.app there are GUIs for ffmpeg, like this or this. Not sure how well they deal with batch encoding, and this is not a recommendation, because I don't use any of them. Time to toughen up and use the command line!