The numbers, destination by destination
Settings you can actually type in
This lesson is the one to come back to. Everything before it explains why these numbers; here are the numbers.
Two rules first, because they apply to every line below. Frame rate always matches the timeline. And audio is 48 kHz, in every destination, always — 44.1 kHz is a music convention and mixing the two is how a sync drift starts.
YouTube and long-form web
- H.264, MP4 container, High profile
- 1080p25 or 1080p30: 16 Mbit/s, VBR two-pass or CRF 18
- 1080p50 or 1080p60: 24 Mbit/s
- 2160p25 or 2160p30: 45 Mbit/s
- AAC audio, stereo, 320 kbit/s, 48 kHz
- Integrated loudness around −14 LUFS, true peak −1 dBTP
YouTube publishes recommended bitrates in roughly this region and its own encoder will ignore your exact figure anyway; what you are buying is a clean source for it to work from. Going to 50 Mbit/s at 1080p wastes your upload time and changes nothing.
Instagram Reels, TikTok, YouTube Shorts
- 1080 × 1920, 9:16, H.264, MP4
- 25 or 30 fps, 8 to 12 Mbit/s
- AAC 192 kbit/s, 48 kHz
- Loudness around −14 LUFS
Keep anything that must be read out of the top 15% and bottom 20% of the frame, where the platform's own interface sits. The safe-area lesson in the text block covers the reasoning; these are the numbers to design against.
Instagram feed
- 1080 × 1350 (4:5) for maximum height in the feed, or 1080 × 1080 square
- Otherwise as above
Client review copies
- H.264, MP4, 1080p at 8 to 10 Mbit/s — small enough to send, good enough to judge
- Burnt-in timecode in a corner, and the version number burnt in with it
- Audio: the current mix, not a placeholder, even if it is rough
The timecode is not decoration. It converts "the bit near the middle where the music is wrong" into "02:14", and that single change is worth more to your schedule than any other habit in this course.
WhatsApp and messaging apps
- 720 × 1280 or 1280 × 720, H.264
- 2 to 3 Mbit/s, and keep the file under about 16 MB where you can
- AAC 128 kbit/s
These apps re-encode aggressively to a small target regardless of what you send. Exporting small deliberately means the damage happens once, under your control, rather than twice.
Archive master
- ProRes 422 HQ (MOV) or DNxHR HQX (MOV or MXF), 10-bit
- Full timeline resolution, no platform cropping, no burnt-in captions
- Audio as 24-bit PCM, not AAC
A ten-minute 1080p25 ProRes 422 HQ master runs at roughly 184 Mbit/s, which is about 14 GB. That is the price of never re-opening the project to make a new deliverable.
Broadcast and agency delivery
Whatever the spec sheet says, exactly. There is a lesson on reading one later in this block. Do not improvise here; a rejected delivery costs a day.
Where the free tools stand
DaVinci Resolve's free version exports H.264 and H.265 in MP4 and MOV, ProRes and DNxHR on the platforms where those are available, up to 3840 × 2160. Some codec and resolution options are reserved for Resolve Studio and the exact list has moved between versions and operating systems — check the render page on your own install rather than trusting a list from the internet, including this one.
Anything Resolve declines to write, ffmpeg will, free, on every platform. Export a ProRes or high-bitrate H.264 master from the editor and convert:
ffmpeg -i master.mov -c:v libx265 -crf 24 -tag:v hvc1 \
-c:a aac -b:a 192k out.mp4The -tag:v hvc1 is needed for H.265 files to play in QuickTime and Safari; without it they play in VLC and nowhere else. Shotcut and Kdenlive also export the full range of H.264, H.265 and VP9 without restriction, and both run on machines Resolve will not.
The three checkboxes people miss
Frame rate. Set from the timeline, not from the preset. A preset called "YouTube 1080p" often carries 29.97 and will convert your 25p edit silently.
Web optimised / fast start. On, for anything going to a website of your own.
Render at source resolution vs timeline resolution. Some presets quietly upscale or downscale. Read the resolution field, do not assume.
Build presets, once
Every editor lets you save a render preset. Make one per destination, name it properly — YT-1080p25-16M, Reel-1080x1920-10M, Master-ProRes422HQ — and stop retyping numbers at eleven at night, which is when the wrong frame rate gets exported.
In Resolve, set up the Deliver page and press the plus on the preset row. The preset stores the codec, bitrate, audio and resolution, though not the render range, which you still set each time.
Honest limits
Platform recommendations change and the figures above are current practice rather than permanent truth. They are also generous by design: nothing here will look bad, and several of them could be trimmed by a third with no visible difference on a phone. When in doubt, err upward on the upload and downward on anything a person has to download.
Today
Create and save three render presets in your editor: master, web, and review-with-timecode. Name them so that the numbers are in the name.
The one thing to keep
Save a named render preset per destination with the frame rate taken from the timeline rather than the preset, because the wrong frame rate is the mistake that survives every other check.
Before you move on
A 25p edit exported with a preset called "YouTube 1080p" plays with an even stutter on every pan. What went wrong?
Pick the one you would defend. Nobody sees your answer.