FFmpeg in your browser
For when a preset isn’t enough. Drop a file, type any FFmpeg flags, get the output back.
drop a video here
or click to choose
How this works
Your file is written into FFmpeg's virtual filesystem as INPUT (with your real extension preserved — e.g. input.mov). The flags you type are passed to FFmpeg with -i input.<ext> automatically prepended. The output file you name has to match the actual output filename in your flags.
Examples
H.264 at CRF 28:
-c:v libx264 -preset veryfast -crf 28 -c:a aac -b:a 128k output.mp4
Crop to a square 720×720 centered:
-vf "crop=720:720:(iw-720)/2:(ih-720)/2" -c:a copy output.mp4
Concat two videos (only works with same codec):
Not supported in this single-file textarea — use the Merge page.
Limitations
- Only one input file (no
-i input2.mp4). - The build is LGPL:
libx264,libx265,libvpx,libvpx-vp9,libopus,libmp3lame,libwebp,aac,flacare available.libfdk_aacand other non-free codecs are not. - Memory is capped at ~2 GB.
FAQ
Where does the input file live?
In FFmpeg's MEMFS at input.<ext>. So if you dropped a .mov, it's at input.mov. You can reference it explicitly with -i input.mov, or just type your flags after it — the runner adds -i input.mov automatically if you don't.
What codecs are available?
The single-thread LGPL build of FFmpeg 0.12.6. Run -codecs through it if you're curious about specifics — we don't ship the full -encoders list here.
Does the file get uploaded anywhere?
No. Open this page, turn off your wifi, then try a file — it still works. That's the test.
What's the maximum file size?
Browser memory is the limit. WebAssembly caps at 2–4 GB per file. Most laptops handle 1080p videos under a gigabyte comfortably.
Why is it slow on my phone?
FFmpeg-WASM runs on your CPU, not hardware video encoders. Phones have less CPU, so encoding takes longer.
Can I cancel mid-encode?
Yes. The Cancel button terminates the worker immediately. You'll wait a few seconds the next time you start.