One MP4 for Instagram Reels, Facebook Reels, Stories and Threads
One 9:16 export can pass Instagram Reels and Stories, Facebook Reels and Page stories, and Threads: 60 s, 100 MB, 24-60 fps. The shared spec and Sume settings.

A single MP4 can go to Instagram Reels, Instagram Stories, Facebook Reels, a Facebook Page story and Threads if it is 9:16, 1080x1920, 24 to 60 fps, H.264 or HEVC with 4:2:0 chroma, AAC stereo at 48 kHz, between 3 and 60 seconds, and under 100 MB. Those limits come from Meta's four developer pages, read 2026-10-03; the tightest value on each row decides.
Duration and file size are the only rows where the surfaces disagree enough to matter: a Story caps at 60 seconds and 100 MB, while a Reel or Threads video can run far longer. Build for the Story, and the rest accept the file.
What are the limits side by side?
Facebook's pages list some values only for Reels, so "not listed" means the page I read did not state it.
| Spec | Instagram Reels | Instagram Stories | Facebook Reels | Facebook Page story | Threads |
|---|---|---|---|---|---|
| Duration | 3 s to 15 min | 3 to 60 s | 3 to 90 s | Up to 60 s | Up to 300 s |
| Frame rate | 23-60 fps | 23-60 fps | 24-60 fps | 24-60 fps | 23-60 fps |
| File size | 300 MB | 100 MB | Not listed | Not listed | 1 GB |
| Video bitrate | VBR, 25 Mbps max | VBR, 25 Mbps max | Not listed | Not listed | VBR, 100 Mbps max |
| Codec | HEVC or H264 | HEVC or H264 | H.264 or H.265 | H.264 or H.265 | HEVC or H264 |
| Audio | AAC, 48 kHz max, mono or stereo | AAC, 48 kHz max, mono or stereo | AAC-LC, stereo, 48 kHz | AAC-LC, stereo, 48 kHz | AAC, 48 kHz max, mono or stereo |
| Aspect ratio | 0.01:1 to 10:1, 9:16 advised | 0.1:1 to 10:1, 9:16 advised | 9:16 | 9:16 | 0.01:1 to 10:1, 9:16 advised |
Which constraint binds first?
For a 60-second Story, 100 MB works out to about 13 Mbit/s on average (100 MB x 8 / 60 s), under the 25 Mbps VBR ceiling, so file size binds before bitrate. For Facebook, the resolution is 1080x1920 recommended with a 540x960 minimum, and the Page stories page adds that a story's photo or video cannot have been used in an earlier published post, which is why a new export per Story beats reusing a feed file; see Facebook Page story media reuse.
Instagram Reels and Threads also ask for a closed GOP and no edit lists with the moov atom at the front. Facebook Reels asks for a closed GOP of 2 to 5 seconds.
How do I set this in Sume?
Sume's video trim cuts a range to a new MP4 and, with the default exact precision, re-encodes with libx264 at yuv420p and keeps audio as AAC. Its output object conforms width and height (256 to 2160) and fps to 24, 25, 30 or 60, so { "width": 1080, "height": 1920, "fps": 30 } meets the shared frame rate and size. The Timeline renders 1080x1920 MP4 by default and takes the same fps values.
What Sume does not expose is codec, bitrate or GOP: the trim API refuses codec and crf fields. Treat closed GOP and file size as things to confirm on the downloaded file and on a test publish. The Reels and Threads detail pages are in Instagram Reels API video requirements and Threads API video requirements.
Sources
Related posts
More in Use cases
- WCAG 1.2.2 captions: are burned-in open captions enough?
WCAG 1.2.2 (Level A) covers captions for prerecorded video. Open captions cannot be turned off; burn them in with Sume when one file must carry the text.
- Open house invite video for Thanksgiving weekend, from listing photos
Thanksgiving is Nov 26, 2026, so the open house weekend is Nov 28 and 29. Turn six listing photos into one vertical invite with the date and address burned in.
- Open house promo reel: date, time and address over listing photos
Make a vertical open house reel from listing photos: a silent Timeline 1.0 render, then burn date, time and address as caption cues. Rates and limits included.
- Ordered Wrong Size on TikTok Shop: a fit clip per SKU costs $2.76
TikTok Shop now tags size returns as buyer-fault when evidence of unused condition exists. A 15 s Sume avatar sizing clip per SKU is $2.76 on Standard.
Written by Sume