Skip to content
I Hate Online Tools
← All tools

Video

Convert, trim, compress, GIF, extract audio, mute, resize, rotate, and merge video in the tab with FFmpeg.wasm. The clip is not uploaded.

Runs in your browser · Nothing uploaded

About Video

Video is the category upload sites love most: a 200 MB file, a progress bar, an email with a link. These pages load a local FFmpeg build once (about 30 MB, then cached) and do the work in the tab. First visit of a video tool pays for the encoder. Your file is still not POSTed.

Outputs I actually ship are MP4, WebM, and MOV for conversion, plus GIF and extracted audio. I am not advertising AVI, MKV, or FLV as first-class destinations. Long clips are slower here than on a rented GPU farm because they never leave the machine. That is the deal.

The encoder is GPL FFmpeg compiled to WebAssembly, single-thread, same origin. There is no COEP experiment that would break Analytics and the rest of the static site.

Tools in this category

Convert video

Convert video writes MP4 (H.264), WebM (VP8), or MOV. Same-family remux uses stream copy when it can; otherwise it re-encodes. Exotic inputs may decode and still fail an encode — I will show an error rather than a broken file.

Trim video

Trim video cuts a start and end time. Re-encode keeps the cut close to the times you typed. A 30-minute source does not need a 30-minute wait if you set a short window.

Compress video

Compress video uses CRF or a one-pass bitrate guessed from a target size. There is no multi-encode binary search in wasm; that would mean encoding the clip over and over in a browser tab.

Video to GIF

Video to GIF runs the two-pass palette recipe at a width and frame rate you pick. Default 320px and 10 fps is a reaction GIF, not a film print. You can limit the time range so a 30-second source does not become a 30-second GIF by accident.

Extract audio

Extract audio drops the picture and writes MP3, WAV, or AAC. Same job as Audio from video; two URLs because people search both phrases. No audio stream means an error, not a silent success.

Mute video

Mute video strips the soundtrack and keeps the picture, via stream copy when the container allows it. For a clip you can send without the room noise, that is enough.

Resize video

Resize video scales to a width, with aspect locked by default (even height). 4K phone clips for a slide deck are the use. Unchecking aspect will squash on purpose.

Rotate video

Rotate video is 90, 180, or 270 for the phone clip that was sideways. 90 and 270 transpose; 180 flips. Not an arbitrary-angle 3D rotate.

Merge clips

Merge clips concatenates two or more files in order. Matching formats can stream-copy; mismatches re-encode. It will not auto-letterbox mixed resolutions into a pretty sequence.

Common questions

Does converting a video on these pages upload the clip?

No. After the page and the local encoder load from this origin, the bytes of your file stay in the tab. The network panel should show ffmpeg-core.wasm once, not a POST of the movie.

Why is this slower than a website that encodes “in the cloud”?

Those sites use someone else’s CPUs, which is also why they have your file. This page uses yours. A short 1080p clip is fine. A half-hour 4K dump belongs in HandBrake on the desktop.

What licence is the in-browser encoder?

FFmpeg compiled to WebAssembly, GPL. It runs in your tab; I did not relicense it. The rest of the site is still static files. If GPL is a problem for how you use the output, that is a conversation with a lawyer, not a badge I will fake.

Why these tools don't upload your files

There is no server to upload to. Each page is a static file, and the work happens in your browser. Your file is read from disk into memory, processed, and handed back as a download. Once the page has loaded you can disconnect from the network and it keeps working. The longer explanation

Install the app