← klee.page

Reframe / 16:9 → 9:16

Drop in a landscape video and get a vertical crop back that follows the person on screen — face tracking, shot-cut detection, and a smoothed virtual-camera pan, computed frame by frame.

runs entirely in your browser — the file never leaves your machine

Convert a video

Drop a 16:9 video here, or click to choose
mp4 / mov / webm · works best under ~3 minutes with visible faces · rendering runs at 1× speed
Source
9:16 output — live
analyze0%
render0%
waiting…

How it works

  1. Face tracking. The video is sampled several times a second and faces are detected with MediaPipe (WASM, on your CPU/GPU). The subject is chosen by size and centrality, with continuity gating so a passer-by doesn't steal the crop.
  2. Shot cuts. Frame-difference detection splits the video into shots, so the virtual camera snaps at real cuts instead of gliding across them.
  3. Camera path. Per shot, gaps are bridged and the path is smoothed with a zero-phase filter plus a pan-speed cap — the camera holds still when the subject does and commits to moves without jitter or lag.
  4. Render. A full-height 9:16 crop is drawn along the path and re-encoded in the browser with the original audio.

This page is the browser edition. The full offline pipeline swaps MediaPipe for ArcFace identity re-identification (the crop locks onto a specific person, not just any face), TransNetV2 neural shot detection, and an L1-optimal camera path solved as a convex program — measured on stage footage at 30% true tripod-static time with 70 px/f max in-scene velocity.