Skip to content

Frame selection#116

Merged
ku1ik merged 5 commits into
mainfrom
frame-selection
May 29, 2026
Merged

Frame selection#116
ku1ik merged 5 commits into
mainfrom
frame-selection

Conversation

@ku1ik
Copy link
Copy Markdown
Contributor

@ku1ik ku1ik commented May 28, 2026

Adds --select <SELECTOR> for choosing which part of a recording agg should render.

This supports both animated excerpts and discrete/slideshow-style selections:

agg --select 5..30 demo.cast clip.gif
agg --select 12.5 demo.cast frame.gif
agg --select marker:build..marker:test demo.cast build.gif
agg --select markers demo.cast markers.gif

A selector can be:

  • .. (default), POS.., ..POS, POS..POS for time ranges
  • POS, POS,POS,... for discrete positions
  • markers for all marker positions

POS can be a time (12.5, 1m20s, 1:20), percentage (50%), marker (marker:build, marker:3), or event index (event:100). Selection is resolved on the adjusted output timeline, after idle-time limiting and speed adjustment.

Range selections use the normal animated GIF path: visual dedupe, timestamp normalization, and FPS capping. Discrete selections keep every resolved selected position and assign sequential output timestamps using --last-frame-duration.


People have asked for a few versions of the same underlying capability: render only the interesting parts of a recording, or render selected moments instead of the whole timeline.

This PR handles that with one selection model:

This avoids separate one-off options for trimming, marker snapshots, and frame picking, and instead unifies them by using one timeline selection syntax.

@ku1ik ku1ik merged commit fede4e6 into main May 29, 2026
6 checks passed
@ku1ik
Copy link
Copy Markdown
Contributor Author

ku1ik commented May 29, 2026

Released in 1.9.0.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant