single-page tool — drop a video, analyze it, show results.
TypeScript
0
7 commits
updated Feb 23, 2026
Browser-based video understanding powered by codec-level keyframe extraction and local vision-language model inference. Inspired by the CoPE-VideoLM paper.
Zero backend. Zero API costs. Full privacy.
Video File (drag & drop)
|
MediaBunny (codec-level parsing)
|
+-- 'key' packets (I-frames) --> decode --> SmolVLM2 (WebGPU, local)
| "describe this frame"
|
+-- 'delta' packets (P-frames) --> skip or pixel-diff
|
Combined descriptions --> video summary
Instead of decoding every frame and running a vision model on each one, we exploit the video codec's own structure:
| Component | Role |
|---|---|
| MediaBunny | Pure TypeScript video parsing, codec-level packet access |
| SmolVLM2-256M | Vision-language model running locally via WebGPU |
| Transformers.js | ML inference runtime for the browser |
| Vite | Build tool, TypeScript, dev server |
npm install
npm run dev
Open http://localhost:5173, drop a video file (MP4/WebM), and watch it work.
npm run build
Produces static files in dist/ — deploy anywhere (GitHub Pages, Cloudflare Pages, Vercel, etc).
src/
main.ts # Orchestrator: drag & drop -> extract -> analyze -> display
video.ts # MediaBunny: codec-level keyframe extraction
diff.ts # Canvas pixel-diff for delta frame gating
vision.ts # Main-thread API for the SmolVLM2 worker
vision-worker.ts # Web Worker: SmolVLM2 inference via WebGPU
types.ts # Shared TypeScript types
style.css # UI styles
CoPE: Efficient Video Language Models via Codec-Based Primitives — the idea that video codec structure (GOP, I-frames, P-frames) can be used to dramatically reduce vision model compute without losing understanding quality.
MIT
7 commits
TypeScript
81.3%
CSS
12.3%
HTML
6.4%
single-page tool — drop a video, analyze it, show results.
TypeScript
0
7 commits
updated Feb 23, 2026
Browser-based video understanding powered by codec-level keyframe extraction and local vision-language model inference. Inspired by the CoPE-VideoLM paper.
Zero backend. Zero API costs. Full privacy.
Video File (drag & drop)
|
MediaBunny (codec-level parsing)
|
+-- 'key' packets (I-frames) --> decode --> SmolVLM2 (WebGPU, local)
| "describe this frame"
|
+-- 'delta' packets (P-frames) --> skip or pixel-diff
|
Combined descriptions --> video summary
Instead of decoding every frame and running a vision model on each one, we exploit the video codec's own structure:
| Component | Role |
|---|---|
| MediaBunny | Pure TypeScript video parsing, codec-level packet access |
| SmolVLM2-256M | Vision-language model running locally via WebGPU |
| Transformers.js | ML inference runtime for the browser |
| Vite | Build tool, TypeScript, dev server |
npm install
npm run dev
Open http://localhost:5173, drop a video file (MP4/WebM), and watch it work.
npm run build
Produces static files in dist/ — deploy anywhere (GitHub Pages, Cloudflare Pages, Vercel, etc).
src/
main.ts # Orchestrator: drag & drop -> extract -> analyze -> display
video.ts # MediaBunny: codec-level keyframe extraction
diff.ts # Canvas pixel-diff for delta frame gating
vision.ts # Main-thread API for the SmolVLM2 worker
vision-worker.ts # Web Worker: SmolVLM2 inference via WebGPU
types.ts # Shared TypeScript types
style.css # UI styles
CoPE: Efficient Video Language Models via Codec-Based Primitives — the idea that video codec structure (GOP, I-frames, P-frames) can be used to dramatically reduce vision model compute without losing understanding quality.
MIT
7 commits
TypeScript
81.3%
CSS
12.3%
HTML
6.4%