Compress video for Instagram
You posted a clip that looked sharp on your phone, and on Instagram it came out soft, smeary, or blocky. That isn't your imagination: Instagram re-compresses every video you upload, and how good the result looks depends heavily on what you hand it. Unlike WhatsApp or Discord, the problem is rarely a size limit - Instagram accepts files up to 4 GB. The real job is shaping the video so Instagram's compression has as little to fix as possible: the right shape (9:16 for Reels and Stories), exactly the size Instagram displays (1080 x 1920), a standard format (H.264 video in an MP4), and enough quality left in the file. This page covers each of those. Wave handles the format and the resize in your browser, without uploading anything.
What actually changes
The specs, as of 2026. Reels and Stories are vertical: 9:16, ideally exactly 1080 x 1920 pixels. Reels can run up to 3 minutes (Instagram raised the limit from 90 seconds in January 2025). A Story shows up to 60 seconds per card, and longer clips are split across several cards. Since 2022, most videos posted to the feed are published as Reels; the feed also takes 4:5 (1080 x 1350) and square (1080 x 1080) video. For all of them, an MP4 with H.264 video and AAC audio is the format least likely to cause trouble, and the file can be up to 4 GB. Ads booked through Meta Ads Manager use the same shapes: 9:16 for Reels and Stories placements, 4:5 for the feed. For a side-by-side with TikTok and YouTube Shorts, see Best video format for Instagram Reels, TikTok, and YouTube Shorts.
Why videos look worse after posting, and what you can do about it. Instagram converts every upload into its own playback formats, and nothing switches that off. What you control is how clean the starting point is, and three things matter most. Size: upload at exactly 1080 x 1920 for vertical video. Instagram has historically displayed video at up to 1080 pixels wide, so a 4K upload just gets shrunk by Instagram's own fast resizer; doing the resize yourself with a high-quality scaler keeps edges crisper. Headroom: don't squeeze the file small before uploading. Each compression pass throws detail away and Instagram's pass stacks on top of yours, so start at around 8-10 Mbps for 1080 x 1920 (or quality setting CRF 18-20 in HandBrake or ffmpeg). A 3-minute Reel at that rate is still only about 200 MB. The app setting: in Instagram's settings, under Data usage and media quality, turn on Upload at highest quality. With it off, the app can shrink your video on the phone before it ever reaches Instagram, especially on mobile data. Video bitrate explained walks through the bitrate side in plain English.
Turning landscape footage into a vertical Reel is the most common shape problem, and there are two ways to do it. Fill: cut a 9:16 slice out of the middle of the frame. It fills the screen, but from 1080p footage that slice is only 606 pixels wide, so it gets stretched to 1080 and looks soft. From 4K footage the slice is 1214 pixels wide and scales down cleanly - if you know a clip is headed for Reels, record in 4K or hold the phone upright. Fit: shrink the whole frame to 1080 pixels wide and add bars above and below. Nothing gets cut off, but the picture only covers about a third of the screen. iPhone Photos (Edit, then Crop, then the 9:16 option), Instagram's own editor, and most phone editing apps can crop. The ffmpeg commands below do either option precisely.
Where Wave fits: Instagram rejects or mangles some files outright - MKV recordings from OBS, WebM from browser screen recorders, AVI, WMV, and other older formats. Wave converts those into a standard H.264 + AAC MP4 in your browser. It also does the resize: choose 1080p under Resolution in the Options panel and a vertical 4K clip becomes exactly 1080 x 1920, scaled with a filter that keeps fine detail smooth, while an HDR iPhone clip is converted to standard colours on the way so it doesn't post washed out. Trimming to the Reels or Story length is in the same panel. Wave's re-encode runs at about 5 Mbps for 1080 x 1920 at 30 fps, which holds up well for most phone footage; for very detailed footage where you want the 8-10 Mbps of headroom described above, use the ffmpeg command below. Cropping to a different shape isn't something Wave does, so use ffmpeg on your own computer for that. Fill the 9:16 frame (crops the overflow): `ffmpeg -i input.mp4 -vf "scale=1080:1920:force_original_aspect_ratio=increase:flags=lanczos,crop=1080:1920" -c:v libx264 -preset slow -crf 19 -pix_fmt yuv420p -c:a aac -b:a 128k -movflags +faststart reel.mp4`. Fit the whole frame with bars: swap the filter for `-vf "scale=1080:1920:force_original_aspect_ratio=decrease:force_divisible_by=2:flags=lanczos,pad=1080:1920:(ow-iw)/2:(oh-ih)/2"`. Both work for any input shape. Screen recordings sometimes have a variable frame rate that makes uploads stutter; adding `-r 30` locks them to a steady 30 frames per second.
Three steps.
-
01
Step 1
If the clip came straight from your phone's camera, you can usually upload it as it is. Use Wave when Instagram rejects the file, or it's MKV, WebM, AVI, WMV, or another non-phone format.
-
02
Step 2
Drop the file onto Wave. For a 4K or other oversized vertical clip, choose 1080p under Resolution (on this page the Options panel opens on it), then convert to an H.264 + AAC MP4.
-
03
Step 3
If it isn't vertical, crop it with your phone's editor or the ffmpeg commands above. Turn on Upload at highest quality in Instagram, then post.
Answers, specifically.
Why does my video look worse after I post it on Instagram?
Instagram re-compresses every upload, and three things make that worse: Upload at highest quality is switched off in the app, the file is a different size from what Instagram displays (4K, or an odd shape), or you already compressed it heavily before uploading. Fix those three and the posted video gets noticeably closer to your original.
What's the maximum length and file size?
Reels: up to 3 minutes. Stories: up to 60 seconds per card, with longer clips split across cards. Files: up to 4 GB. In practice size is rarely the limit - a 3-minute 1080 x 1920 Reel at a generous 9 Mbps is about 200 MB.
Should I upload in 4K?
It doesn't help. Instagram has historically displayed video at up to 1080 pixels wide and resizes anything bigger itself. Resize to 1080 x 1920 before uploading so you control how the shrink is done - in Wave, that's 1080p under Resolution. Shooting in 4K is still worth it if you plan to crop landscape footage into a vertical frame.
H.264 or HEVC?
Instagram accepts both, so iPhone HEVC clips uploaded straight from the phone are fine. For files you prepare on a computer, H.264 is the safest choice - it's what Wave writes, and what every step of Instagram's upload process handles without surprises. H.264 vs H.265 explains the difference.
Do I need to compress to get under a limit?
Rarely - unlike WhatsApp or Discord, Instagram's 4 GB cap is generous. The exception is a slow connection, where a smaller file uploads more reliably. Even then, don't go much below about 6 Mbps for 1080 x 1920, or the picture starts breaking up before Instagram compresses it again.
What frame rate should I use?
Keep whatever your camera recorded: 24, 25, 30, or 60 frames per second all upload fine. Screen recordings are the exception - many use a variable frame rate that can stutter after upload, so lock them to 30 with `-r 30` in ffmpeg.
Where should captions and on-screen text go?
Away from the bottom of the frame and the right-hand edge. That's where Instagram draws your username, caption, audio label, and the like, comment, and share buttons, and anything underneath them is hard to read.