Skip to content
Back to Blog
device-usecase-privacy

Best Video Format for Instagram (Reels, Stories, Feed)

2026-05-17 9 min read

Why Instagram Rejects Videos (And What It Actually Wants)

Instagram is notoriously picky about video. Anyone who's been met with a vague error, a silent failure, or a horribly pixelated final video knows the frustration. The platform says it accepts MP4 and MOV containers, but that's just the tip of the iceberg. What truly matters is what's inside. Instagram expects an H.264 video codec and AAC audio at 44.1 kHz. If you hand it an H.265 (HEVC) file from your new iPhone, a ProRes MOV from cinematic mode, or a VP9-encoded WebM, you're rolling the dice on whether it even works. The core issue is simple: Instagram always re-encodes your video. Always. Even a file that perfectly matches the specs gets compressed again on their servers. Your goal, then, isn't just to meet the minimum requirements. It's to give Instagram the highest-quality source file possible *within* those requirements, so the final product survives the re-encoding process with its quality intact. Think of it like printing a photo: you'd hand the printer a high-resolution TIFF, not a grainy JPEG that’s already been saved and re-saved. Here’s a common scenario. A creator exports a 4K Reel from DaVinci Resolve as an H.265 MP4 to get a smaller file size. Instagram either rejects it or, worse, mangles it during transcoding. The fix is to export as H.264 instead. Yes, the file will be larger, but the visual quality of the final published video will be dramatically better. Getting this right before you upload saves you from the painful cycle of re-editing and re-exporting, a real killer for anyone creating content at volume.

Reels: The Specific Numbers That Matter

Reels are king on Instagram, and they have the tightest technical specs on the platform. Based on Instagram’s own docs and tons of community testing, here are the numbers that matter as of 2025: **Resolution:** 1080 x 1920 pixels. This is a 9:16 aspect ratio, and for full-screen Reels, it's non-negotiable. Uploading a square video works, but Instagram will fill the extra space with a blurry background, which just looks amateurish. **Frame rate:** 24, 25, or 30 fps are your safe bets. Don't upload 60 fps. Instagram will just chop it down to 30 fps, and the resulting motion artifacts can look bizarre. If you shot slow-motion at 120 fps, you must conform it to a 30 fps timeline in your editor *before* you export. **Bitrate:** Instagram suggests a max of 3,500 kbps, but you should ignore that. In practice, you get a much better result by exporting at 8,000–10,000 kbps (8-10 Mbps) and letting their servers do the heavy compression. Giving the encoder more data to work with simply produces a cleaner final video. **Audio:** AAC-LC, 128 kbps minimum, with a 44.1 kHz sample rate. Stereo is fine. Just don't embed AC3 or MP3 audio tracks inside your MP4—Instagram might strip the audio completely. **Duration:** 15 to 90 seconds. While Instagram is always testing longer formats, 90 seconds remains the reliable upper limit for now. **File size:** The hard limit is 1 GB, but you'll almost never hit it. A properly encoded 90-second 1080p video at 10,000 kbps is only about 110 MB. If you use Premiere Pro, here's my go-to recipe: export using the H.264 preset, set the profile to High, level 4.0. Then, enable two-pass VBR encoding with a target bitrate of 8 Mbps and a maximum of 10 Mbps. This combination survives Instagram's re-compression beautifully.

Stories vs. Feed Posts: Where the Requirements Differ

Stories and Feed posts use the same basic H.264 video and AAC audio in an MP4 container as Reels, but that's where the similarities end. They each have their own rules for dimensions, duration, and how different aspect ratios are handled. **Stories** need to be 1080 x 1920 (9:16), just like Reels, but each card has a max duration of 60 seconds. If you upload a three-minute video, Instagram will automatically chop it into three 60-second chunks. This often creates awkward cuts mid-sentence. Anyone who's watched a tutorial get cut off mid-word knows how jarring this is. It’s always better to edit your video into clean 60-second segments yourself before uploading. **Feed posts** offer more flexibility with shape. You can use: - Square: 1080 x 1080 (1:1) - Portrait: 1080 x 1350 (4:5) — This is the one you should use. It takes up the most vertical screen space in the feed and grabs more attention. - Landscape: 1080 x 608 (1.91:1) For videos on your feed, the max duration is 60 minutes. However, posts over 10 minutes are rare now and tend to perform poorly. The engagement sweet spot, according to multiple creator analytics platforms, is between 30 seconds and 3 minutes. A common mistake is uploading a 9:16 vertical video directly to the feed. Instagram will automatically crop it to 4:5, which can chop off the top and bottom of your frame. If you have text or important visuals near the edges, they're gone. Always use the crop preview before you hit post. For Stories, remember that Instagram's own UI—stickers, polls, the username—will be overlaid on your video. To be safe, leave about 250 pixels of 'safe zone' at the top and bottom of your 1920-pixel-tall frame so nothing important gets covered up.

How to Convert Your Video to Instagram-Ready Format with CocoConvert

