Compress Video for a Website Smaller file, faster page
There is no upload limit to beat here. The video is going on your own site, so the real constraint is what it does to the page: how long before it starts, how much bandwidth it spends on someone who never presses play, and how it behaves on a phone with a metered plan. This page has the Website upload preset, the numbers worth aiming at, and an honest account of what a single H.264 MP4 can and cannot do for web performance.
- Built for page weight
- No upload step
- 1080p H.264 MP4
Drop videos or browse your device
MP4, MOV, M4V, MKV, AVI, WebM, WMV, TS, MTS, MPEG, 3GP, FLV and more
Up to 20 videos at once
Your video is processed in your browser's memory and never uploaded, so the ceiling is set by your device, not by us.
Strong compression with a widely compatible MP4 for CMS and portfolio uploads.
Privacy-first. No uploads. If this helps, share it.
Bigger files? Run it in the Cloud
This tool runs on this device for free. For a file over the device limit or a long video, the same tool runs on our servers, with up to 5 GB per file and 6 hours of video, faster, and with your files kept for up to 7 days, or as long as you choose with any pack or plan. From 1 credit a minute, with 10 credits free when you create an account.
- The footage never leaves this tab
The encode runs on your own processor, through FFmpeg compiled to WebAssembly. That matters when the clip is an unreleased feature, a client build or a demo recorded off a staging environment, because no copy of it exists anywhere but your machine.
- Tuned for a cold page load
The Website upload preset encodes H.264 at CRF 26, caps the shorter frame side at 1080p and puts audio at 96 kbps AAC. It is aimed at a clip a stranger has to load on a connection you know nothing about, not at an archive master.
- A muted loop does not need audio
Background video plays silent, so its audio track is overhead on every page load. In Custom mode, open Advanced settings and set Audio to Remove, and the track is left out of the file. On a loop nobody can hear, those are bytes removed with nothing lost.
How to compress a video for a website
There is no size cap to fit on your own site, so page weight is the target instead. Add the clip, leave the preset on Website upload, and it is re-encoded here to H.264 MP4 at CRF 26 with the shorter frame side capped at 1080p and audio at 96 kbps. For a silent background loop, switch to Custom and set Audio to Remove, which keeps the track out of the file entirely. The encode happens in this tab, so the only upload is the one you make to your own host.
- Add your clip
- Keep the Website upload preset
- Upload the smaller MP4
The numbers worth aiming at for web video
Nobody publishes a file size limit for your own website, which is exactly why web video gets out of hand. These are the factors that decide whether a clip is an asset or a tax on every visitor, with the targets that tend to hold up in practice.
| What governs it | Practical target | Why it matters |
|---|---|---|
| Hero or background loop | Under 2 MB, better near 1 MB | This is the clip everyone downloads whether they care about it or not, so it is the one to be strict with. A quiet 5 to 10 second loop at 1080p can land there once it is compressed and the audio is gone. Busy footage will not, and that is usually a sign the shot is wrong for a loop rather than a sign to spend more bitrate. |
| Resolution for a full width player | 1080p is the ceiling worth serving | Above 1080p the extra pixels rarely survive the browser window, but the bandwidth is spent anyway. The preset caps the shorter frame side at 1080p and leaves smaller clips at their own size rather than upscaling them. |
| Audio on a muted loop | Take the track out entirely | A background video is muted by browser policy, so the audio is never heard, yet it is still downloaded and still decoded. Custom mode can delete it outright, and since nobody was ever going to hear it, nothing goes with it. |
| Poster image | Always set one | Without a poster the player is a blank rectangle until enough video arrives, and on a phone that blocks autoplay the poster is the only thing anyone sees. This tool does not export a poster frame, so pull one from your editor or take a screenshot of the frame you want. |
| When one file stops being enough | Roughly a minute, or any real library | A single MP4 hands every visitor the same bitrate on every connection. Past a short clip, or once you have more than a handful of videos, adaptive streaming through HLS or DASH, or a proper video host, does a job no single file can. |
None of these are published limits. They are working rules of thumb, and they move as connections, devices and browser defaults change, so measure your own page rather than trusting the table. Last verified on 15 August 2026.
Compressing the file is only half the job
The most common web video mistake is not the encode, it is the markup around it. A 2 MB clip with preload set to auto and no poster is still 2 MB the browser has been told it may fetch for a visitor who never presses play, competing for bandwidth with the fonts, CSS and images that decide when the page looks finished. Set preload to none or metadata, give the element a poster, and hold off loading anything below the fold until it comes near the viewport. Compression makes the file cheaper. The attributes decide whether it is fetched at all.
This tool does the encode and nothing else. It cannot write your markup, export a poster frame, or produce WebM, VP9 or AV1 alternatives, so treat the smaller MP4 as one part of the fix rather than the whole of it.
What a hero video costs on mobile data
Phones are where a heavy clip hurts most: a slower connection, a metered plan and a battery paying for the decode. It is also where the clip is least likely to be seen, because a wide 16:9 loop behind a narrow layout is mostly cropped away by the surrounding CSS. Plenty of sites are better off showing a still image below a certain width and keeping the video for larger screens.
Autoplay only works when the video is muted, and on iOS the element also needs the playsinline attribute, which is one more reason a background loop should not be carrying an audio track at all.
Low Power Mode on iPhone and data saver modes on Android can stop an autoplaying loop from ever starting, so the poster image has to hold the layout on its own.
To hand phones a lighter file, list two sources and put a media condition on the larger one. Browsers walk the list in order and take the first source they can play whose condition matches, so leave the small file last with no condition on it. Chrome and Firefox restored support for this in version 120 and Safari has had it throughout. One difference from picture is worth knowing: the choice is made once, when the video loads, so resizing the window or rotating the phone does not swap the file. Compress the clip twice here, once at 1080p and once at 720p.
Get a page ready clip in three steps
Nothing here touches a server.
Add the video
Drag in MP4, MOV, MKV, AVI or WebM, or pick files from your device. The batch limit is 20 files at 1.75 GB each, enough to redo every video on a page in one sitting.
Keep the Website upload preset
It encodes H.264 at CRF 26, caps the shorter frame side at 1080p and puts audio at 96 kbps AAC. For a silent background loop, switch to Custom, open Advanced settings and set Audio to Remove. Custom also takes a target size in MB when your page budget is fixed.
Upload it to your own host
The output is an MP4 carrying H.264 video and AAC audio, the pairing every browser plays without a fallback source. Check the size on the result card, then set a poster and a sensible preload value on the element.
Why compress before it goes on the page
A page has a bandwidth budget and video spends it faster than anything else on it. The file size is the part you control before a single visitor arrives.
Video outweighs everything else on the page
One uncompressed hero clip can be heavier than all the HTML, CSS, JavaScript, fonts and images put together. Nothing else on a typical site is a single decision away from saving that much.
Most site builders serve exactly what you upload
Media libraries in common CMS and site builder tools resize images but often pass video straight through, so the 300 MB export from your editor becomes the file every visitor downloads. Compressing first is the only step between your master and the wire.
A muted loop pays for audio it never plays
Silent autoplay is a browser rule, not a style choice, so the audio in a background video is never heard. It is still bytes on the wire and still work for the decoder. Dropping it takes weight off every page load and leaves the picture exactly as it was, and Custom mode here can do it.
One file is the right answer up to a point
H.264 MP4 is the most widely playable single file there is, which is what a short loop, a product demo or a hero clip actually needs. It is not adaptive: everyone gets the same bitrate whatever their connection, and there is no lower rung to fall back to. For long video, a library, or anywhere quality should follow the network, HLS or DASH through a video host will beat any single file, this one included.
If the video plays as a silent background, remove the audio track first and it gets smaller for free.
Is the source format the problem rather than the size? Convert it to MP4 first.
Web video is often work you have not shipped yet
The clip destined for a site is frequently something that is not public yet: an unreleased product demo, a client build behind a staging URL, a founder recording, footage covered by an NDA. Handing that to a compressor run by strangers, in exchange for a few megabytes, leaves unreleased work sitting on infrastructure you cannot audit.
The encode here happens in the page you are reading, with FFmpeg compiled to WebAssembly doing the work on your own processor. Nothing is queued, nothing is written to a bucket for someone to clear out later, and there is no account here for a history to accumulate in. When you close the tab, the only copies of that clip are the ones you started with.
What that means in practice
- You make the only upload there is, straight to your own host or CDN
- The footage, its file name and the site it is for stay on your machine
- Nothing is added to the output: no watermark, no branding, no signup
- Your device does the encoding, so a long clip keeps this tab busy for a while
Web video troubleshooting
Compress for a specific place
Some places have a hard size limit and a few quirks of their own. These pages open the compressor already set to that target, and explain what the limit actually is.
- Compress Video to 50 MB
Aim for under 50 MB and keep 1080p while the clip is short enough. Nothing is uploaded.
Open this tool - Compress Video to 100 MB
Fit a video under 100 MB for a boosted Discord server, WhatsApp or an upload form. Nothing leaves your browser.
Open this tool - Video Compressor for Discord
Fit a clip under Discord's 20 MB free upload limit, without uploading it to anyone.
Open this tool
More tools
Compress Video
Shrink a video to fit Discord, WhatsApp or email size limits. Free on this device, in your browser.
Open toolMP4 Converter
Convert almost any video to MP4 or MP3 in your browser. Nothing is uploaded.
Open toolMute Video
Strip every audio track from a video. Free, in your browser, no upload.
Open toolFrequently asked questions
Add the clip, leave the preset on Website upload and download the result. It is re-encoded in your browser to H.264 MP4 at CRF 26 with the shorter frame side capped at 1080p. Nothing is sent to us, so the file only travels when you publish it to your own host or CDN.
Web video guidance on this page last reviewed on 15 August 2026.