otto 16acb43daf Add fit-to-size two-pass encoding, file argument, recipes, and batch mode
- Fit to size: computes H.264 bitrate from duration and runs a
  two-pass encode to land on a target size in MB
- lazyff FILE opens straight in the editor
- Recipes: save/load named edit stacks (~/.config/lazyff/recipes.json)
- Batch: mark files with Space, run one edit stack across all of them
  through a sequential job queue with per-file results
2026-06-11 11:55:55 +01:00

lazyff

Screenshot

A friendly terminal UI for FFmpeg. Trim, resize, crop, compress, convert and apply effects to video and audio — without memorizing a single flag.

lazyff always shows the exact ffmpeg command it is about to run, so you can learn FFmpeg as you use it (and copy-paste the command anywhere).

Requirements

  • ffmpeg and ffprobe on your PATH
  • A terminal

Install / run

cargo run --release
# or
cargo install --path .
lazyff              # browse the current directory
lazyff video.mp4    # open a file straight in the editor

lazyff opens a file browser in the current directory. Pick a video or audio file, then stack up edits and press r. Mark several files with Space to edit them all at once (batch mode).

What it can do

Edit Examples
Trim / Cut keep 0:30 → 1:45, instant lossless stream copy
Resize 1080p/720p/480p presets, half size, custom
Crop centered square / 16:9 / 9:16 / 4:3, custom rectangle
Rotate / Flip 90°, 180°, mirror
Speed 0.25x 4x, audio pitch preserved
Color adjust brightness, contrast, saturation
Visual effects grayscale, sepia, blur, sharpen, vignette, denoise, fades
Frame rate 12 60 fps
Compress H.264/H.265 with plain-English quality presets
Fit to size "make it 25 MB" — two-pass encode to a target size
Convert format MP4, MKV, WebM, MOV, GIF (with palette pass), MP3, M4A, WAV
Audio remove track, volume, loudness normalization

Edits combine: add a trim, a resize and a compress, and lazyff builds one ffmpeg command that does all three in a single pass.

Audio files (MP3, FLAC, WAV, ...) only offer the edits that make sense for them — trim, speed, volume/fades, and conversion between audio formats (MP3, M4A, FLAC, WAV, OGG).

Keys

File browser↑↓ move, Enter open, Backspace parent folder, q quit

Editora add edit, Enter change, d delete, J/K reorder, s save recipe, l load recipe, o output name, r run, Esc back to files, q quit

Recipes save your current stack of edits under a name (~/.config/lazyff/recipes.json) so you can re-apply it to any file or batch with two keys.

Forms↑↓ field, ←→ change choice, type into text fields, Enter save, Esc cancel

While encoding you get a progress bar with speed readout; Esc cancels and removes the partial output. Output files are written next to the input as <name>_lazyff.<ext> (rename with o); lazyff refuses to overwrite the input file.

S
Description
No description provided
Readme 131 KiB
Languages
Rust 100%