I've been working on extracting frames from video files entirely in the browser to avoid uploads. The goal is to support MP4/WebM/MOV/AVI/MKV, extract by interval/count/time-range, export as JPG/PNG/WebP, optional text watermark, and ZIP download. Processing stays on-device for privacy and works with large files without server limits.
For testing I put up a small tool at https://video2jpg.com/ — it uses Canvas + Media APIs client-side. Source is TypeScript/React, deployed on Cloudflare Workers + R2 for static hosting (no server processing).
Questions for the community:
- For large videos (2GB+), any tips on memory-efficient frame extraction or throttling decoding?
- Best way to handle accurate seeking without decoding the entire file?
- Canvas quality vs. WebCodecs for future improvements?
Would appreciate feedback on approach and edge cases you've hit with in-browser video processing. Happy to share implementation details.