Compress video or image to a target file size
Pick a size limit, drop your video or image, get a file that fits. Everything runs on your device.
- 1Drop your video or image
- 2Pick a target size
- 3Download the result
For the fastest and most reliable results, use Google Chrome (or another Chromium browser). Other browsers may fall back to a slower compatibility mode.
- Nothing is uploaded
- No sign-up
- No watermark
Drag the handles to choose the part to keep.
More options
Your files stay on your computer
- Nothing is uploadedYour video or photo is never sent to our servers or to anyone else. It is processed inside this browser tab.
- No account, no tracking of your filesYou do not sign up, and we never see, store or copy what you compress.
- Close the tab and it is goneThe working data lives only in your computer’s memory while the page is open.
Technical details and how to check it yourself
Check it yourself in a minute
- Open this page, then open your browser’s developer tools (F12 or Ctrl/Cmd+Shift+I) and choose the Network tab.
- Drop in a video and compress it. Watch the Network tab: you will see no request that carries your file. Files go only from your disk to the page.
- Or switch off your internet connection after the page has loaded. Compression still works, because nothing needs a server.
What happens technically
- Video is decoded and encoded by your browser’s built-in WebCodecs hardware codecs, driven by the Mediabunny library inside a dedicated Web Worker, so the page stays responsive.
- The input file is read lazily from disk in slices (Blob), never loaded whole into memory. The result is assembled in memory and offered as a download from a local blob URL.
- Images are decoded with createImageBitmap and re-encoded with an OffscreenCanvas, also in a Web Worker. HEIC photos use a WebAssembly decoder that runs in the same worker.
- The page sets no cookies for your files and makes no network request containing file data. The only external fetch is the optional compatibility engine (ffmpeg.wasm) for browsers that lack WebCodecs: it downloads code from a CDN, never your file.
- The site is a static page served by Cloudflare. There is no server-side code that could receive an upload.
What people use it for
- Game clips for DiscordSqueeze a highlight under the upload limit without opening an editor.
- Email attachmentsSend a screen recording or demo that would otherwise bounce.
- Bug reports and support ticketsAttach a screen capture to an issue tracker or help desk that caps file size.
- Job applications and school formsMeet the upload limit on portals that ask for an intro video or assignment.
- Longer recordings, more roomKeep 1080p when the limit is generous, with the best quality the size allows.
- Photos for forms and profilesGet a photo or screenshot under the size cap of an application form, profile page or upload field.
- Private footageFamily videos, work meetings, anything you would rather not upload to a stranger’s server: it never leaves your device.
How it works
You choose a size
Pick the limit you need, such as 10 MB for Discord or 25 MB for email, and drop in your video or image.
Your computer does the work
The file is shrunk right here in your browser. It is not sent anywhere, so there is no upload to wait for.
You download a file that fits
You get a new file just under your limit, with the best quality that size allows. Your original stays untouched.
How the size is reached, in detail
How the size target is met
1. Budget
Your target size becomes a bit budget, keeping about 3% in reserve for the MP4 container so the finished file does not creep over the limit.
2. Audio first
AAC audio that is already small is copied untouched. Otherwise audio is re-encoded at 96 kbps, or 64 kbps mono when space is tight, so the rest of the budget goes to the picture.
3. Resolution and frame rate
The remaining bits are divided by the number of pixels per second. If that is too few for a clean picture, the tool steps down from 1080p to 720p or 480p, then from 60 to 30 fps. It never upscales.
4. Measure and correct
After encoding, the real file size is checked. If it is over your limit, the video bitrate is corrected and the video is encoded again, up to two more times.
A real example
A 20-second 1080p60 screen recording, aimed at a 10 MB limit:
Frequently asked questions
Is my video uploaded anywhere?
No. The video is processed in your browser on your own device. It is never sent to our servers or to anyone else.
Technical details
Processing runs in a Web Worker in your browser. The file is read from disk in slices and the result is built in memory, then offered as a local download. The page makes no network request that contains your file, which you can confirm in your browser’s Network tab.
How does it hit the size I choose?
It calculates a bit budget from your target size, encodes, then measures the real file. If the result is over the limit, it adjusts the bitrate and encodes again, up to two more times.
Technical details
The target in megabytes is converted to a bit budget (size × 8 × 1,000,000 × 0.97, keeping 3 percent for the container). Audio is chosen first, the remaining bits are divided by the duration to get a video bitrate, and the encoder is run. The real file is measured, and if it is over the limit the bitrate is corrected by target ÷ actual × 0.97 and the video is encoded again, at most twice more.
Why is my result smaller than the target?
About 3% is kept in reserve, and a video that is already small or visually simple may not need the whole budget. The tool never spends more bits than the original has.
Will the quality drop a lot?
It depends on how much smaller the file must get. The tool tells you the expected quality before you start. Trimming the start and end gives every remaining second more bits, which is the best way to keep quality.
Technical details
The tool computes bits per pixel (video bitrate ÷ width ÷ height ÷ frame rate). Below about 0.05 it steps the resolution down from 1080p to 720p to 480p, then 60 to 30 fps. It never upscales, and it never spends more bits than the source file has.
Which video formats can I use?
Anything your browser can decode, typically MP4, MOV, MKV and WebM with H.264, HEVC, VP9 or AV1. The output is always an MP4 with H.264 video and AAC audio.
Technical details
Reading and writing go through Mediabunny. Decoding uses the browser’s WebCodecs VideoDecoder, so support depends on your browser: H.264 and most others work in Chrome, HEVC depends on your system. The output is always MP4 with H.264 video and AAC audio, written with the index (moov) at the front so playback starts quickly.
Which browsers work best?
Google Chrome and other Chromium-based browsers. Other browsers may fall back to a slower compatibility mode.
Is there a maximum file size?
There is no fixed limit, but the compressed result is built in memory, so very large outputs depend on your device. A 900 MB, ten-minute 1080p60 clip has been tested successfully.
Technical details
The input is read lazily, so a large input does not fill memory. The output is assembled in memory, which is the practical limit. A 911 MB, 10 minute 1080p60 input compressed to a 100 MB target in about a minute in testing, using under about 900 MB of browser memory.
What happens to the audio?
Small AAC audio is kept as is. Anything else becomes AAC at 96 kbps, or 64 kbps mono if space is tight.
Technical details
If the source audio is AAC and takes no more than 15 percent of the budget, it is copied without re-encoding. Otherwise it is encoded as AAC at 96 kbps stereo, or 64 kbps mono when 96 kbps would exceed 15 percent. Browsers without a native AAC encoder load a small WebAssembly encoder.
Can I compress images too?
Yes. Drop a JPG, PNG, WebP, AVIF or HEIC and choose a size such as 100 KB or 1 MB. The tool finds the highest quality that fits and only reduces the resolution if it must. HEIC photos from iPhones are opened right in your browser; the first one downloads a small decoder.
Technical details
The tool searches for the highest JPEG or WebP quality that stays under the target using a binary search on quality, and only if the lowest quality is still too big does it reduce the dimensions step by step. Images already under the limit are returned unchanged, except HEIC, which is always converted.
Can I compress many images at once?
Yes. Drop several images together, pick one size and format, and download them all as a single zip file. Videos are handled one at a time.
Technical details
The images are compressed one after another by the same worker, so the HEIC decoder loads only once. Each result is checked against the target, and the zip is built in your browser with the fflate library using no extra compression, because the images are already compressed. Up to 200 images are taken per batch.
What happens to a transparent PNG?
PNG cannot be tuned to a size directly, so it is converted to JPEG or WebP. JPEG has no transparency, so transparent areas become white. Choose WebP to keep transparency.
Is it free?
Yes. There is no sign-up and no watermark. The site may show advertising to cover its costs.
Guides
- How to send a large video on Discord
- How to compress a video without ruining the quality
- How to send a large video by email
- How to make an image smaller for upload forms
- How to calculate the video bitrate you need
- JPEG, WebP or PNG: which gives the smallest file?
- How to compress a screen recording
- How to turn an iPhone MOV into a smaller MP4
- How long can a video be to fit under a size limit?
- How to compress many photos at once