9 ms·
Show HN: Ez FFmpeg – Video editing in plain English
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
- HelloUsername 10mo agoThe 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 10mo agoOne 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.
- geysersam 10mo agoJust tried it and got this, is it correct? > Write an ffmpeg command that implements the "bounce" effect: play from 0:00 to 0:03, then backwards from 0:03 to 0:00, then repeat 5 times. ffmpeg -i input.mp4 \ -filter_complex " [0:v]trim=0:3,setpts=PTS-STARTPTS[f]; [f]reverse[r]; [f][r]concat=n=2:v=1:a=0[b]; [b]loop=loop=4:size=150:start=0 " \ output.mp4
- Tempest1981 10mo agoThanks, but no luck. I tested it on a 3 second video, and got a 6 second video. I.e. it bounced 1 time, not 5 times. Maybe this should be an AI reasoning test. Here is what eventually worked, iirc (10 bounces): ffmpeg -i input.mkv -filter_complex "split=2[fwd][rev_in]; [rev_in]reverse[rev]; [fwd][rev]concat=n=2,split=10[p1][p2][p3][p4][p5][p6][p7][p8][p9][p10]; [p1][p2][p3][p4][p5][p6][p7][p8][p9][p10]concat=n=10[outv]" -map "[outv]" -an output.mkv
- Terr_ 10mo agoAs 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 10mo agoThe "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 10mo agoI 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 10mo agoThere is no universe where I would like to spend brain power on learning ffmpeg commands by heart.
- skydhash 10mo agoNo one learns those. What people do is just learning the UX of the cli and the terminology (codec, opus, bitrate, sampling,…)
- rolfus 10mo agoAgreed. I have a bunch of little command-line apps that I use 0.3 to 3 times a year* and I'm never going to memorize the commands or syntax for those. I'll be happy to remember the names of these tools, so I can actually find them on my own computer. * - Just a few days ago I used ImageMagick for the first time in at least three years. I downloaded it just to find that I already had it installed.
- beepbooptheory 10mo agoBut 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 10mo agoBecause 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 10mo agoRequiring the installation of a massive kraken like node.js and npm to run a commandline executable hardly screams efficiency...
- RadiozRadioz 10mo agoThat's a deficiency with this particular implementation, not an inherent disadvantage to the method
- chpatrick 10mo agoBecause 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.
- skydhash 10mo agoBut you only need to find the correct tool once and mark it in some way. Aka write a wrapper script, jot down some notes. You are acting like you’re forced to use the cli each time.
- NewsaHackO 10mo ago
- corobo 10mo agoLLMs 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
- madeofpalk 10mo agoThe confusion was thinking that language is the same thing as intelligence.
- Marazan 10mo agoThis seems like a glib one liner but I do think it is profoundly insightful as to how some people approach thinking about LLMs. It is almost like there is hardwiring in our brains that makes us instinctively correlate language generation with intelligence and people cannot separate the two. It would be like if for the first calculators ever produced instead of responding with 8 to the input 4 + 4 = printed out "Great question! The answer to your question is 7.98" and that resulted in a slew of people proclaiming the arrival of AGI (or, more seriously, the ELIZA Effect is a thing).
- Kiro 10mo agoYou and me are great examples of that. We are both extremely stupid and yet we can speak.
- vovavili 10mo agoCan attest.
- andrepd 10mo agoAnd reddit, that bastion of human achievement.
- Tempest1981 10mo agoI 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 10mo agovlc
- felixfoertsch 10mo agoIMHO the de-facto video player for macOS is [IINA](https://iina.io/ https://iina.io/).
- kiicia 10mo agoMP4 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.
- Tempest1981 10mo agoYes, VLC works fine for playing. The user wanted to edit some mp4 videos with iMovie (vs ffmpeg). I think it was an M4 Mac. Does iMovie need a codec pack? I know some PC OEMs don't ship an h.265 codec, pointing users to a $0.99 download. Thought Mac would include it, being aimed at content creators. Hoping for a cheaper solution than Adobe Premiere.
- mmahemoff 10mo agoVery 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 10mo agoWhen 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 https://blog.pkh.me/p/21-high-quality-gif-with-ffmpeg.html
- CrossVR 10mo agoI'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 10mo agoThose command flags just roll off the tongue like two old friends catching up! /s
- deleted 10mo ago[deleted]
- crazysim 10mo agoGifski (https://gif.ski/ https://gif.ski/) might be a good alternative to look to that's gif-pallete aware.
- dspillett 10mo agoDoes ffmpeg's gif processing support palette-per-frame yet? Last time I compared them (years ago, maybe not long after that blog post), this was a key benefit of gifski allowing it to get better results for the same filesize in many cases (not all, particularly small images, as the total size of the palette information can be significant).
- foltik 10mo agoIt’s a shame this isn’t the default.
- BoingBoomTschak 10mo ago
- Kwpolska 10mo agoGitHub repo link returns 404.
- eviks 10mo agoThat'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 10mo agoThis is why we have fish tab completions. Does exactly that; list of possible commands with contextual help. Fish rules.
- eviks 10mo agoYeah, 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?
- skydhash 10mo agoWhich flow is being broken here? Especially when the information is easily accessible with `man`.
- eviks 10mo agothe flow that doesn't require you to open a different tab or cancel a command to `man` your way through dozens of poorly searchable pages of documentation, but allows you to continue translating what you want in your mind into the interface command with delay potentially subsecond interrupts
- skydhash 10mo ago
- vithalreddy 10mo agoCan't access the githup repo https://github.com/josharsh/ezff https://github.com/josharsh/ezff
- bdbdbdb 10mo agoSometimes 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 10mo agoSomehow it seems ffmpeg has become the "Can it run crysis" of UX design
- spullara 10mo agoI 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 10mo agointeresting 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 10mo agoI like the idea, but a CLI utility dependent on Node.js is not a good thing frankly.
- tclancy 10mo agoThat ship sailed some time ago.
- AnonC 10mo agoI 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).
- maximgeorge 10mo ago[dead]
- Joyfield 10mo agoUhm... Millibit, Millibyte, Megabit, Megabyte?
- two_handfuls 10mo agoGood point, "mb" as used in the linked example would mean "millibit", which is almost certainly not what they meant.
- gamer191 10mo agoThanks, will definitely check this out Has anyone else been avoiding typing FFmpeg commands by using file:// URLs with yt-dlp
- ramigb 10mo agoThat's beautiful! I see a .claude folder in your code, I am curious if you've "vibecoded" the whole project or just had claude there for some tasks! not that it matters or takes away from your work but just pure curiosity as someone who enjoys betting on the LLM output XD
- ramon156 10mo ago> it handles 20 common patterns ... that cover 90% Could you elaborate on this? I see a lot of AI-use and I'm wondering if this is claude speaking or you
- alexellisuk 10mo agoThis 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).
- sallveburrpi 10mo agoI 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.
- teitoklien 10mo agoi 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
- qbow883 10mo agoDays since last ffmpeg CLI wrapper: 0 It's incredible what lengths people go to to avoid memorizing basic ffmpeg usage. It's really not that hard, and the (F.) manual explains the basic concepts fairly well. Now, granted, ffmpeg's defaults (reencoding by default and only keeping one stream of each type unless otherwise specified) aren't great, which can create some footguns, but as long as you remember to pass `-c copy` by default you should be fine. Also, hiding those footguns is likely to create more harm than it fixes. Case in point: "ff convert video.mkv to mp4" (an extremely common usecase) maps to `ffmpeg -i video.mkv -y video.mp4` here, which does a full reencode (losing quality and wasting time) for what can usually just be a simple remux. Similarly, "ffmpeg extract audio from video.mp4" will unconditionally reencode the audio to mp3, again losing quality. The quality settings are also hardcoded and hidden from the user. I can sympathize with ffmpeg syntax looking complicated at first glance, but the main reason for this is just that multimedia is really complicated and that some of this complexity is necessary in order to not make stupid mistakes that lose quality or waste CPU resources. I truly believe that these ffmpeg wrappers that try to make it seem overly simple (at least when it's this simple, i.e. not even exposing quality settings or differentiating between reencoding and remuxing) are more hurtful than helpful. Not only can they give worse results, but by hiding this complexity from users they also give users the wrong ideas about how multimedia works. "Abstractions" like this are exactly how beliefs like "resolution and quality are the same thing" come to be. I believe the way to go should be educating users about video formats and proper ffmpeg usage (e.g. with good cheat sheets), not by hiding complexity that really should not be hidden. Edit: Reading through my comment again, I have to apologize for the slightly facetious opening statement, even if I quality it later on. The fact that so many ffmpeg wrappers exists is saying something about its apparent difficulty, but as I argue above, a) there are reasons for this (namely, multimedia itself just being complicated), and b) I believe there are good and bad ways to "fix" this, with oversimplified wrappers being more on the "bad" side.
- deleted 10mo ago[deleted]
- e-Minguez 10mo agoIf you use it from time to time it would be very challenging to remember the million of different options ffmpeg has.
- vivzkestrel 10mo agoI would love to see something like this for OpenSSL
- Kcnfjhggjbh 10mo ago[flagged]
- gcanyon 10mo agoI can only speak to my experience, but I spent a long time being puzzled by video editor user interfaces, until I ran into ScreenFlow about ten years ago. For whatever reason, the UI clicked, and I've used it ever since. It's a single purchase, not monthly, and relatively affordable. https://www.telestream.net/screenflow/overview.htm https://www.telestream.net/screenflow/overview.htm
- karmakaze 10mo agoI would definitely use an LLM, to see what the suggested options do and tweak them. Using a different package name could be helpful. I searched for ezff docs and found a completely different Python library. Also ez-ffmpeg turns up a Rust lib which looks great if calling from Rust.
- btbuildem 10mo agonpm? Have we learned nothing from the weekly node/npm security breaches? Not putting that hot mess anywhere near my dev box, thanks.
- Workaccount2 10mo agoThe 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 10mo agoYou'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 10mo agoIt 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 10mo agoNot 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 10mo agoNothing, 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 10mo agoIt's not so much being down on the work, as it is being down on 30 years of keyboard junkies proclaiming "Plain English" interfaces.
- 10mo ago
- arjie 10mo agoI actually just use Claude code. “Stabilize the video x.mp4 and keep my daughter Astra as the subject. Convert it to a GIF that is under a megabyte”. It does a great job. It will sample images from the video then go crop the video to that, stabilize if required, and then make me an optimized GIF that I can put in my weekly journal.
- phil294 10mo agoI like it and would like to see an entire Linux OS being done in a similar manner. Or shell / wrapper / whatever. A sane homogeneous cli for once, that treats its user as a human instead of forcing them to remember the incompatible invocation options of `tar` and `dd` for absolutely no reason. zip my-folder into my-zip.tar with compression level 9 write my-iso ./zip.zip onto external hard drive git delete commit 1a4db4c convert ./video.mp4 and ./audio.mp3 into ./out.mp4 merge ./video.mp4 and ./audio.mp3 to ./out.mp4 without re-encoding And add amazing autocomplete, while allowing as many wordings as possible. No need for LLMs. One can dream.
- dheera 10mo agoSee my more generalized CLI helper which does exactly this: https://github.com/dheera/scripts/blob/master/helpme https://github.com/dheera/scripts/blob/master/helpme Example usage: helpme ffmpeg assemble all the .jpg files into an .mp4 timelapse video at 8fps helpme zip my-folder into my-zip.tar with compression level 9 helpme git delete commit 1a4db4c ... This originated from an ffmpeg wrapper I wrote but then realized it could be used for all commands: https://news.ycombinator.com/item?id=40410637 https://news.ycombinator.com/item?id=40410637
- PaulDavisThe1st 10mo ago> write my-iso ./zip.zip onto external hard drive Dang! not that one, the other one! > zip my-folder into my-zip.tar with compression level 9 What do you mean, I don't have write permissions in the current working directory? I meant for you to put the output in $HOME, i mean /tmp, i mean /var/tmp, i mean on the external hard drive, no other other one. > git delete commit 1a4db4c What did you do? I didn't mean delete it and erase it from the reflog and run gc! I just mean "delete it" the way any one would ever mean that! I can never get it back now!
- phil294 10mo agoThings that definitely need interactive prompts before running or fail out of ambiguity otherwise. Let's not pretend these are impossible problems to overcome design-wise.
- tgsovlerkhgsel 10mo agoLLMs 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.
- sirodoht 10mo agoInspiring! I just asked Cursor to make llmwrap inspired by this, it's like rlwrap (readline wrap) but with LLMs! https://github.com/sirodoht/llmwrap https://github.com/sirodoht/llmwrap
- dheera 10mo agoSee also: https://github.com/dheera/scripts/blob/master/helpme https://github.com/dheera/scripts/blob/master/helpme helpme ffmpeg assemble all the .jpg files into an .mp4 timelapse video at 8fps This evolved from an ffmpeg wrapper I wrote before: https://news.ycombinator.com/item?id=40410637 https://news.ycombinator.com/item?id=40410637
- justinhj 10mo agoThere is no need for a wrapper or memorizing syntax in our new llm world.
- deleted 10mo ago[deleted]
- low_tech_punk 10mo agoNo AI is appealing but there is the cliff problem. If there is one small thing the mini language can't handle, the user would have no chance solving it themselves. They might as well start with an LLM solution first. One workaround is that when there is syntax error, let user optionally switch to LLM?
- naikrovek 10mo agoSmall English nitpick: > ff slow down video.mp4 by 2x How do you slow something down by 2x? x is a multiplier. 2 is a number greater than 1. Multiplying by a number greater than 1 makes the result LARGER. If you’re talking about “stretch movie duration to 2x”, say that instead. Saying something is 2x smaller or 2x shorter or 2x cheaper doesn’t make sense. 2x what? What is the unit of “cheap” or “short” or “small”? How much is “1 slow down”? How many “slow down” are in the movie where you want twice as many of them? Doesn’t make sense does it? So how can something be slowed by 2x? That also doesn’t make sense. I know what is trying to be said. I know what is meant. Please just say it right. Things like throw us autistic people for a freaking loop, man. This really rustles our jimmies. Language is for communicating. If we aren’t all on the same page about how to say stuff, you spend time typing and talking and writing and reading and your message doesn’t make it across the interpersonal language barrier. I don’t want to see people wasting their time trying to communicate good ideas with bad phrasing. I want people to be able to say what they mean and move on. I also don’t want to nitpick things like this, but I don’t want phrases like “slow down by 2x” to be considered normal English, either, because they aren’t.
- nulltype 10mo agoIsn’t it somewhat common to say something like “slow this down by a factor of 2”?
- jimbobthrowawy 10mo agoReminds me of a thing Steve Mould mentioned in a video about a claim in a book "The temperature outside an aeroplane is six times colder than the temperature inside a freezer." https://www.youtube.com/watch?v=C91gKuxutTU https://www.youtube.com/watch?v=C91gKuxutTU - Stand-up comedy routine about bad science
- metadope 10mo ago> Small English nitpick: > 2x? x is a multiplier. Translation of English is often problematic because of the multiple valid interpretations of simple words, and concepts that have many synonyms. The solution here is to use arithmetic to supercede English. It may then become apparent that what is meant is x as a denominator. Translate x into 'times', and then think of 'times' not as strictly multiplication but instead as an iteration (which, after all, is what multiplication is), and that might get you closer to what is meant, which is a standard arithmetic inversion of multiplication to division. > Saying something is 2x smaller or 2x shorter or 2x cheaper doesn’t make sense It does, if you do the inversion. Something 2 times smaller is half (1/2) as big. Two ways of saying the same thing is half the fun of learning English!
- lerp-io 10mo agoclaude cli for ffmpeg is op lol
- nextstep 10mo agoThis is very nice. When I use ffmpeg recently I usually ask an LLM first but it often takes a few tries to get the exact incantation right. On a side note (I’m not a web developer), why would a command line tool like this be written and distributed using node.js? Seems like an unnecessary risk to use JavaScript for a basic (local) command line tool. Couldn’t this be written more simply in like Rust or something?
- amcsi 10mo agoWhere's the public Git repository for this project? The GitHub link on the NPM page seems broken to me.
- anymouse123456 10mo agoThis is extremely sexy and represents a great trade off where the ergonomics can be improved without sacrificing the incredible investments in a high performance library.
- foundart 10mo agoThe 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#introduction 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.
- GajendraSahu23 10mo agoLove the simplification of ffmpeg flags. I noticed some comments about Node.js dependencies. Are there plans to make this a standalone binary for faster server-side processing?
- dev1ycan 10mo agoFFMPEG 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.
- johanyc 10mo agois this better than just ask any llm cli tool (warp, codex, gemini, claude code, etc.) to generate ffmpeg command for you?
- imglorp 10mo agoSometimes English is not swell as a specification format. > ff trim video.mp4 from 0:30 to 1:00 Does this mean I keep the indicated section or does it mean I throw it away? And many other examples of English sucking at ambiguity when precision matters. Maybe this is a corollary of " naming things is hard ".
- skc 10mo agoStill think AI shines here. I find ffmpeg commands pretty arcane. Nowadays I just ask an LLM to generate the commands I need, test, and I'm done.
- witnessme 10mo agoGoing to try this one soon. Great work OP.