Live data from Hacker News

Show HN: Ez FFmpeg – Video editing in plain English

npmjs.com

141–150 of 210 posts

Re: Show HN: Ez FFmpeg – Video editing in plain English

#141

Earlier quoted context omitted.

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.

But 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.

One can do that with LLM as well. Honestly, I almost always just save the command if I think I am going to use it later. Also, I can just look back at the chat history.

Re: Show HN: Ez FFmpeg – Video editing in plain English

#142
post #57

Days 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 co…

Totally disagree, I have a wrapper I wrote myself for converting things, often for sharing the odd little clip online or such. It produces a complex command that is not easy to just type out, that does multiple things to maximise compatibility like - making sure pixel are square while resizing if the video resolution is too large ("scale=w=if(gt(iw*sar\\,ih)\\,min(ceil(iw*sar/2)*2\\,{})\\,ceil(iw*sar*min(ih\\,{})/ih/…

Yes, absolutely. Multimedia is complicated.

But my issue with the linked tool is that it does none of the things you mentioned. All it does it make already very easy things even easier. Is it really that much harder to remember `ffmpeg -i inputfile outputfile.ext` than `ff convert inputfile to ext`?

I've explained this in other replies here but I am neither saying that ffmpeg wrappers are automatically bad, nor that ffmpeg cannot be complicated. I am only saying that this specific tool does not really help much.

Re: Show HN: Ez FFmpeg – Video editing in plain English

#143

Earlier quoted context omitted.

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.

Just 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

Thanks, 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

Re: Show HN: Ez FFmpeg – Video editing in plain English

#144
post #57

Days 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 co…

> It's really not that hard, if you are doing it often that's true. But for people like me who do it once every month or two it really is hard to memorize, especially if it's not exactly the same task. What I would love would be an interactive script that asked me what I was trying to do and constructed a command line for me while explaining what it would do and the meaning of each argument. And of course it should f…

I swear I want this as a general tool for all command-line tools.

Start the tool, and just list all of the options in order of usage popularity to toggle on as desired, with a brief explanation, and a field to paste in arguments like filenames or values when needed. If an option is commonly used with another (or requires it), provide those hints (or automatically add the necessary values). If a value itself has structure (e.g. is itself a shell command), drill down recursively. Ensure that quotes and spaces and special characters always get escaped correctly.

In other words, a general-purpose command-line builder. And while we're at it, be able to save particular "templates" for fast re-use, identifying which values should be editable in the future.

I can't be the first person to think of this, but I've never come across anything like it and don't understand why not. It doesn't require AI or anything. Maybe it's the difficulty involved in creating the metadata for each tool, since man pages aren't machine-readable. But maybe that's where AI can help -- not in the tool itself, but to create the initial database of tool options, that can then be maintained by hand?

(Navi [1] does the templating part, but not the "interactive builder" part.)

[1] https://github.com/denisidoro/navi

Re: Show HN: Ez FFmpeg – Video editing in plain English

#145
post #121

Earlier quoted context omitted.

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.

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.

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.

Re: Show HN: Ez FFmpeg – Video editing in plain English

#146
post #57

Days 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 co…

> It's really not that hard, if you are doing it often that's true. But for people like me who do it once every month or two it really is hard to memorize, especially if it's not exactly the same task. What I would love would be an interactive script that asked me what I was trying to do and constructed a command line for me while explaining what it would do and the meaning of each argument. And of course it should f…

And they change quite frequently, from our POV.

That said, I started wrtiting scripts when I use ffmpeg some time ago. At least then I have a non-zero starting point next time.

Re: Show HN: Ez FFmpeg – Video editing in plain English

#147
No 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?

Re: Show HN: Ez FFmpeg – Video editing in plain English

#148

I 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 1a4d…

> 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!

Re: Show HN: Ez FFmpeg – Video editing in plain English

#149
post #57

Days 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 co…

sure here's a command that a program I wrote to record my practicing and produce different mixes uses

    /usr/bin/ffmpeg -i "/path/to/musicfile.mp3" -i "/path/to/covertune.mp3" \
       -filter_complex [1:a]volume=1[track1];[0a][track1]amix=normalize=false[output] \
       -map [output] -b:a 192k -metadata title=15:17:01 -metadata "artist=Me, 2025" \
       -metadata album=2025-12-23 "/path/to/file.mix.mp3"
chance of my coming up with that without deep poring over docs and tons of trial and error, or using claude (which is pretty much what I do nowadays): zero

Re: Show HN: Ez FFmpeg – Video editing in plain English

#150
post #57

Days 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 co…

You're getting a lot of flak due to how you started off your comment, but I mostly agree with you.

In my opinion there are two kinds of users: 1. Users who use FFmpeg regularly enough to know/understand the parameters. 2. Users who only use FFmpeg once in a while to do something specific.

This wrapper is superfluous for users in group number 1. But group number 2 does not really get much out of it either, for the reasons you've mentioned.

As a member of group 2, I usually want to do something very specific (e.g. remove an audio track, convert only the video, remux to a different container, etc.). A simple English wrapper does not help me here because it is not powerful enough; the defaults are usually not what I want. What I need is a tool that will take a more detailed English statement of what I want to achieve and spit out the FFmpeg command with explanations for what each parameter does and how it achieves my goal. We have this today: AI; and it mostly works (once you've gone through several iterations of it hallucinating options that do not exist...).

Post reply on HN