Processed on this device

Compress Video for Instagram A clean 1080p file to hand over

File size is almost never what stops an Instagram post. Meta publishes no size cap for posting in the app at all, and the 4 GB figure everyone repeats comes from its ads guide. What actually decides a post is duration, the shape of the frame and whether the container is written the way Meta documents. This tool compresses and can cap resolution. It does not crop, it does not change aspect ratio and it does not trim length. What it gives you is a 1080p H.264 MP4 with the moov atom at the front, which is the kind of file Instagram handles best.

  • 1080p H.264 out
  • Nothing leaves the tab
  • 20 clips per batch

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

Privacy-first No uploads Processed locally

Your video is processed in your browser's memory and never uploaded, so the ceiling is set by your device, not by us.

Keeps up to 1080p with balanced quality for feeds and stories.

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.

  • Unposted drafts stay unposted

    The encode is done by FFmpeg running as WebAssembly on this page, so a launch teaser under embargo, a client cut waiting on approval or a clip with your street sign in shot is never handed to a third party server on its way to the feed.

  • Seeded to the Social preset

    H.264 at CRF 23, the shorter side of the frame capped at 1080 and 128 kbps AAC audio. That is a quality first encode rather than a squeeze toward a number, because Instagram publishes no in app number to squeeze toward.

  • It will not crop or trim

    Straight answer up front, because it is the thing people arrive wanting. Aspect ratio and running time come out exactly as they went in. If your clip is 16:9 and Reels wants 9:16, or it runs past the surface limit, fix that in an editor first and bring the result back here.

Quick answer

How to compress a video for Instagram

Add your clip, leave the preset on Social, and it is re-encoded here to 1080p H.264 with AAC audio. That will not make an oversized post fit, because posts made in the app are rarely blocked by size. It matters because Instagram re-encodes everything it receives, and a tidy 1080p source survives that better than a 4K60 master does. All of it runs in this tab, so the only upload is the one you make to Instagram.

  1. Drop in your video
  2. Leave Social selected
  3. Post the 1080p MP4
Instagram limits

What each Instagram surface actually accepts

Most of the contradictions in published Instagram specs come from mixing two rule sets. Meta documents hard numbers for the API, which is the path every scheduler uses, and publishes almost nothing about posting by hand in the app. File size only binds on the first path. On the second, duration and the shape of the frame are what decide how a post turns out.

Where it goesDuration and shapeWhat it means
ReelsUp to 20 minutes, 9:16 at 1080x1920Instagram's help page now describes recording and editing a reel up to 20 minutes, having gone from 90 seconds to 3 minutes in January 2025. It is rolled out in stages, so your Reels camera may still stop at 3 minutes. The number that matters more for reach is separate: Instagram says reels over 3 minutes will not be recommended to new audiences. On the API path the documented range is 3 seconds to 15 minutes.
Stories60 seconds per segment, 9:16 at 1080x1920In the app, video longer than 60 seconds is cut into 60 second parts for you. The API does not split anything: it documents 60 seconds maximum and 3 seconds minimum for a Story video and refuses the rest.
Feed videoPublished as a Reel, cropped to 4:5 in the gridMeta deprecated the separate video type for feed publishing and tells developers to use Reels instead, so a feed video follows the Reels row. The 60 minute and 4 GB numbers quoted for feed come from the ads guide, not from organic posting.
Schedulers and the API300 MB per Reel, 100 MB per StoryThe one context where file size really decides the outcome. Both numbers are documented by Meta, and a few minutes of 1080p footage clears 300 MB without trying.
Container rulesMP4 or MOV, 23 to 60 fps, 1920 px maximum widthH.264 or HEVC, progressive scan, closed GOP, 4:2:0 color, AAC audio at up to 48 kHz, input bitrate capped at 25 Mbps VBR, moov atom at the front and no edit lists. Documented for the API, and the row behind files that play fine locally but will not go up.

The API figures here are Meta's own. Meta publishes very little about posting from the app, and what it does publish rolls out to accounts at different times, so those rows are the best available reading rather than fixed numbers. Last verified on 16 August 2026.

Re-encoding

Instagram re-encodes everything, and not always at the same quality

