Contact Sheet Planner
Plan a contact sheet or scrubbing sprite sheet: which frames to grab, and how big the finished grid will be.
Samples are centred in equal slices of the clip: the interval is duration ÷ thumbnails, so the first sample lands half an interval in and the last half an interval from the end. Frame numbers are that timestamp × frame rate, rounded and kept inside the clip's last frame. Thumbnail height is derived from the source aspect ratio so nothing is stretched. The sheet is 2 × margin + columns × thumbnail width + gaps, tall enough for however many rows the thumbnail count needs. With 0 caption band each tile is the thumbnail itself; otherwise the band is added under every tile, including in a partly filled last row. Nothing is decoded, rendered or uploaded — this page only does the arithmetic.