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
This commit is contained in:
2026-06-11 11:55:55 +01:00
parent d9cb0231d1
commit 16acb43daf
8 changed files with 850 additions and 167 deletions
+11 -3
View File
@@ -19,11 +19,13 @@ learn FFmpeg as you use it (and copy-paste the command anywhere).
cargo run --release
# or
cargo install --path .
lazyff
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`.
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
@@ -38,6 +40,7 @@ file, then stack up edits and press `r`.
| 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 |
@@ -53,7 +56,12 @@ them — trim, speed, volume/fades, and conversion between audio formats
**File browser**`↑↓` move, `Enter` open, `Backspace` parent folder, `q` quit
**Editor**`a` add edit, `Enter` change, `d` delete, `J`/`K` reorder,
`o` output name, `r` run, `Esc` back to files, `q` quit
`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