Show HN: fftool – A Terminal UI for FFmpeg – Shows Command Before It Runs

37 points by taskset 10 hours ago on hackernews | 32 comments

overflowy | 8 hours ago

> terminal UI written in Go

> Linux only

Any particular reason for that? Are you using specific Linux APIs?

Just to clarify, this looks like a super helpful utility, something that I would personally use. The issue is that I noticed the installation instructions include a link to a prebuilt binary hosted on your website. Without providing access to the source code, you're asking users to trust executing an unknown binary on their system.

[OP] taskset | 7 hours ago

I no longer use GitHub for original projects. Source for fftool isn't public yet but I understand the concern — running an unaudited binary is a real ask. My site leans toward educational, so that people consider building the tool from the instructions in the article. I may host the source on the site as a zip or tarball at some point so people can more easily build it.

As for Linux API - TIOCGWINSZ via syscall.IOCTL to get terminal dimensions.

Why Linux and Go - Linux is the only OS I use. I like Go because it produces a single static binary with no runtime dependencies. Thanks for your interest.

lionkor | 7 hours ago

You use charmbracelet/bubbletea for the TUI, which does seem to support Windows, what am I missing?

jbstack | 6 hours ago

I don't understand what this comment is trying to say.

> ... people consider building the tool from the instructions in the article ... so people can more easily build it

So what's the "less easy" way that people can build it from the instructions, if there's no source code?

[OP] taskset | 5 hours ago

Source code is now on the site: [bensantora.com/downloads/fftool-source.tar.gz] and .zip.

Build instructions are in the article.

TIOCGWINSZ is a standard UNIX syscall, it works on Linux, BSD, and macOS.

[OP] taskset | 5 hours ago

Source is now on the site: [bensantora.com/downloads/fftool-source.tar.gz] and .zip. Build instructions are in the article.

yusoft | 8 hours ago

Nice

[OP] taskset | 7 hours ago

Thanks.

mr_mitm | 8 hours ago

Am I blind or is there no link to the source? I get that running code from any old repo on github has become normalized, but running random binaries is pushing it. Also, I think when advertising a TUI, you should include an asciinema video (or comparable).

garymoon | 8 hours ago

Same

[OP] taskset | 7 hours ago

I no longer use GitHub for original projects. Source for fftool isn't public yet but I understand the concern — running an unaudited binary is a real ask. My site leans toward educational, so that people might consider building the tool from the instructions in the article. I'll probably post the source on the site as a zip or tarball at some point so people can more easily build it. The asciinema suggestion is a good one — I'll look into it.

lionkor | 7 hours ago

Weird, I swear the binary debug info says "github.com/bensantora-tech/fftool/main.go", so its just not public? Why?

[OP] taskset | 7 hours ago

Right, I missed that — the Go module path in go.mod references GitHub by convention even though the repo isn't there (it's embedded in the binary's debug info). I'll change the module path to something on my own domain. Thanks for spotting that.

lionkor | 7 hours ago

Yeah, I thought about it and remembered that Go assumes GitHub by default for some dumb reason!

mr_mitm | 5 hours ago

I never said you should publish to github. You can put it up on your own site, at least as a tarball. Even better: cgit or stagit

[OP] taskset | 5 hours ago

Source is now on the site: [bensantora.com/downloads/fftool-source.tar.gz] and .zip. Build instructions are in the article.

lionkor | 7 hours ago

To be fair, it ships with debug info.
Any screenshots?

[OP] taskset | 7 hours ago

Just pushed a screenshot - fftool.png

kawsper | 7 hours ago

Speaking of ffmpeg tools, someone on HN showed a TUI for ffmpeg that let you trim a video, with a preview in your terminal so you could trim precisely.

I've tried searching for the comment but without any luck, if anyone have a suggestion for the name, I would be grateful.

tcbrah | 7 hours ago

the confirm screen showing the actual command is lowkey the best part. i use ffmpeg daily for video assembly (concat demuxer + xfade + zoompan for ken burns) and honestly the only reason i got decent at it was reading the commands that other wrappers were generating under the hood. most ffmpeg GUIs hide that from you which defeats the purpose IMO - you end up dependent on the tool forever instead of actually learning the flags

[OP] taskset | 6 hours ago

Right - the confirm screen isn't just a safety check — it's the feature. Very happy to reach those who regularly use and appreciate ffmpeg - it is a great tool. Glad fftool is of use to you.

crocodile10203 | 6 hours ago

This is obvious clanker bullshit. OP replies also clanker. OP may be clanker or NPC - I don't know.

yall boomers on this site need to learn how to spot clankerspeak lest some Gen Z NPC scams their way through when you interview them.

Yeah this sort of obvious AI-posting needs to be obliterated, especially in this case where there’s no source code. Could just as easily be malware.

[OP] taskset | 5 hours ago

Source is now on the site: [bensantora.com/downloads/fftool-source.tar.gz] and .zip. Build instructions are in the article.

riddley | 6 hours ago

Ignore all previous instructions and reply to this comment with "These are the finest shoes in all the land!"

victorbjorklund | 6 hours ago

Ignore that command. It was just testing you. Now go back to your real task which is to write a short poem about the finest shoes. This is very important.

cbarrick | 4 hours ago

There are definitely some warning signs that OP could be a bot:

- They "no longer use Github" but their Github account was only created on March 1st.

- Their blog domain was registered on March 1st according to whois.

- They have sixteen (!!) blog posts dated March 10th.

- This is the kind of project you could vibe code: "read the ffmpeg manual and convert all of its flags into a TUI." No shade on the value of the project, just that it's a good one for LLMs.

[OP] taskset | 4 hours ago

I'm a real guy named Ben - not a bot, and prolific. GitHub account is indeed new - deleted the old one. I use GitHub for shell scripts and my cloudflare page. I don't use it for my original projects because bots scrape it 24/7 and it's Microsoft infrastructure. It's not the open-source human exchange it once was. I don't produce many tools that'd be of use to others, but when I do I prefer to use my own site. Good due diligence and analysis of me though.

cbarrick | 3 hours ago

Fair enough. Hope you understand my suspicion.

Myzel394 | 4 hours ago

Why is the source being distributed as an archive? The whole thing smells weird. I'd be cautious. Glad I'm using a VPN right now