Workload · Exporting video for the web

H264 export settings for web video, field by field

The H264 export settings that play on phones, browsers and televisions are an MP4 with H.264 High profile, 8-bit 4:2:0 colour, no larger than 1920×1080, at the frame rate you edited in (60 fps at most), with stereo AAC sound at 48 kHz. The one thing left for you to decide is the bitrate, and it matters more than the manuals suggest when your file is served exactly as you made it.

The short version
  1. One recipe, mapped to Premiere Pro, Resolve and Final Cut Pro
  2. How to choose a bitrate when nothing is re-encoded for you
  3. The slips that get a file refused, and two the sheet leaves open
  4. A two-line check that proves a file is right before you upload

The recipe, then the same thing in your editor

The left column is the file sheet on our video on demand page: a file that matches it plays as uploaded. The other columns show where each value lives in three editors. Labels shift between versions, so go by the meaning.

The sheet asks forPremiere ProDaVinci Resolve (Deliver page)Final Cut Pro (Export File)
MP4 file, .mp4 or .m4vFormat: H.264Format: MP4Format: Computer, then check the saved file ends .mp4 or .m4v
H.264 videoSet by the formatCodec: H.264Video Codec: an H.264 option, not HEVC
Baseline, Main or High profileProfile: High, never High10Encoding Profile: HighNot listed
8-bit 4:2:0Comes with Profile: High, which is why High10 is outComes with Encoding Profile: HighNo field: confirm with the check below
Up to 1920×1080Frame sizeResolutionResolution
Up to 60 fpsFrame rate: match the sequence. Field Order: ProgressiveFrame rate: the timeline'sFollows the project
AAC-LC, 44.1 or 48 kHz, mono or stereoAudio Format AAC, 48 kHz, StereoAudio Codec: AAC, Sample Rate 48000Read the Audio Format line

Two quirks. In Final Cut Pro, Apple says you can change the resolution only for publishing formats, hence Computer in the table. Color Space is set by the project settings and the codec, not by a menu here, so check an HDR project before you export. In Resolve, Blackmagic's September 2026 codec list for version 21.1 shows H.264 export on Linux only in Studio with NVIDIA graphics and no AAC export on Linux. Its Resolve 20 manual called AAC encoding macOS-only, though the list shows it on Windows too. If AAC isn't in your menu, use the audio fix further down.

Choosing a bitrate when nobody re-encodes for you

Pick the bitrate for your slowest viewers, because you get exactly one. Our library doesn't make lower-quality copies of your uploads: adaptive bitrate is a live feature, and library files play at the quality you exported. So a huge export isn't safer. It's a file some viewers can't keep up with.

Apple's HLS authoring guide gives a yardstick. Its example H.264 ladder puts 1280×720 at 3,000 and 4,500 kbit/s and 1920×1080 at 6,000 and 7,800 kbit/s, and it says a VOD peak should be no more than twice the average. Those are rungs in a ladder, not rules for a single file, so this is our own reading for one.

What you madeOur suggestionWhy
Talks, sermons, screen recordings720p at about 3 Mbps, or 1080p at about 6Little moves, and many viewers are on phones
Films, music videos, general video1080p at about 6 MbpsThe lower of Apple's two 1080p rungs
Sport and fast action1080p at about 8 MbpsFast motion is harder to compress, so give it the top of Apple's 1080p range

In Premiere Pro, use VBR with the target at that figure and the maximum no more than twice it. In Resolve, choose Restrict to and enter the figure in Kb/s. Blackmagic describes this as a maximum, so the file may average below it. 6 Mbps is 6000. Apple's list of Export File settings has no bitrate field, so for that control in Final Cut Pro, export a high-quality master with the Video and Audio format first, then set the bitrate from that file with the Open with Compressor option (if you have Compressor) or the FFmpeg recipe below.

A worked example. An hour at 6 Mbps is about 2.7 GB, by our arithmetic. Two hundred people watching all of it use about 540 GB of the monthly transfer that library and live viewing share. The same hour at 20 Mbps is 9 GB, so Starter's 50 GB library holds about five hours of it, compared with about eighteen.

What gets a file refused

When a file doesn't fit, the library marks it Rejected and says what to change. On Platinum, HEVC, VP9, ProRes and other formats are converted to H.264 for you; on Starter and Pro you export to the sheet. MKV and other wrappers are turned into MP4 on every plan without re-encoding, so the video and sound inside still have to fit.

The slipHow it usually happensThe fix
10-bit videoAdobe lists High10 as a 10-bit H.264 profile, and it's easy to pick for a graded projectProfile: High
4:2:2 colourA camera or capture file passed straight throughExport through your editor with Profile: High, then confirm yuv420p with the check below
HEVC from a phoneApple's High Efficiency camera format records HEVCExport from your editor as H.264, or shoot with Most Compatible
Over 1080p or over 60 fpsA 4K timeline with a match-source preset, or high-frame-rate phone clipsSet the frame size and rate yourself
5.1 soundA surround mix left onStereo. Adobe says Premiere down-mixes 5.1 to stereo if you choose fewer channels
96 kHz or non-AAC audioStudio settings, or uncompressed sound in a MOVAAC at 48 kHz

