frame-capture

Installation
SKILL.md

Frame capture

Screen recorders capture whatever the GPU managed to draw in real time, so a heavy scene stutters and a scroll-through looks hand-held. This skill records differently. Before the page's own scripts run, its clock is replaced: performance.now, Date.now and requestAnimationFrame read a virtual time, CSS animations and transitions are pinned to it, and every <video> is paused and seeked to it. Each output frame advances the clock by exactly 1/60 s, runs one frame, and takes a screenshot. A frame can take two seconds to render and the video still plays at a perfect 60 fps.

Tools

Script What it does
scripts/record.py Records a URL to MP4 with scroll keys, pointer motion and a ready condition
scripts/compare.py Stacks two clips (or sets them side by side) with labels and rounded panels
scripts/serve.py Static server that answers HTTP Range requests, so videos can seek

Needs Python 3.9+, pip install playwright pillow, python3 -m playwright install chromium webkit, and ffmpeg on PATH.

Run

  1. Serve the page with scripts/serve.py, never python3 -m http.server. The built-in server ignores Range requests. The browser then cannot seek any video it serves (video.seekable is empty) and every recorded video holds its first frame. record.py warns when it sees this.
Installs
11
GitHub Stars
7
First Seen
1 day ago