frontpage.
newsnewestaskshowjobs

Made with ♥ by @iamnishanth

Open Source @Github

fp.

Open in hackernews

Show HN: Ez FFmpeg – Video editing in plain English

http://npmjs.com/package/ezff
101•josharsh•3h ago
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

Comments

HelloUsername•2h ago
The one good usecase I've found for AI chatbots, is writing ffmpeg commands. You can just keep chatting with it until you have the command you need. Some of them I save as an executable .command, or in my .txt note.
Tempest1981•2h ago
One that older AI struggled with was the "bounce" effect: play from 0:00 to 0:03, then backwards from 0:03 to 0:00, then repeat 5 times.
Terr_•2h ago
As pessimistic about it as I am, I do think LLMs have a place in helping people turn their text description into formal directives. (Search terms, command-line, SQL, etc.)

... Provided that the user sees what's being made for them and can confirm it and (hopefully) learn the target "language."

Tutor, not a do-for-you assistant.

eviks•1h ago
The "provided" isn't provided, of course, especially the learning part, that's not what you'd turn to AI for vs more reliable tutoring alternatives
left-struck•1h ago
I agree apart from the learning part. The thing is unless you have some very specific needs where you need to use ffmpeg a lot, there’s just no need to learn this stuff. If I have to touch it once a year I have much better things to spend my time learning than ffmpeg command
serial_dev•29m ago
There is no universe where I would like to spend brain power on learning ffmpeg command by heart.
xattt•36m ago
It you stretch it little further, those formal directives also include language and vocabulary of a particular domain (legalese, etc…).
beepbooptheory•1h ago
But doesnt something like this interface kind of show the inefficiency of this? Like we can all agree ffmpeg is somewhat esoteric and LLMs are probably really great at it, but at the end of the day if you can get 90% of what you need with just some good porcelain, why waste the energy spinning up the GPU?
imiric•1h ago
Because the porcelain is purpose built for a specific use case. If you need something outside of what its author intended, you'll need to get your hands dirty.

And, realistically, compute and power is cheap for getting help with one-off CLI commands.

pixelpoet•1h ago
Requiring the installation of a massive kraken like node.js and npm to run a commandline executable hardly screams efficiency...
chpatrick•33m ago
Because FFmpeg is a swiss army knife with a million blades and I don't think any easy interface is really going to do the job well. It's a great LLM use case.
corobo•35m ago
LLMs are an amazing advance in natural language parsing.

The problem is someone decided that and the contents of Wikipedia was all something needs to be intelligent haha

Tempest1981•2h ago
I was surprised that macOS (QuickTime/Preview, iMovie) can't read .mp4 files. Not sure if it was due to H.265 or the audio codec. I tried using ffmpeg to convert to .mov but that also failed to open, since I guess MOV is just another container format.

Is there an easier way?

