Local scan · nothing uploaded
Video Highlight Finder
Drop in a one or two hour recording and the scan runs on your own machine: low-resolution proxy frames at 1 FPS, an audio-energy envelope, frame-to-frame motion and dynamic-threshold scene cuts are scored into a ranked Top-N highlight list you can preview on the timeline and export as clips.
Find the moments worth keeping
Analysis is deterministic and runs entirely in this tab. The frame scan starts as soon as you press the button and can be cancelled at any time.
No file selected.
How it works
Four deterministic passes over a low-resolution proxy — no cloud, no queue, no upload bar.
The video is drawn to a 480×270 canvas at 1 FPS (max 1,200 samples), so a two hour recording costs thousands of tiny frames instead of millions of full ones.
Consecutive frames are differenced for motion, mean luminance flags black frames, and the decoded audio track gives an RMS envelope with sudden-rise detection.
Scene cuts use a dynamic mean + std × k threshold. Each sample is scored on audio, motion, bursts and cuts, then smoothed; black, still and silent regions are suppressed.
High-scoring neighbours within 6 s merge into 6–60 s clips, overlaps are trimmed, and the Top N by score are kept — the bar each clip cleared is shown next to it.
Clicking a block or a card seeks the player to the clip's exact start time, so the preview and the exported cut line up within half a second.
Selected clips are played back in order while MediaRecorder captures the player, producing a downloadable file at the original resolution — MP4 where the browser supports it, otherwise WebM.
What gets measured
Per-window loudness of the decoded track, normalised against its own 95th percentile so a quiet talk show scores the same way as a loud gameplay clip.
Frame-to-frame jumps in loudness — laughter, impacts, crowd reactions — which mark highlight-worthy spikes better than raw volume alone.
Mean absolute pixel change between sampled frames: 0 means a locked-off shot, higher means camera or subject movement.
Motion spikes above mean + std × k (k = 3 / 2.5 / 2) count as shot changes — the fastest signal that something new happened.
Frames under 18 mean luminance, and frames with almost no motion and no cut, are pushed down to 2 % / 25 % weight so intros, fades and dead air never win.
Nothing is uploaded: no request carries your video, no state leaves the tab, and closing the page discards the object URL and every frame.
FAQ
Is my video uploaded anywhere?
No. The file is read locally through an object URL; frames go straight into a canvas and the audio goes into a Web Audio decoder in the same tab. There is no upload step and no server side analysis.
How long does a two hour recording take?
Seeking is the slow part, so the scan is capped at 1,200 proxy samples: a two hour file is sampled roughly every six seconds. Progress, the current timecode and the frame counter stay visible, and Cancel stops the scan immediately.
Which files work?
Anything this browser can decode: H.264 MP4, WebM with VP8 or VP9, and MOV on most systems. HEVC or AV1 files may refuse to open. Limits are 2 GB and 2 hours, checked the moment you drop the file.
Why is audio sometimes ignored?
Decoding a soundtrack to memory is the one step that could exhaust RAM, so it is capped by file size and duration. Files past the cap and videos with no audible track fall back to visual scoring, and the page says so instead of hiding it.
What does the export produce?
The selected clips are played back in order and captured in real time, so exporting six minutes of highlights takes about six minutes with the tab visible. The download keeps the original resolution and lands as a single MP4 where the browser supports it, otherwise WebM.
No highlights found — what now?
Flat footage — a static screen share, one unbroken take, a black or silent clip — genuinely has no peaks. Instead of an empty page you get the highest scoring candidates plus a hint to switch to Aggressive sensitivity.
Does it work on a phone?
The layout is mobile first: the drop zone, controls, player, timeline and clip cards stack into one column. iOS Safari is tighter on memory though, so keep clips short there and move long recordings to a desktop browser.