Convert your videos easier with this FFMPEG Script
There's a particular kind of frustration every Linux user knows well. You've got a folder full of videos — maybe recordings from OBS, clips from your phone, old AVI files from 2009 that nothing will play anymore — and you need them all in a different format. All of them.
So you open a terminal and start typing ffmpeg -i video1.mkv -c:v libx264 ... and somewhere around the fifth file you think: "There has to be a better way."
There is. And it's embarrassingly simple.
First, A Love Letter to FFMPEG
Let me be very clear before anything else: I love FFMPEG. It is one of the most powerful pieces of software ever written, full stop.
FFMPEG is a free, open-source multimedia framework that can decode, encode, transcode, mux, demux, stream, filter, and play almost any audio or video format known to mankind. It runs on everything. It handles everything. It is the backbone of half the video software you use without even knowing it — VLC, YouTube, Handbrake, Plex, they all lean on it.
That respect isn't going anywhere.
But here's the honest truth: FFMPEG's command-line interface was designed for precision, not for speed. The flags are dense. The codec names aren't always obvious. And if you want to convert a whole folder in one shot? You're reaching for a loop, escaping spaces in filenames, praying none of your files have parentheses in the name.
For one file? Fine. For thirty files on a Tuesday afternoon? That's not a workflow. That's a punishment.
Enter FFMPEG Batch Convertor: Just Pick a Format and Go
FFMPEG Batch Convertor is a CLI bash script that wraps FFMPEG's power into a clean, guided workflow. You run it, answer a couple of prompts, and it converts your entire video folder — automatically, in one shot — to AVI, MP4, MKV, or WebM.
No memorising flags. No writing loops. No googling "ffmpeg batch convert mkv to mp4" for the fourth time this month.
The first time I ran it on a folder of 40 mixed-format clips and watched them all come out the other side as clean MP4s, I felt a very specific kind of satisfaction. The kind that comes from removing friction you've been quietly tolerating for years.
🛠️ What It Actually Does
🎬 Batch Processing — The Whole Point
The core feature is exactly what it says. Drop your videos in a folder, point the script at it, choose your output format, and it processes every single file. No manual looping. No glob patterns. No for f in *.mkv; do ... copy-pasting from Stack Overflow.
One command. One folder. Done.
📼 Four Formats, No Fuss
The script supports conversion to:
- MP4 — the universal default, plays everywhere
- MKV — the archivist's choice, lossless-friendly and container-rich
- AVI — legacy compatibility for older systems and software
- WebM — the open web format, perfect for browser delivery
Whether you're preparing uploads, archiving recordings, or just trying to get something to play on your TV's USB port, one of those four will cover it.
🤖 FFMPEG Knowledge: Optional
The script handles all the command generation internally. You don't need to know what -c:v libvpx-vp9 means, or what the right -crf value is for a given output format. It figures that out for you.
And if FFMPEG isn't installed yet? The script detects your system and installs it automatically. Because the last thing you need is to be told to go install a dependency before you can even start.
⚡ Speedy by Design
There's no bloat here. No GUI to load, no electron wrapper, no background daemon. It's a shell script — it launches in milliseconds, does its job, and gets out of your way. For someone who lives in the terminal, that matters.
⬇️ Getting Started in 60 Seconds
# 1. Download the script from the releases page on GitHub
# 2. Make it executable
chmod +x ffmpeg-batch-convertor.sh
# 3. Run it
./ffmpeg-batch-convertor.sh
Follow the on-screen prompts: pick your input folder, pick your output location, choose your format. That's it. The script takes over from there.
No config files. No arguments to memorise. Just run and go.
👤 Who Is This Actually For?
Creators and streamers who end up with a pile of OBS recordings in MKV that their editor, client, or upload target refuses to accept. Convert the whole session in one go before you sit down to edit.
Archivists and collectors who have years of video files in formats that are slowly becoming unplayable. One pass through this script and everything is standardised.
Linux users who hate repetitive terminal work — which is a surprisingly large and very opinionated group of people. You know who you are.
Anyone coming from a GUI tool who was put off by FFMPEG's raw interface but wants the power without the learning curve.
What It Doesn't Do (And That's Fine)
This is a conversion tool, not an editor. It won't trim your clips, add subtitles, adjust bitrates per-file, or transcode audio tracks selectively. That's not the goal.
The goal is to take a folder of videos and produce a folder of converted videos, with zero friction. And at that, it delivers cleanly.
If you need granular per-file control, you're back to raw FFMPEG — which is the right tool for that job. But for the bulk work that accounts for 80% of real-world conversion needs? This script handles it completely.
Final Verdict
FFMPEG Batch Convertor didn't replace my appreciation for FFMPEG itself. Nothing will.
But it earned something better: regular use. It's the tool I reach for first now, before I even think about opening a man page. It sits in my ~/scripts folder next to a handful of other quality-of-life utilities, and it earns its place every time I have a batch job to run.
It's not trying to be clever. It's trying to save you time. And it does exactly that.
You already have FFMPEG. Now you have a reason to enjoy using it.