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 for | Premiere Pro | DaVinci Resolve (Deliver page) | Final Cut Pro (Export File) |
|---|---|---|---|
| MP4 file, .mp4 or .m4v | Format: H.264 | Format: MP4 | Format: Computer, then check the saved file ends .mp4 or .m4v |
| H.264 video | Set by the format | Codec: H.264 | Video Codec: an H.264 option, not HEVC |
| Baseline, Main or High profile | Profile: High, never High10 | Encoding Profile: High | Not listed |
| 8-bit 4:2:0 | Comes with Profile: High, which is why High10 is out | Comes with Encoding Profile: High | No field: confirm with the check below |
| Up to 1920×1080 | Frame size | Resolution | Resolution |
| Up to 60 fps | Frame rate: match the sequence. Field Order: Progressive | Frame rate: the timeline's | Follows the project |
| AAC-LC, 44.1 or 48 kHz, mono or stereo | Audio Format AAC, 48 kHz, Stereo | Audio Codec: AAC, Sample Rate 48000 | Read 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 made | Our suggestion | Why |
|---|---|---|
| Talks, sermons, screen recordings | 720p at about 3 Mbps, or 1080p at about 6 | Little moves, and many viewers are on phones |
| Films, music videos, general video | 1080p at about 6 Mbps | The lower of Apple's two 1080p rungs |
| Sport and fast action | 1080p at about 8 Mbps | Fast 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 slip | How it usually happens | The fix |
|---|---|---|
| 10-bit video | Adobe lists High10 as a 10-bit H.264 profile, and it's easy to pick for a graded project | Profile: High |
| 4:2:2 colour | A camera or capture file passed straight through | Export through your editor with Profile: High, then confirm yuv420p with the check below |
| HEVC from a phone | Apple's High Efficiency camera format records HEVC | Export from your editor as H.264, or shoot with Most Compatible |
| Over 1080p or over 60 fps | A 4K timeline with a match-source preset, or high-frame-rate phone clips | Set the frame size and rate yourself |
| 5.1 sound | A surround mix left on | Stereo. Adobe says Premiere down-mixes 5.1 to stereo if you choose fewer channels |
| 96 kHz or non-AAC audio | Studio settings, or uncompressed sound in a MOV | AAC 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_nameshould sayh264, withprofileBaseline, Main or High.Constrained Baselinecounts as Baseline.High 10orHigh 4:2:2means export again.levelprints without the point: 41 is Level 4.1.pix_fmtshould beyuv420p.yuvj420pis still 8-bit 4:2:0, so upload a short test rather than re-exporting. Anything with10le,422or444won't fit.widthandheightshould stay within 1920 and 1080, andfield_ordershould sayprogressive.r_frame_rateandavg_frame_rateshould agree. If they differ, suspect a variable rate.- On the sound line you want
aac, profileLC, 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
-rto your master's own frame rate, halved until it's 60 or less, and-gand-keyint_minto twice the-rfigure for a key frame every two seconds: 25 fps means-r 25 -g 50 -keyint_min 50. For 29.97, write-r 30000/1001and keep 60. - Above 30 fps at 1080p, change
-level:vto 4.2. - Change
6M,8Mand12Mto suit your bitrate. For a 720p file, change1920:1080to1280: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.