Free tool · FFmpeg.wasm

Free Online Video Editor

Trim, rotate, compress, convert, create GIF and more. 100% in the browser — no sign-up, no server, no limits.

Drag your video here or click to select

MP4, WebM, MOV, AVI, MKV, FLV · Max 500 MB

Select video

Also working with images or PDFs?

Built by

Miguel Ángel Colorado Marin

Full-Stack Developer · Guadalajara, España

I develop web apps, digital tools and full projects — from design to deployment.

Contact me

How to use the video editor?

  1. 1

    Upload your video

    Drag the video file onto the upload area or click «Select video». The most common formats are accepted: MP4, WebM, MOV, AVI, MKV and FLV. The size limit is 500 MB. The video never leaves your browser: all processing happens locally thanks to FFmpeg.wasm.

  2. 2

    Select the operation in the tabs

    The editor has 6 tabs: Trim (with start and end control), Transform (rotate, flip, speed, FPS, crop, letterbox, reverse), Audio (mute, volume, extract MP3/WAV, fade, normalise, replace), Compress (CRF quality and resolution), Convert (MP4/WebM/MKV/AVI/GIF) and Extras (frame, GIF segment, merge videos, watermark, fade, loop, metadata, SRT subtitles).

  3. 3

    Configure the parameters and click «Process video»

    The first time you process a video, the editor downloads the FFmpeg.wasm engine from a CDN (~32 MB). This download only happens once per session. Once loaded, processing is completely local. You will see a progress bar during the operation. The time varies depending on the file size and the chosen operation.

  4. 4

    Download the result

    When processing finishes, a result panel appears with the filename, size, and if applicable, the percentage reduction compared to the original. You can preview the video, GIF or audio directly in the browser before downloading. Click «Download» to save the file to your device.

Features

✂️ Precise trim with dual mode

Fast Copy mode cuts the video without re-encoding, in fractions of a second, but the cut occurs at the nearest keyframe (may vary ±1s). Precise mode re-encodes the video with H.264 to cut exactly at the frame indicated by the sliders or numerical fields.

🔄 Complete transformations

Rotate the video at any angle (90° CW/CCW, 180°), flip it horizontally or vertically, change the speed from ×0.25 to ×4, adjust the FPS, crop the area to the ratio you need (16:9, 9:16, 4:3, 1:1) and add black letterbox to change the aspect ratio without cropping the content.

🎵 Full audio control

Mute the audio, adjust the volume from 0% to 200%, extract the audio track as MP3 (high VBR quality) or WAV (lossless), apply fade in and fade out with configurable duration, normalise the audio level to the EBU R128 standard (-23 LUFS) or replace the full audio with an external file.

🗜️ Compression with H.264 and CRF control

Reduce the video size with the H.264 codec (libx264). The CRF slider goes from 18 (high quality) to 35 (maximum compression). Choose the encoding speed preset (ultrafast to slow) and the output resolution: from 360p to 2160p or a custom size. The same CRF with a slower preset produces smaller files.

🎞️ High-quality animated GIF

GIF mode uses FFmpeg's optimal palette algorithm in two steps: first it generates a 256-colour palette optimised for the video content (palettegen) and then applies that palette to the final GIF (paletteuse). The result has far superior visual quality compared to a GIF generated with a single-pass process.

FFmpeg.wasm — no server

The processing engine is FFmpeg compiled to WebAssembly (WASM). It downloads once from a public CDN (~32 MB) and executes all FFmpeg commands directly in your browser. No frame, no audio and no file leaves your device at any time. Compatible with modern Chrome, Firefox, Edge and Safari.

Frequently asked questions

What video formats does the editor accept?

The editor accepts any format your browser can read and that FFmpeg supports internally. The most common formats are MP4 (H.264, H.265), WebM (VP8, VP9), MOV (QuickTime), AVI, MKV (Matroska) and FLV. The size limit is 500 MB per file.

Why does it take a while to start processing?

The first time you click «Process video» in a session, the editor downloads the FFmpeg.wasm engine (~32 MB) from a CDN. This may take a few seconds depending on your connection. Subsequent operations in the same session will be immediate because the engine is already in memory. If you reload the page, the engine will download again.

Are my videos sent to any server?

No. All processing — reading, transforming and exporting the video — happens entirely in your browser using WebAssembly. The video never leaves your device. You can verify this by disconnecting from the internet after FFmpeg has loaded: the editor will continue to work normally.

Why is the «Fast copy» trim not exact?

Fast copy mode uses FFmpeg's -c copy parameter, which copies streams without re-encoding. This is very fast but the cut must occur at a keyframe. If the cut point you specify does not coincide exactly with a keyframe in the video, FFmpeg rounds it to the previous keyframe. For a frame-accurate cut, use «Precise (re-encode)» mode.

What is the difference between GIF (Convert) and GIF from segment (Extras)?

In the Convert tab, the GIF is generated from the full video (or the applied trim). In the Extras > GIF from segment tab, you can define a start and end independent of the trim to generate a GIF from a specific fragment. Both options use the same 2-pass algorithm with an optimised palette for maximum quality.

Embed the editor on your site

You can embed this video editor in any web page with a simple iframe:

<iframe
  src="https://miguelacm.es/embed/video-editor"
  width="100%"
  height="750"
  frameborder="0"
  loading="lazy"
  title="Video Editor"
></iframe>
View embed in new tab →