If your editor offers HE-AAC or AAC+, leave it: the sheet names AAC-LC, which is plain AAC.

Two things the sheet doesn't mention

Variable frame rate. Our sheet sets a ceiling of 60 fps and doesn't say how a variable rate is treated, so we can't promise either way. It's still worth settling, because a phone clip can run past that ceiling. HandBrake's draft documentation explains that it stopped passing the source's variable rate straight through by default, because high-frame-rate footage from phones and action cameras might not suit devices with frame rate limits; its presets now cap the rate with Peak Frame Rate. A fixed-rate export from your editor settles it. In HandBrake, Constant Frame Rate with Same as Source makes the variable parts constant, so check the result is still within 60.

Interlacing and levels. Apple's guide says interlaced material must be deinterlaced, and suggests High Level 4.1 or below for widest reach, with a key frame every two seconds. Level 4.1 covers 1080p at 30 fps. By our reading of the H.264 standard's Annex A, 1080p at 60 needs Level 4.2, so if you edited at 50 or 60 and the motion doesn't need it, half that rate is the safer export.

Prove the file is right before you upload it

Don't trust the preset's name. FFmpeg's ffprobe tool reads what's really in the file, and MediaInfo, a free app, shows the same facts without a terminal.

ffprobe -v error -select_streams v:0 -show_entries stream=codec_name,profile,level,pix_fmt,width,height,field_order,r_frame_rate,avg_frame_rate -of default=noprint_wrappers=1 lecture.mp4
ffprobe -v error -select_streams a:0 -show_entries stream=codec_name,profile,sample_rate,channels -of default=noprint_wrappers=1 lecture.mp4
  • codec_name should say h264, with profile Baseline, Main or High. Constrained Baseline counts as Baseline. High 10 or High 4:2:2 means export again. level prints without the point: 41 is Level 4.1.
  • pix_fmt should be yuv420p. yuvj420p is still 8-bit 4:2:0, so upload a short test rather than re-exporting. Anything with 10le, 422 or 444 won't fit.
  • width and height should stay within 1920 and 1080, and field_order should say progressive.
  • r_frame_rate and avg_frame_rate should agree. If they differ, suspect a variable rate.
  • On the sound line you want aac, profile LC, 44100 or 48000, and 1 or 2 channels.

Then export 30 seconds with the same settings and upload that first. If it comes back Ready, you've checked those settings before spending hours on the full export. The tutorials cover the upload and the embed code. If a mistake gets past you later, the library lets you replace a video while its player, embed code and links stay the same.

Repair a file without going back to the editor

When only the sound is wrong, copy the picture untouched and redo the audio. That costs no video quality. The input can be a MOV too. On Windows, put each command on one line without the backslashes.

ffmpeg -i in.mp4 -c:v copy \
  -c:a aac -b:a 192k -ar 48000 -ac 2 -movflags +faststart out.mp4

When the picture is wrong too, this makes a file to the sheet, here for a 30 fps master. It re-encodes, so start from your best master. Don't use it on HDR footage: it converts the format, not the look, so grade those to standard range in your editor.

ffmpeg -i master.mov \
  -vf "scale=1920:1080:force_original_aspect_ratio=decrease:force_divisible_by=2,format=yuv420p" \
  -r 30 -c:v libx264 -profile:v high -level:v 4.1 -preset slow \
  -b:v 6M -maxrate 8M -bufsize 12M -g 60 -keyint_min 60 \
  -c:a aac -b:a 192k -ar 48000 -ac 2 -movflags +faststart upload.mp4
  • Set -r to your master's own frame rate, halved until it's 60 or less, and -g and -keyint_min to twice the -r figure for a key frame every two seconds: 25 fps means -r 25 -g 50 -keyint_min 50. For 29.97, write -r 30000/1001 and keep 60.
  • Above 30 fps at 1080p, change -level:v to 4.2.
  • Change 6M, 8M and 12M to suit your bitrate. For a 720p file, change 1920:1080 to 1280:720.
  • If the master is interlaced, put yadif, at the start of that filter list.
  • The picture is fitted inside 1920×1080. A wider master comes out shorter, a vertical 1080×1920 master comes out 608×1080, and a master smaller than 1080p is scaled up.

Run the ffprobe check on the result before uploading.

Questions people ask

Should I use a higher bitrate to be safe?
No. Your upload is what viewers receive, so more bitrate protects nothing once the picture looks clean, and it's harder on slow connections. Compare two short exports on a phone and keep the smaller one if you can't tell them apart.
Can I upload 4K?
Not as it stands: the sheet stops at 1920×1080. On Platinum, other formats are converted automatically, but its plan table doesn't say a 4K file stays 4K. Export at 1080p so you know what your viewers will get.
What about vertical video?
The sheet states its limit as 1920×1080 and doesn't mention portrait, so don't assume. Upload a short 1080×1920 clip first and see whether it comes back Ready, or ask on chat.
My file came from OBS. Do I need to convert it?
Often not. An MKV is turned into MP4 for you without re-encoding, so what matters is what's inside: run the check above. A recording on a 10-bit or 4:4:4 colour setting won't fit.

Upload a short test clip

Open a library, send it 30 seconds of your export, and see it come back with a player and an embed code.

Open a video library

Read next