Sports Video Slow Motion Analyzer

Frame-by-frame slow motion video analysis for coaches and athletes. Load a local video, slow it to 0.05×, scrub frame-by-frame, draw angle protractors and annotations, then export the annotated frame as PNG — fully on-device, no upload.

Drop a video here or click to browse
MP4 · MOV · WebM  ·  stays on your device, never uploaded
1.0×
0.00 / 0.00s
Load a video to begin.

How it works

1
Drop or select any local MP4, MOV, or WebM video. Nothing is uploaded — the file stays on your device.
2
Use the Speed slider to slow playback down to 0.05× and the Seek bar to scrub frame by frame. Hit Freeze to lock a frame for annotation.
3
Draw angles, lines, arrows, circles, freehand strokes, or text labels on the frozen frame. The Angle tool shows the exact degree reading as you draw.
4
Click Export PNG to download the annotated frame — ready to share with an athlete or paste into a coaching report.

The Angle tool works like a protractor: click a vertex point, then drag to set the first arm, click again to set the second arm. The angle between the two arms is displayed in degrees. Useful for hip flexion, knee bend, shoulder rotation, bat/club swing path, and similar biomechanics measurements.

Frequently asked questions

Does my video get uploaded anywhere?
No. The video file is read entirely in your browser using the HTML5 File API and a local object URL. No bytes are sent to any server. This means you can use it offline, and there are no file size limits imposed by a server — only your browser's available memory. The privacy boundary is your own device.
What video formats are supported?
Any format your browser can decode natively: typically MP4 (H.264 or H.265), MOV (on Safari/macOS), and WebM (VP8/VP9/AV1). If your video doesn't load, convert it to MP4/H.264 first with a free tool like HandBrake. Frame-by-frame accuracy depends on keyframe density in the encoded video; videos encoded with more keyframes (lower GOP size) will step more precisely.
How does the Angle tool measure joint angles?
Click once to set the vertex (e.g. a knee joint), then drag to define one limb segment, release, then click-drag to define the second segment. The tool computes the angle between the two vectors using the dot-product formula: θ = arccos((A · B) / (|A| × |B|)), converted to degrees. This gives the included angle between the two arms, which corresponds to joint flexion/extension or segment-to-segment angles in biomechanical analysis.
Can I annotate multiple frames and compare them?
Yes — use Freeze to lock any frame, annotate it, then Export PNG to save it. Advance to another frame, freeze, and annotate that one too. You can then compare the exported PNGs side-by-side in any image viewer. Future sessions start fresh; annotations are not saved between page reloads, so export before closing.
How slow can I go and how accurate is frame stepping?
The Speed slider goes from 0.05× (about 20× slower than realtime) up to 1× (normal speed). HTML5 video supports playbackRate values as low as 0.0 in some browsers; we clamp to 0.05× for reliable audio/video sync. Frame stepping uses video.currentTime offset by the video's average frame duration (duration ÷ estimated frame count at 30 fps). For most sports footage this is accurate to within one frame.