Blog

Video export settings for social: one preset that uploads everywhere

The export settings YouTube, Instagram, TikTok, Facebook, X, LinkedIn, Pinterest and Reddit actually document: container, codec, frame rate, audio and bitrate, and how to pick a bitrate that fits each upload limit.

Every social platform re-encodes what you upload. That is not a reason to export carelessly. A file the platform does not like gets rejected, or gets squeezed twice and comes out soft. The good news is that the platforms publish what they want, and their lists overlap almost completely.

Here is what each one documents, the one preset that satisfies all of them, and how to pick a bitrate that fits the upload limit. For the size arithmetic, use the video file size calculator.

The short version

  • Container: MP4, with the moov atom at the front of the file (often labelled "fast start" or "web optimized").
  • Video codec: H.264, High Profile, progressive scan, closed GOP, 4:2:0 chroma.
  • Frame rate: the rate you shot at, kept constant. For Reddit ads, 30 fps or lower.
  • Audio: AAC-LC, 48 kHz, stereo, at least 128 kbps.
  • Bitrate: YouTube's table as a starting point (8 Mbps for 1080p at 24 to 30 fps), then check it fits each platform's file size limit and Instagram's 25 Mbps cap.

Each line is backed by at least one platform's documentation, below.

What each platform documents

YouTube

YouTube publishes the most complete list, in its recommended upload encoding settings: MP4 with the moov atom at the front and no edit lists; H.264, progressive scan, High Profile, 2 consecutive B frames, closed GOP, CABAC, 4:2:0; audio as AAC-LC or Opus at 48 kHz; and frame rate encoded at the rate it was recorded, with interlaced footage deinterlaced first (1080i60 becomes 1080p30). Recommended audio bitrates are 128 kbps mono, 384 kbps stereo and 512 kbps for 5.1.

Instagram

Meta's Instagram media reference sets the rules for Reels posted through the API: MOV or MP4 with no edit lists and the moov atom at the front; HEVC or H.264, progressive, closed GOP, 4:2:0; 23 to 60 fps; at most 1920 pixels wide; video bitrate VBR with a 25 Mbps maximum; AAC audio at up to 48 kHz, mono or stereo, 128 kbps. A Reel can be 3 seconds to 15 minutes and 300 MB; a Story 3 to 60 seconds and 100 MB.

Facebook video ads

For a video ad in the Facebook Feed, Meta's ad specs ask for H.264 compression, square pixels, a fixed frame rate, progressive scan and stereo AAC audio at 128 kbps or more, in MP4, MOV or GIF, up to 4 GB and 241 minutes. The recommended shape there is 4:5 at 1440 by 1800.

TikTok

For posting, TikTok's media transfer guide recommends MP4 and H.264 (it also takes WebM, MOV, H.265, VP8 and VP9), 23 to 60 fps, 360 to 4,096 pixels on each side, and up to 4 GB. For in-feed ads, the auction ad specs add a floor: bitrate of at least 516 kbps, files of 500 MB or less.

X

The X media best practices recommend H.264 High Profile at 30 or 60 fps with AAC-LC audio, and require 60 fps or less, YUV 4:2:0, progressive scan, no open GOP, mono or stereo audio (not 5.1), and AAC Low Complexity rather than High-Efficiency AAC.

LinkedIn, Pinterest and Reddit

  • LinkedIn takes MP4 between 75 KB and 500 MB, 3 seconds to 30 minutes, for posts and ads, per its Videos API.
  • Pinterest takes MP4, MOV or M4V in H.264 or H.265, up to 2 GB, 4 seconds to 15 minutes, per its product specs.
  • Reddit video ads take MP4 or MOV (ProRes not supported), up to 1 GB, 2 seconds to 15 minutes, at a maximum of 30 fps, per its video ad specifications.

