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 files. Upload the wrong format and you get a vague error message, a silent failure, or — worst of all — a video that uploads but looks terrible because Instagram re-encoded it badly. The platform accepts MP4 and MOV as container formats, but that barely scratches the surface of what you need to know. Inside those containers, Instagram expects H.264 video codec and AAC audio codec at 44.1 kHz. Hand it an H.265 (HEVC) file, a ProRes MOV from your iPhone's cinematic mode, or a VP9-encoded WebM, and you're rolling the dice on whether it processes correctly. The core issue is that Instagram always re-encodes your video on its servers. Always. Even a perfectly spec'd file gets compressed again. That means your goal 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 re-encoded result looks as good as it can. Think of it like printing a photo: you want to hand the printer a high-resolution TIFF, not a compressed JPEG that's already been through three rounds of saving. One practical example: a creator exports a 4K Reel from DaVinci Resolve as an H.265 MP4 because the file size is smaller. Instagram either refuses it outright or degrades it more than necessary during transcoding. The fix is simple — export H.264 instead, even though the file is larger. The visual quality in the final published video will be noticeably better. Getting this right before you upload saves you from re-editing and re-exporting, which is a real time cost if you're producing content at volume.

Reels: The Specific Numbers That Matter

Reels have become Instagram's dominant content format, and they have the strictest technical requirements of any placement on the platform. Here's what Instagram's own documentation and extensive community testing confirm as of 2025: **Resolution:** 1080 x 1920 pixels (9:16 aspect ratio). This is non-negotiable for full-screen display. Uploading a 1080 x 1080 square video will work, but Instagram letterboxes it with blurred background fill, which looks unprofessional. **Frame rate:** 24, 25, or 30 fps are all fine. Do not upload 60 fps — Instagram will transcode it down to 30 fps, and the motion interpolation artifacts can look strange. If you shot slow-motion at 120 fps and want actual slow motion in the Reel, do the frame rate conversion yourself in editing software before exporting at 30 fps. **Bitrate:** Instagram recommends a maximum of 3,500 kbps for video. In practice, exporting at 8,000–10,000 kbps and letting Instagram compress it produces better results than pre-compressing to 3,500 kbps yourself. The extra data gives Instagram's encoder more to work with. **Audio:** AAC-LC, 128 kbps minimum, 44.1 kHz sample rate. Stereo is fine; mono works too. Do not use AC3 or MP3 audio tracks inside an MP4 container — Instagram may strip the audio entirely. **Duration:** 15 seconds to 90 seconds for standard Reels. Instagram has been testing longer formats, but 90 seconds is the reliable ceiling as of this writing. **File size:** Maximum 1 GB. In practice, a properly encoded 90-second 1080p H.264 file at 10,000 kbps comes in around 110 MB, well within limits. If you're exporting from Premiere Pro, use the H.264 preset, set the profile to High, level 4.0, and enable two-pass VBR encoding with a target bitrate of 8 Mbps and a maximum of 10 Mbps. That combination consistently produces the best results after Instagram's re-encode.

Stories vs. Feed Posts: Where the Requirements Differ

Stories and Feed posts share the same codec requirements as Reels (H.264 video, AAC audio, MP4 container), but they diverge on dimensions, duration, and how Instagram handles aspect ratios. **Stories** are also 1080 x 1920 (9:16), same as Reels, with a maximum duration of 60 seconds per Story card. If you upload a 3-minute video to Stories, Instagram automatically splits it into three 60-second segments. This can create awkward cuts mid-sentence, so it's worth editing your video into clean 60-second chunks yourself before uploading. Stories disappear after 24 hours unless saved to Highlights, which is worth remembering if you're producing time-sensitive content. **Feed posts** are more flexible on aspect ratio. Instagram supports: - Square: 1080 x 1080 (1:1) - Portrait: 1080 x 1350 (4:5) — this is the recommended format because it takes up more screen real estate in the feed - Landscape: 1080 x 608 (1.91:1) For Feed videos, the maximum duration is 60 minutes, though anything over 10 minutes is now relatively rare and typically performs worse algorithmically. The sweet spot for engagement is 30 seconds to 3 minutes based on platform data from multiple creator analytics tools. One thing creators often get wrong: uploading a 9:16 vertical video to the Feed. Instagram crops it to 4:5, cutting off the top and bottom. If your subject is centered, this might be fine. If you have text or important action near the edges, you'll lose it. Always check the crop preview before posting. For Stories specifically, Instagram's in-app stickers, polls, and link buttons are overlaid on top of your video. Leave roughly 250 pixels of safe zone at the top and bottom of your 1920-pixel-tall frame to avoid important content being covered by the UI.

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

