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

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. Nothing is uploaded. Open your browser's network tab while you convert and you will see your file never leaves the page. Once the converter itself has downloaded, it keeps working on this device even with no connection.

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.

Related tools