The full spec table

FormatSpecs
Reels1080 by 1920, 9:16, MP4, H.264, up to 3 minutes, under 1GB, 24 to 60fps
Feed videoMP4, up to roughly 4 hours, landscape, square and vertical accepted
Stories1080 by 1920, 9:16, short segments
CodecsH.264 or H.265 video with closed GOP of 2 to 5 seconds, AAC audio, 4:2:0 chroma subsampling

The encoding details that keep quality

Facebook re encodes everything, and sloppy exports lose the most in that pass. The settings that survive best: progressive scan, square pixels, a closed GOP of 2 to 5 seconds, and a sensible bitrate rather than a maxed out one. A clean 1080p export at a moderate bitrate routinely looks better after Facebook's compression than a 4K file it has to crush.

Page video vs profile video

Business publishing runs through Pages, and Pages publish through Meta's API when a scheduler is involved. That brings permission requirements with it: the account connection needs the right Page roles, and those permissions expire and get revoked more often than people expect. If posts to a Page keep failing while everything looks fine, the connection is the first suspect; the troubleshooting guide below covers each case.

One export for Facebook and Instagram

Meta owns both platforms and the same 1080 by 1920 master serves both Reels products. What should differ is not the file but the packaging: hook, caption and posting time. Reposting the identical video with the identical caption everywhere is exactly the behaviour platforms have started limiting reach for, so adapt the wrapper even when the footage is shared.