If you're starting with a file that isn't Instagram-ready — a .mov from an iPhone in HEVC format, a .webm screen recording, an .avi from older camera software, or an .mkv from a downloaded clip — CocoConvert can handle the container and codec conversion to get you to a clean H.264 MP4. Here's the workflow: 1. Go to CocoConvert's video converter and upload your source file. The upload supports drag-and-drop and files up to 2 GB on the free tier. 2. Select **MP4** as the output format. 3. In the advanced settings panel, confirm the video codec is set to **H.264** (not H.265/HEVC). CocoConvert defaults to H.264 for MP4 output, but it's worth double-checking if you're converting from an HEVC source. 4. Set audio codec to **AAC**, sample rate **44100 Hz**, and bitrate **128 kbps** or higher. 5. For resolution, if your source is already 1080p or higher, keep it at 1080p. CocoConvert lets you set a custom resolution — enter 1080 x 1920 for Reels/Stories or 1080 x 1350 for Feed portrait. 6. Download the converted file and upload directly to Instagram. A few honest caveats: CocoConvert is a format conversion tool, not a video editor. It won't reframe a landscape video to portrait for you — that requires cropping, which changes the composition and needs a human decision about what to keep in frame. For that, you'd need to use CapCut, Adobe Premiere, or even Instagram's own in-app editor. CocoConvert also doesn't currently support frame rate conversion (e.g., converting 60 fps to 30 fps with proper motion handling), so if your source file is 60 fps, you'll get better results doing that step in video editing software first. What CocoConvert does well is fast, reliable codec and container conversion — which is exactly what you need when you have a technically incompatible file and just need it to play nicely with Instagram's uploader.

Color Space and HDR: The Hidden Problem Nobody Talks About

Modern smartphones — particularly iPhones shot in Dolby Vision or Android phones using HDR10 — capture video in wide color gamuts like BT.2020 with HDR tone curves. These files look stunning on capable displays, but Instagram does not support HDR video. When you upload an HDR file, Instagram's transcoder converts it to SDR (BT.709 color space), and it does this conversion badly. The result is often washed-out colors, crushed blacks, or a weird orange-yellow shift in skin tones. The fix is to convert to SDR yourself before uploading, using software that handles the HDR-to-SDR tone mapping properly. In DaVinci Resolve (free version works), you can set your timeline color space to Rec.709 and apply a tone mapping LUT to the HDR footage before export. In Final Cut Pro on Mac, export using the Rec. 709 color space option under the Share settings. In Adobe Premiere, use the Lumetri Color panel to apply a Creative LUT that maps from your camera's log or HDR profile to Rec.709. This is one area where CocoConvert has a limitation worth being upfront about: the tool converts container formats and codecs, but it doesn't perform HDR-to-SDR tone mapping. If you run a Dolby Vision MOV through CocoConvert to get an H.264 MP4, the color space metadata may be stripped or mishandled, and you can end up with the same washed-out result you'd get from letting Instagram do it. For HDR footage, do the color space conversion in proper video software first, then use CocoConvert if you still need a codec or container change afterward. For most creators shooting in standard video mode on their phones (not ProRes, not Cinematic, not the HDR setting), this isn't an issue. But if you've invested in a mirrorless camera with log footage, or you're using an iPhone 13 or later with Cinematic mode, color space management is something you need to address before the upload step.

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

Since Instagram always re-encodes your video, your upload quality directly determines your published quality. Instagram's re-encoding is lossy compression on top of whatever compression your file already has. Every generation of lossy compression degrades quality further — this is sometimes called generation loss. The practical implication: export your video at the highest reasonable bitrate before uploading. 'Reasonable' means within Instagram's 1 GB file size limit and the H.264 codec constraint. For a 60-second Reel, a 10 Mbps bitrate produces a file around 75 MB — well within limits and much better source material for Instagram's encoder than a 3 Mbps file. Sharpness matters more than resolution for Instagram. The platform caps output at 1080p regardless of what you upload. Uploading a 4K file doesn't give you 4K on Instagram — it gives Instagram a higher-resolution source to downsample from, which can produce slightly better results in high-detail areas, but the benefit is marginal compared to just having a clean, high-bitrate 1080p file. Motion is where Instagram's compression hurts most visibly. Fast-moving content — skateboarding, dance videos, sports — compresses worse than static talking-head videos. For high-motion content, increase your export bitrate to the 12–15 Mbps range. The file will be larger but Instagram's encoder will have more data to preserve motion detail. One practical test: export two versions of the same 30-second clip — one at 4 Mbps and one at 10 Mbps — and upload both to a private Instagram account. Watch the published versions on a phone screen. The difference is often visible, especially in motion sequences and areas with fine texture like hair, fabric, or foliage. This test takes 10 minutes and will permanently change how you think about upload quality.

Quick Reference: Instagram Video Specs at a Glance

After all the nuance above, here's a consolidated reference you can bookmark and return to without re-reading the full article. **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. Getting your export settings right once and saving them as a preset in your editing software is the highest-leverage thing you can do if you post regularly. Fifteen minutes of setup now eliminates the guesswork on every video you make going forward.