The most common quality complaint — "it looked fine in my editor, but blurry after upload" — is almost always an export problem, not a platform conspiracy. Platforms transcode your file into their own ladder of renditions. If your source is already compressed hard, their compression stacks on top of yours and the result falls apart in motion.

The safe baseline

  • Container — MP4. Universally accepted and fastest to process.
  • Video codec — H.264 (High profile) for compatibility, H.265 only if your pipeline is certain about it.
  • Audio codec — AAC-LC, 48 kHz, stereo, 192–384 kbps.
  • Colour — Rec. 709, 8-bit, unless you are deliberately delivering HDR.
  • Frame rate — match your source exactly. Never convert 24 to 30 or 30 to 60; that is where judder comes from.

Resolution and bitrate targets

  1. 1080p horizontal, 30 fps — 1920x1080, 12–16 Mbps.
  2. 1080p horizontal, 60 fps — 1920x1080, 18–24 Mbps.
  3. Vertical Shorts and Reels — 1080x1920, 12–20 Mbps.
  4. 4K horizontal, 30 fps — 3840x2160, 40–55 Mbps.

These are generous on purpose. Upload bandwidth is cheap compared with permanently soft footage. If your content has heavy motion, grain, confetti, water or fast camera pans, go to the top of each range or above it.

Uploading a 4K master even for content shot at 1080p often looks better after processing, because platforms assign a higher-quality encoder ladder to 4K uploads. The trade-off is a much longer processing time.

Platform limits worth knowing

  • YouTube — up to 256 GB or 12 hours per file. Shorts must be vertical or square and three minutes or under. Processing of higher resolutions can lag behind, so a video may look poor for the first hour after publishing.
  • Instagram Reels via the API — MP4/MOV, H.264 and AAC, under roughly 1 GB, best kept under ninety seconds. The media must be reachable at a public URL for the container step, and the container must finish processing before publishing.

Why Instagram uploads stall

Most "stuck in processing" failures come from one of four causes: a non-public or redirect-heavy media URL, an unsupported audio stream, a variable frame rate recording from a phone, or a file far larger than needed. Exporting at constant frame rate with AAC audio resolves the majority of them.

Audio matters more than you think

Viewers tolerate mediocre video and abandon bad audio. Normalise your mix to around -14 LUFS integrated with true peaks below -1 dBTP. Both platforms apply their own loudness normalisation, so a mix that is pushed hot gets turned down and simply sounds squashed rather than loud.

File naming and storage for automated pipelines

If a scheduler picks up files from a folder, the file name is your only interface. A convention that works:

  • 2026-10-15_topic-slug_v01.mp4 — sortable by date, readable, versioned.
  • Keep one folder per destination so a channel never picks up another channel's clips.
  • Never reuse a file name after editing; change the version suffix instead.
  • Avoid spaces, emoji and non-ASCII characters — they break a surprising number of upload APIs.

A quick pre-upload check

  1. Is the frame rate constant and identical to the source?
  2. Is the audio AAC stereo at 48 kHz?
  3. Is the bitrate at or above the table above?
  4. Are captions inside the safe area for vertical?
  5. Is the file name clean and the folder correct?

Get these five right once, save the preset, and you never have to think about export settings again.