Skip to content

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
Step-by-step guide: how to use ffmpeg.wasmInstall, first run, examples, tips and FAQs

How to get it

  1. 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. 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. 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

ProjectStarsTypeLevelUpdatedBest for
ffmpeg.wasm (this)17.9kLibraryintermediate1 months agoWeb developers who want video or audio conversion inside a browser page
react-player10.3kLibraryintermediate1 months agoReact developers who need to embed videos from several services behind one component
YoutubeDownloader16.6kAppbeginner5 days agoPeople who want to keep a local copy of YouTube videos or playlists
DPlayer16.5kLibraryintermediate8 months agoWeb developers who want an embeddable video player with scrolling comments
tree-sitter27.4kLibraryadvanced4 days agoDevelopers building code editors or IDE features that need to understand source code as it changes
howler.js25.4kLibrarybeginner12 months agoWeb 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.