Compress video without uploading it

Every other free compressor asks you to hand over the file first. This one does not, because the encoder runs inside the page. Here is exactly how that works, what it costs you, and how to check the claim rather than believe it.

Drop your video here

or click to browse — MP4, MKV, MOV, WebM, AVI and more

What an upload-based compressor sees

The standard architecture for a free online video compressor is straightforward: you upload, a server runs FFmpeg, you download the result. It works, it is fast on large files, and it means a complete copy of your video exists on hardware you do not control.

What happens to that copy is a policy question rather than a technical one. Retention windows vary from twenty minutes to indefinite. Some services state a policy, some state one and are acquired by someone else, and some say nothing. The file also passes through whatever CDN, load balancer and object store sits in the path, in whatever jurisdiction those happen to be in.

For a cat video this is a non-issue. For a client edit under NDA, a recording of an internal meeting, medical or legal footage, or a screen capture with a customer’s data visible in a browser tab, it is the whole issue — and it is not the kind of thing you get to undo.

How local compression actually works

FFmpeg is the encoder that most video on the internet passes through at some point. It is written in C, and it has been compiled to WebAssembly — a binary instruction format that browsers execute at close to native speed inside the same sandbox that runs JavaScript.

When you choose a file here, the browser reads it from disk into the tab’s memory and hands the bytes to that WebAssembly build of FFmpeg. It decodes, scales and re-encodes on your own CPU, writes the result into an in-memory filesystem, and the page turns that into a downloadable blob. At no point is there a network request with your video in it, because there is nowhere for it to go.

The multi-threaded build uses SharedArrayBuffer to spread the encode across your CPU cores, which browsers only permit on pages served with cross-origin isolation headers. That is why this site sends Cross-Origin-Opener-Policy and Cross-Origin-Embedder-Policy, and why it cannot embed most third-party resources. The full technical walkthrough is here, and the FFmpeg-in-the-browser guide goes deeper into the build itself.

Verify it rather than trust it

"We never see your files" is a claim every compression site makes, including the ones that receive your files. The difference here is that the architecture makes the claim checkable in about a minute. Two tests, either of which is conclusive:

  • Watch the network. Open developer tools, go to the Network tab, and compress a file. You will see the page, its JavaScript, and a roughly 30 MB WebAssembly binary come down. You will not see anything go up. Sort by request size and there is nothing on the outbound side remotely large enough to be a video.
  • Pull the plug. Load the page, then disconnect from the internet — turn off Wi-Fi, or tick "Offline" in the Network tab. Now compress a video. It works, start to finish, including the download of the result. A tool that needed a server could not do that.

The honest caveat: you are still trusting the code the server sent you on this visit, the same way you trust any web page. What you are not doing is trusting a retention policy, a storage bucket, or a company’s future owner.

What running locally costs you

An honest page has to include this part. Local compression is not free of trade-offs, and there are cases where a server-side tool is genuinely the better choice.

  • It is slower. WebAssembly runs at a fraction of native speed, and your laptop is not a rack of encoders. A long 4K file that a server handles in two minutes may take considerably longer here.
  • Memory is the ceiling. The whole file sits in the tab. A desktop with 32 GB of RAM is comfortable with multi-gigabyte input; a phone is not, and will simply run out.
  • A 30 MB download comes first. The FFmpeg binary has to arrive before anything can be encoded. It is cached afterwards, so this is a one-time cost, but the first compression of your first visit is slower for it.
  • Fewer codecs, and the newer ones are slow. The build has H.264, H.265, VP9 and MPEG-4 for video and AAC and Opus for audio. AV1 is absent, and H.265 and VP9 run several times slower here than a server encoding them with hardware help, so picking one is a decision about how long you are willing to leave the tab open.

The comparison page weighs those against desktop and upload-based tools properly.

What this site does record

Not "nothing", because that would be untrue. The site runs cookieless analytics that counts page views: it records the URL, the referrer, a country, and a browser and device class. It does not set a cookie, does not build a cross-site identifier, and has no visibility into your video — not its contents, not its filename, not its size, because none of those are ever part of a request.

The privacy page states it in full, and the about page says who operates the site.

Questions

How can I be sure my video is not uploaded?

Open your browser's developer tools, switch to the Network tab, and compress a file. You will see the page assets and the FFmpeg WebAssembly binary being fetched, and no request carrying your video. The stronger test: load the page, disconnect from the internet, and compress anyway. It still works, because everything needed is already in the tab.

What is the file size limit for a local video compressor?

Whatever your device can hold in memory. The entire file is loaded into the browser tab while it is encoded, so a desktop with plenty of RAM manages several gigabytes and a phone manages much less. There is no service-imposed cap, because there is no service doing the work.

Does it work offline?

Yes, once the FFmpeg binary has been downloaded and cached. Load the page once with a connection, and afterwards the compressor runs with the network disconnected.

Is anything at all sent to a server?

The page itself, its JavaScript and CSS, and the FFmpeg WebAssembly binary are downloaded from smaller.video the first time you visit. A cookieless analytics script records that a page view happened, along with the URL, referrer, country and browser. Your video, its filename, its size and its contents are never part of any request. See the privacy page for the full detail.

Related