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.

6 min readSume
All posts

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.

From Meta's Instagram Graph API, Facebook Reels, Facebook Page Stories and Threads API pages, read 2026-10-03.
SpecInstagram ReelsInstagram StoriesFacebook ReelsFacebook Page storyThreads
Duration3 s to 15 min3 to 60 s3 to 90 sUp to 60 sUp to 300 s
Frame rate23-60 fps23-60 fps24-60 fps24-60 fps23-60 fps
File size300 MB100 MBNot listedNot listed1 GB
Video bitrateVBR, 25 Mbps maxVBR, 25 Mbps maxNot listedNot listedVBR, 100 Mbps max
CodecHEVC or H264HEVC or H264H.264 or H.265H.264 or H.265HEVC or H264
AudioAAC, 48 kHz max, mono or stereoAAC, 48 kHz max, mono or stereoAAC-LC, stereo, 48 kHzAAC-LC, stereo, 48 kHzAAC, 48 kHz max, mono or stereo
Aspect ratio0.01:1 to 10:1, 9:16 advised0.1:1 to 10:1, 9:16 advised9:169:160.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

All Use cases posts

Written by Sume