Why these settings, briefly

  • Moov atom at the front. The moov atom is the file's index. At the front, a server can start reading the video before the whole file arrives. YouTube and Instagram both ask for it.
  • Closed GOP, progressive, 4:2:0. These are the plain, widely supported flavours of H.264. X refuses open GOP outright, and YouTube, Instagram and X all name progressive scan and 4:2:0.
  • A constant frame rate you shot at. YouTube says to keep the recorded rate, and Facebook asks for a fixed one. Converting 24 fps footage to 30 adds duplicate frames without making anything smoother. The one catch is Reddit ads, which cap at 30 fps, so a 60 fps clip needs a 30 fps export for Reddit.
  • AAC-LC, stereo, 48 kHz. Instagram caps audio at 48 kHz and stereo, X rejects HE-AAC and 5.1, and Facebook asks for stereo AAC at 128 kbps or more.

Choosing a bitrate

YouTube's table for standard dynamic range video is the most useful public reference: 5 Mbps for 720p, 8 Mbps for 1080p at 24 to 30 fps and 12 Mbps at 48 to 60 fps, 16 Mbps for 1440p, and 35 to 45 Mbps for 2160p. Those are fine starting points for the other platforms too, with two checks.

First, the bitrate cap. Instagram's is 25 Mbps for video, so a 4K export at 45 Mbps needs to come down for Reels.

Second, the file size limit. Size is bitrate times length. The formula:

size in bytes = (video bitrate + audio bitrate) × seconds ÷ 8

A 45-second 1080p ad at 8 Mbps with 384 kbps audio is (8,000,000 + 384,000) × 45 ÷ 8 = 47,160,000 bytes, about 47 MB. That fits everywhere on the list, including a 100 MB Instagram Story. A 3-minute version at the same settings is about 189 MB: still fine for a Reel (300 MB) or LinkedIn (500 MB), but past a Story's 60-second limit anyway.

To go the other way, divide the limit in bits by the length and subtract the audio. A 15-minute Reel has to fit in 300 MB: 300,000,000 × 8 ÷ 900 = 2.67 Mbps in total, so about 2.54 Mbps of video with 128 kbps audio. That is well under YouTube's 720p figure, which is the real lesson: for long uploads, the size limit decides the quality, not the codec.

One MB or another

Platforms write "MB" and "GB" without saying whether they mean 1,000,000 bytes or 1,048,576. The difference is about 5% at the megabyte scale. Your editor may show binary units while calling them MB. If a file is within 5% of a limit, assume the smaller, decimal reading and export a little lower. The calculator shows both and flags any file that only fits under the larger reading.

A preset to save

In most editors, this is one custom preset: MP4, H.264 High Profile, source frame rate (constant), variable bitrate at about 8 Mbps for 1080p, AAC-LC stereo at 48 kHz and at least 128 kbps (YouTube recommends 384 kbps for stereo), "fast start" or "optimize for web" on. Make a second preset at 30 fps for Reddit if you shoot at 60. Then check each export's size against the platform limit before you upload, not after it fails.

If you would rather not export at all, Hermoso is an AI marketing agent that runs your marketing on autopilot. It makes video ads in 9:16, 1:1 and 16:9, can reframe a video to another aspect ratio, and posts or schedules straight to your own connected channels, refusing anything a platform would reject at the moment you schedule it rather than hours later. See the social media scheduler.

Questions people ask

What are the best export settings for social media video?

MP4 with the moov atom at the front, H.264 High Profile, progressive, closed GOP, 4:2:0, the frame rate you shot at kept constant, and AAC-LC stereo at 48 kHz and 128 kbps or more. YouTube, Instagram and X document these, and Facebook, TikTok, Pinterest and Reddit accept them, with one catch: Reddit video ads need 30 fps or less.

What bitrate should I export 1080p video at?

YouTube recommends 8 Mbps for 1080p at 24 to 30 fps and 12 Mbps at 48 to 60 fps. Check the result against each platform's file size limit, and remember Instagram caps video at 25 Mbps.

What frame rate should I use?

The one you recorded at, kept constant. Instagram and TikTok accept 23 to 60 fps and X up to 60, but Reddit video ads cap at 30 fps.

How big will my video file be?

Add the video and audio bitrates, multiply by the seconds and divide by 8. 45 seconds at 8 Mbps with 384 kbps audio is about 47 MB.