whatisgithub

What is ffmpeg.wasm?

ffmpegwasm/ffmpeg.wasm — explained in plain English

Analysis updated 2026-06-24

17,475CAudience · developerComplexity · 3/5LicenseSetup · moderate

In one sentence

WebAssembly port of FFmpeg that runs in the browser, so video and audio can be recorded, converted, and streamed client-side without a server.

Mindmap

mindmap
  root((ffmpeg-wasm))
    Inputs
      Video files
      Audio files
      Stream data
    Outputs
      Transcoded media
      Recorded clips
      Browser streams
    Use Cases
      In-browser editor
      Format converter
      Client-side encoding
    Tech Stack
      WebAssembly
      JavaScript
      C
      FFmpeg
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Build a browser-based video format converter that runs entirely client-side

USE CASE 2

Add audio trimming or transcoding to a web app without server processing

USE CASE 3

Record webcam input in the browser and convert to mp4 before upload

USE CASE 4

Create a static video editor demo for GitHub Pages with no backend

What is it built with?

WebAssemblyJavaScriptCFFmpegNode

How does it compare?

ffmpegwasm/ffmpeg.wasmreactos/reactosbrunodev85/winlator
Stars17,47517,51517,588
LanguageCCC
Setup difficultymoderatehardhard
Complexity3/55/54/5
Audiencedeveloperdevelopergeneral

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · moderate Time to first run · 30min

Requires SharedArrayBuffer, so pages need COOP and COEP headers set correctly to load the wasm core.

MIT license - free to use, modify, and ship in commercial products with attribution.

So what is it?

ffmpeg.wasm brings FFmpeg, one of the most widely used tools for converting and processing video and audio files, directly into a web browser. Normally, FFmpeg is a command-line program you install on your computer. This project ports it to WebAssembly (a format that lets compiled code from other languages run in a browser at near-native speed), which means you can record, convert, and stream video and audio entirely in the browser without sending files to a server. This opens up possibilities like in-browser video editors, format converters, or audio tools that work completely client-side. The project is written in C and JavaScript, marked as experimental, and licensed under MIT. The README does not provide further detail about supported formats, browser compatibility requirements, or usage examples beyond what is described above.

Copy-paste prompts

Prompt 1
Show me a minimal HTML page that loads ffmpeg.wasm and converts an uploaded mp4 to webm in the browser
Prompt 2
Build a React component that uses ffmpeg.wasm to extract audio as mp3 from an uploaded video file
Prompt 3
How do I configure ffmpeg.wasm in a Vite project with the right COOP and COEP headers for SharedArrayBuffer
Prompt 4
Use ffmpeg.wasm to trim a video between two timestamps and download the result
Prompt 5
Compare performance of ffmpeg.wasm vs running FFmpeg on a Node server for short clips

Frequently asked questions

What is ffmpeg.wasm?

WebAssembly port of FFmpeg that runs in the browser, so video and audio can be recorded, converted, and streamed client-side without a server.

What language is ffmpeg.wasm written in?

Mainly C. The stack also includes WebAssembly, JavaScript, C.

What license does ffmpeg.wasm use?

MIT license - free to use, modify, and ship in commercial products with attribution.

How hard is ffmpeg.wasm to set up?

Setup difficulty is rated moderate, with roughly 30min to a first successful run.

Who is ffmpeg.wasm for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.