
ffmpeg.wasm
FFmpeg compiled to WebAssembly so you can convert, record and stream video and audio inside a web browser.
- Stars
- 17.9k
- Forks
- 1.1k
- Licence
- MIT
- Language
- C
- Last update
- 1 months ago
- Type
- Library
What it is
ffmpeg.wasm is a port of FFmpeg, the widely used media processing tool, written in WebAssembly and JavaScript so it runs inside a web browser. According to its README, it lets web pages record, convert and stream video and audio without sending files to a separate server. The README labels the project as experimental.
- Convert a video file to a different format inside a web page
- Record audio or video in the browser and process it
- Trim or transcode media on the user's device before uploading
Great for
- Web developers who want video or audio conversion inside a browser page
- Teams building in-browser editors or upload tools that process media on the user's device
- Developers who already know FFmpeg and want its features in JavaScript
Not ideal for
- People who only need to convert files once and would be better served by a desktop FFmpeg install, since the README frames this as a browser port
- Projects that need a stable, production-proven API, because the README marks the project as experimental
- Non-programmers looking for a ready-made app; the README documents a JavaScript API rather than a end-user program
How to get it
- 1
Install with a package manager
You'll need: Node.js (version not stated in the README excerpt)
Clone the repository
git clone https://github.com/ffmpegwasm/ffmpeg.wasm - 2
Run it
- Read the Getting Started guide at https://ffmpegwasm.netlify.app/docs/getting-started/installation
- Install the @ffmpeg/ffmpeg package from npm as described in the docs
- Load FFmpeg in your page and run a conversion following the API docs
- 3
Get the most out of it
- Use the API reference at https://ffmpegwasm.netlify.app/docs/api/ffmpeg/ to learn the available calls
- Check the FAQ at https://ffmpegwasm.netlify.app/docs/faq for common questions
- Join the Discord community linked in the README for help
Downloads
Strengths
- Runs in the browser, so media can be processed client-side
- Built on FFmpeg, a long-established media toolkit
- Open source under the MIT license
Trade-offs
- The README labels the project as experimental
- Browser processing is limited by the user's device and memory, which the README does not detail
- Documentation is hosted on a separate site, so the README alone gives little API detail
How it compares
| Project | Stars | Type | Level | Updated | Best for |
|---|---|---|---|---|---|
| ffmpeg.wasm (this) | 17.9k | Library | intermediate | 1 months ago | Web developers who want video or audio conversion inside a browser page |
| react-player | 10.3k | Library | intermediate | 1 months ago | React developers who need to embed videos from several services behind one component |
| YoutubeDownloader | 16.6k | App | beginner | 5 days ago | People who want to keep a local copy of YouTube videos or playlists |
| DPlayer | 16.5k | Library | intermediate | 8 months ago | Web developers who want an embeddable video player with scrolling comments |
| tree-sitter | 27.4k | Library | advanced | 4 days ago | Developers building code editors or IDE features that need to understand source code as it changes |
| howler.js | 25.4k | Library | beginner | 12 months ago | Web developers adding sound effects or background music to a browser game or site |
Stats synced from GitHub. The assessment above was drafted with AI from the project's README on 2026-10-29 and may miss recent changes — check the README before relying on a command. MIT licence: free to use, modify and distribute, including commercially, as long as you keep the copyright notice.