Adam Mosseri described the pipeline in October 2024. Every upload gets a fast, basic encode first, to keep compute down. Videos that go on to earn views are put through a heavier pass so they look their best, and Meta has said this is a sliding scale rather than a switch that flips at some view count. It also runs the other way: a video whose views fade can be served at lower quality again, then re-rendered if it picks up. So a clip nobody watches is delivered from that cheap first pass no matter what you fed it, which is why a 4K60 upload does not survive. It is downscaled and recompressed regardless, and you get no say in how.

Meta has never published the bitrate it delivers. Any exact figure you see quoted for that is blog guidance rather than a measurement. The only official bitrate number is the 25 Mbps input ceiling.

Phones

Instagram fits the frame instead of refusing it

The documented aspect ratio range is enormous, anything from 0.01:1 to 10:1 for a Reel, so almost nothing is turned away for shape. Meta's own docs recommend 9:16 for a reason: outside it, you get cropping or blank space rather than an error. In the app that happens quietly, so a landscape clip loses its sides in Reels and nothing warns you. It is a looks wrong problem rather than a failed upload, which is exactly why it goes unnoticed until the post is live. This tool cannot fix it, so sort out the shape before you compress.

  • Footage recorded inside the app is already framed for the surface. Camera roll uploads are the ones that turn up in the wrong shape.

  • Crop and trim in your phone photo app or an editor first, then bring the file here. This step changes file size and resolution only.

  • Trimming on iPhone is known to leave edit lists in the file, which the documented container rules exclude. Re-encoding here writes a fresh MP4 without them.

Compress a clip for Instagram in three steps

Nothing here needs a server.

  1. 01

    Add your clips

    MP4, MOV, MKV, AVI and WebM all go in, dropped on the page or picked from your device. Twenty at a time, up to 1.75 GB each, which covers phone exports, mirrorless camera files and timeline renders from an editor.

  2. 02

    Keep the Social preset

    CRF 23, the shorter frame side capped at 1080, 128 kbps AAC. Scheduling through a tool that has to respect the 300 MB or 100 MB API caps? Switch to Custom and type that number in as the target instead.

  3. 03

    Download it, then post it

    Out comes an H.264 MP4 with AAC audio, 4:2:0 color and the moov atom written at the front. Check the shape and the running time before you post, since neither of those was touched here.

Why compress at all when Instagram re-encodes it anyway

It sounds circular, and it is not, because compressing first decides what that re-encode gets to start from.

You choose the downscale, or Meta does

Every upload is scaled and recompressed to fit the delivery pipeline. Doing the 1080p step yourself, once, at a quality first setting generally beats letting an automated first pass do it in a hurry from a 4K source.

The container is what actually fails

MP4 or MOV, H.264 or HEVC, AAC, no edit lists and the moov atom at the front are documented requirements. FFmpeg writes that atom at the end by default, which is a common cause of a file that plays at home and will not post. Output here is written with faststart every time, so the atom is at the front.

Schedulers are where size truly bites

300 MB for a Reel and 100 MB for a Story are documented walls, and a handful of minutes at 1080p goes straight through them. If your post leaves through Buffer, Later or anything else built on the API, compressing first is the difference between publishing and a failed job.

A huge master costs upload time and buys nothing

Accepted width stops at 1920 px and input bitrate at 25 Mbps, so anything past that is thrown away before a viewer sees it. On a phone connection those spare gigabytes are just minutes of your day.

Posting the same clip elsewhere? See the X or LinkedIn compressor.

Privacy

Most of these clips are not public yet

A video on its way to Instagram is usually unpublished at the moment you compress it: a campaign teaser, a client edit still under approval, a family clip you have not decided about. Sending that to somebody else's server, to solve a size problem Instagram mostly does not have, is a poor trade.

This page does the encoding itself, in WebAssembly, on your machine. Your video is never posted to us, queued anywhere or written to a disk we control, and there is no account here to build a history against. Shut the tab and the job is gone with it.

What that means in practice

  • Instagram sees the clip when you post it, and nobody else does
  • The video, its file name and its metadata never reach us
  • No watermark, no account, no export history to leak
  • Your own processor does the work, so a long reel is not instant

Instagram video troubleshooting

Frequently asked questions

For posting in the app, Meta publishes no figure at all. The 4 GB everyone repeats traces back to the ads guide rather than to organic posting. The documented limits sit on the API path: 300 MB for a Reel and 100 MB for a Story video.

Instagram video specs last verified on 16 August 2026.