So you have a file that Instagram won't touch. Maybe it's a .mov from an iPhone in HEVC, a .webm screen recording, an old .avi file, or a downloaded .mkv clip. This is where a converter comes in. CocoConvert can quickly handle the container and codec changes to get you a clean H.264 MP4 that Instagram will accept. Here’s the simple workflow: 1. Go to CocoConvert's video converter and upload your file. You can drag-and-drop, and the free tier supports files up to 2 GB. 2. Choose **MP4** as your output format. 3. Open the advanced settings panel. Double-check that the video codec is set to **H.264**. CocoConvert defaults to this for MP4, but it's good practice to confirm, especially if your source was H.265/HEVC. 4. Set the audio codec to **AAC**, sample rate to **44100 Hz**, and bitrate to **128 kbps** or higher. 5. For resolution, keep it at 1080p if your source is that or higher. CocoConvert lets you set a custom resolution, so you can enter 1080 x 1920 for Reels/Stories or 1080 x 1350 for a portrait feed post. 6. Download the converted file. It's now ready for Instagram. Now for some honest caveats. CocoConvert is a format converter, not a video editor. It can't reframe a landscape video into a vertical one; that requires cropping, a creative decision about what to keep in the shot. For that kind of work, you need CapCut, Premiere, or even Instagram's in-app editor. It also doesn't handle frame rate conversion (like 60 fps to 30 fps), which is best done in editing software for smooth motion. What CocoConvert excels at is fast, reliable codec and container conversion. It's the perfect tool for when you have a technically incompatible file and just need to make it play nice with Instagram's uploader.

Color Space and HDR: The Hidden Problem Nobody Talks About

Here's an issue that trips up even seasoned creators: color space. Modern phones, especially iPhones shooting in Dolby Vision or Androids using HDR10, record in a wide BT.2020 color gamut with HDR. These files look incredible on your phone, but Instagram does not support HDR video. When you upload an HDR file, Instagram's system tries to convert it to standard SDR (BT.709), and it does a terrible job. The result is a washed-out, lifeless video with crushed blacks or bizarre orange skin tones. It's infuriating to see your beautifully graded footage ruined by a bad conversion. The only reliable fix is to handle the conversion to SDR yourself before you upload. In the free version of DaVinci Resolve, you can set your timeline color space to Rec.709 and apply a tone mapping LUT. In Final Cut Pro, there's an explicit Rec. 709 color space option in the Share settings. In Adobe Premiere, you can use the Lumetri Color panel to apply a LUT that maps your HDR or log footage to Rec.709. Let's be clear about CocoConvert's role here: it's a codec and container tool, not a color-grading one. It does not perform HDR-to-SDR tone mapping. If you run a Dolby Vision MOV through it to get an H.264 MP4, the color data can get stripped or misinterpreted, leaving you with the same washed-out look you're trying to avoid. For HDR footage, you must do the color space conversion in proper video software first. For most people shooting in their phone's standard video mode, this won't be an issue. But if you're using a mirrorless camera with log footage or an iPhone 13 or newer with Cinematic mode, managing your color space is a critical step you can't afford to skip.

Compression Strategy: Getting the Best Quality After Instagram's Re-Encode

Because Instagram always re-encodes your video, the quality of your upload is everything. Their process is just another layer of lossy compression on top of your export's compression. Each time you apply lossy compression, quality degrades, an effect known as generation loss. The practical takeaway is simple: export your video at the highest reasonable bitrate before you upload. Don't be shy. 'Reasonable' just means staying within Instagram's 1 GB file size limit and the H.264 codec specs. For a 60-second Reel, an export at 10 Mbps creates a file around 75 MB. This is tiny, well within the limits, and provides far better source material for Instagram's encoder than a file exported at 3 Mbps. Stop obsessing over 4K for Instagram. It doesn't matter. The platform caps output at 1080p anyway. Uploading a 4K file just gives Instagram a higher-res source to downsample from, which offers a marginal benefit at best. A clean, high-bitrate 1080p file is far more important. Fast motion is where Instagram's compression really shows its ugly side, creating blocky artifacts in things like dance or sports videos. For high-motion content, push your export bitrate even higher, into the 12–15 Mbps range. The larger file gives the encoder more data to work with, helping it preserve detail during fast movement. Don't just take my word for it. Try this test: export the same 30-second clip twice, once at 4 Mbps and again at 10 Mbps. Upload both to a private Instagram account and watch them on your phone. The difference, especially in texture and motion, will be obvious. This ten-minute experiment will convince you to never skimp on upload quality again.

Quick Reference: Instagram Video Specs at a Glance

Tired of the details? Here's the cheat sheet you can bookmark for your next export. **All placements (Reels, Stories, Feed):** - Container: MP4 - Video codec: H.264, High Profile, Level 4.0 or 4.1 - Audio codec: AAC-LC, 44,100 Hz, 128 kbps minimum - Color space: Rec.709 (SDR only — convert HDR before uploading) - Maximum file size: 1 GB **Reels:** - Resolution: 1080 x 1920 (9:16) - Frame rate: 24, 25, or 30 fps - Duration: 15 seconds – 90 seconds - Recommended bitrate: 8–10 Mbps **Stories:** - Resolution: 1080 x 1920 (9:16) - Duration: up to 60 seconds per card (auto-splits if longer) - Safe zone: 250px top and bottom for UI elements - Recommended bitrate: 8–10 Mbps **Feed Posts:** - Square: 1080 x 1080 (1:1) - Portrait (recommended): 1080 x 1350 (4:5) - Landscape: 1080 x 608 (1.91:1) - Duration: up to 60 minutes (sweet spot: 30 seconds – 3 minutes) - Recommended bitrate: 8–10 Mbps **When to use CocoConvert:** You have a .mov, .webm, .avi, .mkv, or other non-MP4 file that needs to be converted to H.264 MP4. Upload to CocoConvert, select MP4 output with H.264 video and AAC audio, and download. **When CocoConvert isn't the right tool:** You need to reframe/crop a landscape video to portrait, convert frame rates, or perform HDR-to-SDR tone mapping. Use DaVinci Resolve, Premiere Pro, Final Cut Pro, or CapCut for those steps, then convert the output with CocoConvert if the resulting file format is still incompatible. Take fifteen minutes now to get your export settings right and save them as a preset in your editor. It's the single best thing you can do to eliminate guesswork and save yourself hours of frustration on every video you make from this day forward.