snepconvert
A batch converter for audio, video and images that stages every file before moving it into place, so a run that dies halfway through leaves the originals exactly as it found them.

A batch file converter for audio, video and images. You give it files, folders, globs or ZIP archives, say what you’d like out the other end, and it works through them one at a time.
Originals are never modified
Every conversion writes into a staging folder and only moves into place once it’s actually finished. A run that fails, or that you interrupt halfway through, leaves nothing behind but log entries, and the sources sit there untouched. When something does fail the log keeps the whole command and its stderr, so you can run it again and look rather than guess.
What it handles
Audio arrives as FLAC, WAV, AIFF, OGG, MP3, M4A, AAC, Opus and a handful of others, and leaves as MP3, AAC, M4A, Opus, OGG, FLAC, WAV or AIFF. Video covers the usual MP4/MKV/MOV/AVI/WebM spread, and will pull just the audio out if that’s all you were after. Images go through Pillow, with ImageMagick as an optional backend for the more recondite formats it can’t open on its own, like HEIC, SVG and camera RAW. Backends load only when they’re needed, so a run over nothing but music never bothers importing Pillow at all.
Where it came from
This started life as a script for shrinking one FLAC library that had outgrown
its drive, and the one idea worth keeping from that version was staging. It
generalises well. With --archives it unpacks a ZIP, converts it, then deletes
the extracted copy before touching the next one, so peak disk usage is one
archive instead of the whole collection. Everything runs sequentially on
purpose. That isn’t the quick way. It is the way that avoids stranding you with
a half-finished folder and no clear notion of which half.