Live data from Hacker News

Show HN: Ez FFmpeg – Video editing in plain English

npmjs.com

51–60 of 210 posts

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

#51
post #9

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

Does 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).

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

#53
post #49
post #7

Earlier quoted context omitted.

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.

Do most devs even look at the source code for packages they install? Or the compiled machine code? I think of this as just a higher level of abstraction. Confirm it works and not worry about the details of how it works

I don’t because I trust the process to get the artifacts. Why? Because it’s easy to replicate and verify. Just like how proof works in math.

You can’t verify LLM’s output. And thus, any form of trust is faith, not rational logic.

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

#54

Earlier quoted context omitted.

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

There is no universe where I would like to spend brain power on learning ffmpeg commands by heart.

No one learns those. What people do is just learning the UX of the cli and the terminology (codec, opus, bitrate, sampling,…)

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

#55

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

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.

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

#56

Earlier quoted context omitted.

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?

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.

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

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

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

#59
post #49
post #7

Earlier quoted context omitted.

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.

Do most devs even look at the source code for packages they install? Or the compiled machine code? I think of this as just a higher level of abstraction. Confirm it works and not worry about the details of how it works

For the kinds of things you’d need to reach for an LLM, there’s no way to trust that it actually generated what you actually asked for. You could ask it to write a bunch of tests, but you still need to read the tests.

It isn’t fair to say “since I don’t read the source of the libraries I install that are written by humans, I don’t need to read the output of an llm; it’s a higher level of abstraction” for two reasons:

1. Most Libraries worth using have already been proven by being used in actual projects. If you can see that a project has lots of bug fixes, you know it’s better than raw code. Most bugs don’t show up unless code gets put through its paces.

2. Actual humans have actual problems that they’re willing to solve to a high degree of fidelity. This is essentially saying that humans have both a massive context window and an even more massive ability to prioritize important things that are implicit. LLMs can’t prioritize like humans because they don’t have experiences.

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

#60

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

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

Post reply on HN