Hyperframes: Supercharge Your Video Workflows with Frame-Level Precision
Docs & Showcase: hyperframes.heygen.com
Repository: github.com/heygen-com/hyperframes
NPM: npm install hyperframes
Overview
Hyperframes is an open-source JavaScript library from the HeyGen team that gives you frame-level control over video files — right in the browser or Node.js. Lightweight alternative to FFmpeg.wasm for when you just need frame access, not a full video pipeline.
What It Does
Extract, decode, and manipulate individual video frames:
- Extract frames as images (PNG, JPEG, WebP)
- Get frame-level metadata (timestamps, dimensions, keyframe info)
- Decode specific frame indexes or time ranges
- Work with common video formats (MP4, WebM, etc.)
Why It Stands Out
-
Browser-native — No server needed. Uses WebCodecs + WASM under the hood. Build real-time video features without transcoding infra.
-
Precise frame targeting — Request by index or timestamp, get exactly that frame. No buffering, no approximations. Huge for thumbnails, video analytics, subtitle syncing.
-
Lightweight — Under 50KB gzipped. Compare to FFmpeg.wasm which is megabytes.
-
Streams support — Pipe in video from a live source or partially downloaded file.
Quick Start
npm install hyperframes
# or
yarn add hyperframesimport { Hyperframes } from 'hyperframes';
const video = await Hyperframes.fromUrl('https://example.com/video.mp4');
const frame = await video.getFrameAtTime(2.5); // 2.5 seconds in
const blob = await frame.toBlob('image/png');Works in any modern browser or Node.js 18+. The repo includes a full demo with contact sheet generation.