Top
Best
New

Posted by josharsh 12/27/2025

Show HN: Ez FFmpeg – Video editing in plain English(npmjs.com)
I built a CLI tool that lets you do common video/audio operations without remembering ffmpeg syntax.

Instead of: ffmpeg -i video.mp4 -vf "fps=15,scale=480:-1:flags=lanczos" -loop 0 output.gif

You write: ff convert video.mp4 to gif

More examples: ff compress video.mp4 to 10mb ff trim video.mp4 from 0:30 to 1:00 ff extract audio from video.mp4 ff resize video.mp4 to 720p ff speed up video.mp4 by 2x ff reverse video.mp4

There are similar tools that use LLMs (wtffmpeg, llmpeg, ai-ffmpeg-cli), but they require API keys, cost money, and have latency.

Ez FFmpeg is different: - No AI – just regex pattern matching - Instant – no API calls - Free – no tokens - Offline – works without internet

It handles ~20 common operations that cover 90% of what developers actually do with ffmpeg. For edge cases, you still need ffmpeg directly.

Interactive mode (just type ff) shows media files in your current folder with typeahead search.

npm install -g ezff

420 points | 198 commentspage 2
tgsovlerkhgsel 12/27/2025|
LLMs are a great interface for ffmpeg. Sometimes it takes 2-3 attempts/fixes ("The subtitles in the video your command generated are offset: i see the subtitles from the beginning of the movie but the video is cut from the middle of the movie as requested, fix the command") but it generally creates complex commands much more quickly than manual work (reading the man page, crafting the command, debugging it) would.
petterroea 12/27/2025||
Somehow it seems ffmpeg has become the "Can it run crysis" of UX design
btbuildem 12/27/2025||
npm? Have we learned nothing from the weekly node/npm security breaches? Not putting that hot mess anywhere near my dev box, thanks.
Workaccount2 12/27/2025||
The total upheaval of the current computing paradigm that AI will bring, if nothing else, is

"Hey computer, can you convert that funny kitchen cooking scene in this movie to a .gif I can share online?"

You're wasting your time on a dead man walking paradigm doing anything else. "Plain English" actually means plain English now.

two_handfuls 12/27/2025||
You're not wrong, but also there is value in a tool that will behave the same way consistently and has been vetted. I wouldn't be so down on this work.
andyfilms1 12/27/2025|||
It is a bit of a catch-22, a plain english wrapper opens up the tool to be more widely used by novices, but also prevents those novices from actually learning the tool.
Gud 12/27/2025||
Not really, how are they prevented from using the manual or the copious amounts of examples out there?

Memorising command line options beyond the absolute basics has rarely been helpful to me. And I use FreeBSD, where arcane commands are plentiful.

andyfilms1 12/27/2025||
Nothing, but after becoming reliant on an LLM they may simply become overwhelmed and give up once they outgrow it's capabilities. I've seen this happen to several people I know.
Workaccount2 12/27/2025|||
It's not so much being down on the work, as it is being down on 30 years of keyboard junkies proclaiming "Plain English" interfaces.
christstopit 12/27/2025||
If you think a developer creating something /they/ thought would be useful (or even just a fun exercise) is a waste of time because there are “better” options already available, then you really are so out of touch with what developing software means that you are in absolutely no position to make such judgment.
foundart 12/28/2025||
The github repo link from the npm page doesn't work, so I guess the author had second thoughts.

I was just fighting ffmpeg earlier today, or rather Gemini and Claude were fighting it. Task: create a video that is a pan across a photo, followed by a scale/zoom.

Probably easy for some people, but I had no clue and the LLMs weren't doing that well either. Things took a turn for the better when I asked Gemini for an alternative tool.

The answer was Vapoursynth - https://www.vapoursynth.com/doc/introduction.html#introducti...

Again, the LLM did the work, but it was able to do so. Since Vapoursynth is driven by python scripts (though with the extension .vpy), it was easy for me to make adjustments.

Kwpolska 12/27/2025||
GitHub repo link returns 404.
mmahemoff 12/27/2025||
Very cool idea since ffmpeg is one of those tools that has a few common tasks but most users would need to look up the syntax every time to implement them (or make an alias). In line with the ease of use motivation, you might consider supporting tab completion.
dev1ycan 12/28/2025||
FFMPEG is so goddamn cool, I was doing a mod for warcraft 3 where I restore the original Frozen Throne UI and one (especially useful before, Blizzard now restored the classic WEBM models so that part is now outdated but the blue buttons and other stuff are still relevant).

And virtually every method was failing in decoloring the "chains".webm video that Reforged has on the bottom corners (by default it has a very rusty feeling that fits reign of chaos more than the frozen throne)... but FFMPEG via commands did it perfectly fine, extremely easily by doing it frame by frame, actually incredible that this software is completely free.

broken-kebab 12/27/2025||
I like the idea, but a CLI utility dependent on Node.js is not a good thing frankly.
AnonC 12/27/2025||
I agree. Apart from having to use npm (and its package repository being susceptible to security issues), I’d prefer something a lot simpler. Could’ve been a Rust program or a Go program (a single executable) that could be built locally or installed (using several different methods and offering a choice).
tclancy 12/27/2025||
That ship sailed some time ago.
alexellisuk 12/27/2025|
This looks handy.. along with the odd gist of "convert mkv to mp4" that I have to use every other week.

Quite telling that these tools need to exist to make ffmpeg actually usable by humans (including very experienced developers).

teitoklien 12/27/2025||
i figure out the niche ffmpeg commands various chain filters, etc then expose them from my python cli tool with words similar to what this gentleman above has done.

If one has fewer such commands its as simple as just bash aliases and just adding it to ~/.bashrc

alias convertmkvtomp4='ffmpeg command'

then just run it anytime with just that alias phrase i use ffmpeg a lot so i have my own dedicated cli snippet tool for me, to quickly build out complex pipeline in easier language

the best part is i have --dry-run then exposes the flow + explicit commands being used at each step, if i need details on whats happening and verbose output at each step

sallveburrpi 12/27/2025||
I have a text file with some common commands, so no tools needed.

But yea ffmpeg is awesome software, one of the great oss projects imo. working with video is hellish and it makes it possible.

More comments...