The missing manual for WebCodecs - comprehensive documentation, production patterns, and real-world datasets for building browser-based video applications.
π Live site: webcodecsfundamentals.org
WebCodecs Fundamentals is the authoritative resource for building production WebCodecs applications. Unlike fragmented W3C specs and outdated blog posts, this provides:
- Complete documentation - From basics to advanced production patterns
- Real-world datasets - Empirical codec support data from 7.6M+ user sessions
- Working examples - Production-tested code you can actually use
- Best practices - Patterns that work at scale
- Introduction - Why WebCodecs and when to use it
- Basics - VideoEncoder, VideoDecoder, and core APIs
- Concepts - CPU vs GPU memory, threading, file handling
- Patterns - Production-tested design patterns for:
- Video playback
- Transcoding pipelines
- Live streaming
- Frame-by-frame processing
- Performance - Zero-copy rendering, memory management, optimization
- Audio - AudioEncoder, AudioDecoder, and audio processing
- Troubleshooting - Common issues and debugging
The world's first empirical registry of WebCodecs hardware support:
- 2.4+ billion codec tests
- 7,655,853 unique user sessions
- 1,087 codec variants tested
- 5 major browsers Γ 5 platforms
Interactive Codec Registry β
Download (Zenodo) β Β· Hugging Face β
Interactive demos hosted at webcodecsfundamentals.org:
- Transcoding Pipeline - Complete transcode example using Streams API
- Codec String Generation - Generate valid codec strings
- Media Bunny Demos - Production demuxing/muxing examples
Real-world applications built with these patterns:
- free.upscaler.video - Open-source video upscaling tool (architecture)
- Katana.video - Professional podcast editor (technical overview)
Found an issue, error, or have a suggestion?
- Report issues: Open an issue
- Submit corrections: Create a pull request
- Contact: sam@webcodecsfundamentals.org
- Fork this repository
- Create a new branch (
git checkout -b feature/my-feature) - Make your changes to markdown files in
src/content/docs/ - Test locally with
npm run dev - Commit your changes (
git commit -am 'Add new content') - Push to your branch (
git push origin feature/my-feature) - Open a Pull Request
All contributions must follow the existing documentation style and include working code examples where applicable.
src/content/docs/
βββ intro/ # Introduction and "Why WebCodecs?"
βββ basics/ # VideoEncoder, VideoDecoder, codec strings
βββ concepts/ # Core concepts (memory, threading, file handling)
βββ patterns/ # Design patterns (playback, transcoding, streaming)
βββ performance/ # Optimization techniques
βββ audio/ # Audio processing with WebCodecs
βββ datasets/ # Codec support dataset and registry
βββ projects/ # Ecosystem projects (Mediabunny, etc.)
βββ reference/ # About, sources, inside jokes
βββ troubleshooting/ # Debugging and common issues
Built with Astro Starlight.
- Node.js 18+
- npm or pnpm
# Install dependencies
npm install
# Start dev server (http://localhost:4321)
npm run dev
# Build for production
npm run build
# Preview production build
npm run previewMIT License - see LICENSE for details.
Content is freely available for educational and commercial use with attribution.
Created by Sam Bhattacharyya based on years of building production WebCodecs applications. Special thanks to the 700,000+ monthly users of free.upscaler.video who contributed to the codec support dataset.
