fftool — An FFmpeg Terminal UI

ffmpeg is one of the most capable pieces of software on Linux. It can cut, convert, transcode, normalize, stabilize, resize, concatenate, and generate media from scratch. It can also be genuinely hostile to use. The flag ordering matters. The argument syntax is non-obvious. Two-pass workflows require you to chain invocations manually.

fftool solves that without hiding ffmpeg. It's a terminal UI written in Go — a navigable menu that wraps the common operations and shows you the actual command it's going to run before it runs it. You pick the operation, fill in the fields, and see the ffmpeg invocation on a confirm screen. Execute it or go back and adjust. Either way, you're reading real ffmpeg commands, not abstractions.

fftool TUI showing main menu

Download

Linux, x86-64. Requires ffmpeg and ffprobe on PATH.

fftool-source.tar.gz fftool-source.zip

Build: go mod tidy && go build -o fftool .

Operations

Video

Audio

Image

Generative

Info / Probe

Keyboard Controls

KeyAction
↑ / ↓Navigate / move between fields
EnterSelect / confirm
EscBack one level
TabNext form field
← / →Cycle select options
qQuit
cCopy command to clipboard
Ctrl+CCancel immediately

How It Works

Every operation goes through a confirm screen. Before anything executes, fftool renders the full ffmpeg command with all flags and arguments:

ffmpeg \
  -i input.mp4 \
  -ss 00:01:30 \
  -to 00:02:45 \
  -c copy \
  output.mp4

You can review it, go back to adjust, or confirm and run. The command isn't generated behind the scenes — it's shown to you first. Over time, you stop needing the menus for the operations you use most.

Multi-Pass Operations

Some ffmpeg workflows require more than one invocation. fftool handles these transparently:

About

fftool is written in Go and builds to a single static binary. You need Go 1.21 or later. The binary has no runtime dependencies beyond ffmpeg and ffprobe on PATH.

Uses bubbletea for the TUI framework and lipgloss for styling — open source libraries.

Build from source:

go mod tidy
go build -o fftool .