Skip to content
MotionLab

Video Scroll Scrub

Scroll sets video.currentTime directly — smooth because every frame is a keyframe.

sketchVideoGSAPScrollTrigger

How it works

Encoded with ffmpeg -g 1 (all-intra). A scrubbed tween updates a proxy and writes currentTime inside requestVideoFrameCallback-friendly rAF.

Performance

Normal GOP videos stutter on seek; all-keyframe files are bigger but seek instantly. Compare with the Apple-style canvas scrub.

Accessibility & reduced motion

Muted, no audio track; reduced mode shows a poster.

Playgroundscroll
Export
{
  "lerp": 0.1,
  "scrub": 0.4,
  "markers": false
}