codegladiator•2h ago
vlc
felixfoertsch•2h ago
IMHO the de-facto video player for macOS is [IINA](https://iina.io/).
trvz•1h ago
That exists, but it’s still VLC.
wging•1h ago
It's based on mpv, not vlc.
kiicia•1h ago
MP4 is container, not format, so if you have unsupported format packed into MP4 container it won’t be played. Example is trying to play AV1 video codec on devices with M2 chip or older. It won’t play. But it will play on devices with M3 chip and newer. Easiest solution is to use other player so that you can watch any MP4 file but with software decoding where hardware decoding is not available. Examples of such players are MPV or VLC.
mmahemoff•2h ago
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.
dllu•2h ago
When converting video to gif, I always use palettegen, e.g.

    ffmpeg -i input.mp4 -filter_complex "fps=15,scale=640:-2:flags=lanczos,split[a][b];[a]palettegen=reserve_transparent=off[p];[b][p]paletteuse=dither=sierra2_4a" -loop 0 output.gif
See also: this blog post from 10 years ago [1]

[1] https://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html

CrossVR•1h ago
I've been thinking of integrating pngquant as an ffmpeg filter, it would make it possible to generate even better pallettes. That would get ffmpeg on par with gifski.
xattt•38m ago
Those command flags just roll off the tongue like two old friends catching up!

/s

Kwpolska•2h ago
GitHub repo link returns 404.
eviks•1h ago
That's the problem ideally solved by typed data, i.e., some UI where instead of trying to memorize whether it's thumb/s/nails you can read the closed list of alternatives, read contextual help and pick one
my_brain_saying•1h ago
This is why we have fish tab completions. Does exactly that; list of possible commands with contextual help. Fish rules.
eviks•1h ago
Yeah, no, that's a pale imitation that only addresses the one specific example given. But, like, how would you even know what target formats are supported? Break the flow and look it up or simply read the drop-down list? The free type-any-text interface with poor helpers is the worst in accessibility

Which format is the default if no argument is given?

Or more complicated contextual knowledge - if you cut 1sec of a video file, does fish autocomplete to tell you whether the video is reencoded or cut (otherwise) losslessly

Also, what does fish complete to on Windows?

vithalreddy•1h ago
Can't access the githup repo https://github.com/josharsh/ezff
bdbdbdb•1h ago
Sometimes an idea comes along thats so obvious it makes me angry. I have been struggling with ffmpeg commands for over well a decade. All the time I wasted googling and creating scripts so I wouldn't have to regoogle and this could have existed literally from day one
petterroea•1h ago
Somehow it seems ffmpeg has become the "Can it run crysis" of UX design
spullara•1h ago
I have a little script that I use on the CLI to do this kind of stuff (calls an LLM to figure out how to do CLI stuff) but you can just as easily now use any of the coding agents.
pdyc•1h ago
interesting approach, i solved similar problem by creating visual tool to generate ffmpeg commands but its not the same(it cant do conversion etc.)

I like that you took no AI approach, i am looking for something like this i.e. understanding intent and generating command without using AI but so far regex based approaches have proved to be inadequate. I also tried indexing keywords and creating index of keywords with similar meaning that improved the situation a bit but without something heavy like bert its always a subpar experience.

broken-kebab•38m ago
I like the idea, but a CLI utility dependent on Node.js is not a good idea frankly.
tclancy•25m ago
That ship sailed some time ago.

Show HN: Ez FFmpeg – Video editing in plain English

http://npmjs.com/package/ezff
101•josharsh•3h ago•33 comments

Show HN: Witr – Explain why a process is running on your Linux system

https://github.com/pranshuparmar/witr
336•pranshuparmar•20h ago•56 comments

Show HN: Xcc700: Self-hosting mini C compiler for ESP32 (Xtensa) in 700 lines

https://github.com/valdanylchuk/xcc700
127•isitcontent•20h ago•23 comments

Show HN: AutoLISP interpreter in Rust/WASM – a CAD workflow invented 33 yrs ago

https://acadlisp.de/noscript.html
119•holg•19h ago•37 comments

Show HN: GeneGuessr – a daily biology web puzzle

https://geneguessr.brinedew.bio/
84•brinedew•4d ago•20 comments

Show HN: Gaming Couch – a local multiplayer party game platform for 8 players

https://gamingcouch.com
417•ChaosOp•5d ago•114 comments

Show HN: Lamp Carousel – DIY kinetic sculpture powered by lamp heat (2024)

https://evan.widloski.com/posts/spinners/
95•Evidlo•2d ago•18 comments

Show HN: Minimalist editor that lives in browser, stores everything in the URL

https://github.com/antonmedv/textarea
460•medv•2d ago•164 comments

Show HN: Exploring Mathematics with Python

https://coe.psu.ac.th/ad/explore/
265•Andrew2565•1w ago•29 comments

Show HN: Automoderated Anonymous Wall of Messages

https://wall.tulv.in/
5•atulvi•16h ago•3 comments

Show HN: Hybrid-Transpiler – A tool to convert C++ to Rust and Go

https://github.com/cmc-labo/hybrid-transpiler
6•hpscript•20h ago•1 comments

Show HN: Vibium – Browser automation for AI and humans, by Selenium's creator

https://github.com/VibiumDev/vibium
435•hugs•2d ago•122 comments

Show HN: ISON – Data format that uses 30-70% fewer tokens than JSON for LLMs

https://github.com/maheshvaikri-code/ison
4•maheshvaikri99•12h ago•9 comments

Show HN: Spacelist, a TUI for Aerospace window manager

https://github.com/magicmark/spacelist
4•markl42•12h ago•1 comments

Show HN: CineCLI – Browse and torrent movies directly from your terminal

https://github.com/eyeblech/cinecli
343•samsep10l•4d ago•107 comments

Show HN: Jmail – Google Suite for Epstein files

https://www.jmail.world
1550•lukeigel•6d ago•360 comments

Show HN: Domain Search MCP – AI-powered domain availability checker

https://github.com/dorukardahan/domain-search-mcp
5•dorukardahan•1d ago•3 comments

Show HN: I embedded 10M StreetView images

https://view.geospot.sdan.io/
12•sdan•1d ago•5 comments

Show HN: Polibench – compare political bias across AI models

https://polibench.vercel.app/
3•randomkiwi99•16h ago•0 comments

Show HN: Turn raw HTML into production-ready images for free

https://html2png.dev
151•alvinunreal•3d ago•80 comments

Show HN: Twine – A tool to dynamically trace calls in production Elixir systems

https://github.com/ollien/twine
3•todsacerdoti•17h ago•0 comments

Show HN: A small embeddable and hackable Lisp-2 interpreter in C

https://github.com/mistivia/bamboo-lisp
2•mistivia•17h ago•0 comments

Show HN: I was tired of link shorteners, so I built Rediredge

https://leotrapani.com/blog/rediredge
3•trapani•18h ago•0 comments

Show HN: QBridge, a clean, modern iOS alternative to Cordova and Capacitor

https://github.com/Qbix/QBridge
2•EGreg•19h ago•2 comments

Show HN: Web CLI – Browser-based terminal with multi-tab support

https://github.com/pozgo/web-cli
3•polinux•19h ago•0 comments

Show HN: HN Wrapped 2025 - an LLM reviews your year on HN

https://hn-wrapped.kadoa.com?year=2025
313•hubraumhugo•6d ago•153 comments

Show HN: What if Dr. Mario had more than 3 colors?

https://pressbin.com/minigames/dr-blocks.html
5•jawns•14h ago•0 comments

Show HN: A schema-first, multi-agent pipeline for autonomous research

https://github.com/giatenica/gia-agentic-short
2•7777777phil•20h ago•0 comments

Show HN: A local-first, reversible PII scrubber for AI workflows

https://medium.com/@tj.ruesch/a-local-first-reversible-pii-scrubber-for-ai-workflows-using-onnx-a...
37•tjruesch•2d ago•13 comments

Show HN: WebPtoPNG – I built a WebP to PNG tool, everything runs in the browser

https://webptopng.cc/
20•akseli_ukkonen•2d ago•19 comments