Prepare video for upload
The right export is smaller, uploads faster, is accepted without complaint and transcodes cleanly. It is not the highest possible quality and it is not the smallest file. Here is the middle.
Export H.264 video and AAC audio in an mp4, at the source's own resolution and frame rate. Pick a bitrate that suits the resolution, and put the moov atom (the file's index) at the front. Keep the file under the size limit and check it plays to the end. Upload that, not a heavily compressed file or a huge master.
Exports come in two bad flavours. One is the archive master: ProRes or a very high bitrate H.264, tens of gigabytes, beautiful and over every upload limit. The other is the share-to-social preset. It is small and fast, but already so compressed that every rendition the host makes from it inherits the blocks and the smear. The file you want to upload sits between them. Getting there takes a few deliberate choices in the export dialog.
This guide walks through those choices: container, codecs, resolution, frame rate and bitrate. It covers the index position that decides whether the file starts quickly. It also covers the checks that confirm the export is what you think it is. It is written around VideoBB's limits: 4 GB per file, with mp4, mkv, avi, mov, webm, m4v, mpg, wmv, flv, ts and 3gp accepted. But the settings suit any host that transcodes. The uploading video hub covers what happens after export, from upload speed to failed transfers.
Why preparation matters when the host transcodes anyway
It is fair to ask why any of this matters. The host will re-encode the file into its own ladder of renditions whatever you send. There are three reasons. First, size: a well-chosen export is a fraction of a master's size, and upload time is proportional to size. Second, acceptance: a file in an unusual container, with an unusual codec, at a variable frame rate or with a broken index can fail probing or transcode badly. Third, quality: transcoding cannot add detail, so a source that is already soft or blocky produces renditions that are softer and blockier still. Video transcoding explained shows what the host does with the file, which makes the reasoning behind each setting below clearer.
Recommended export settings
Sensible defaults for a file that will be transcoded by the host. Bitrates are rules of thumb and YouTube's published recommendations are a useful cross-check.
| Setting | Recommendation | Why |
|---|---|---|
| Container | mp4 (mov is fine from Apple tools) | Universally understood; carries H.264 and AAC natively |
| Video codec | H.264 (AVC), High profile | Decodes everywhere; transcodes cleanly |
| Audio codec | AAC, 48 kHz, stereo, 128-256 kbps | Standard for mp4; matches most sources |
| Resolution | Native resolution of the source | Do not upscale; do not downscale unless over the size limit |
| Frame rate | Constant, matching the source (24, 25, 30, 50 or 60) | Variable frame rate causes sync drift on transcode |
| Bitrate, 1080p | 8-12 Mbps at 30 fps; more for 60 fps | Comfortably above the host's top rendition |
| Bitrate, 4K | 35-45 Mbps at 30 fps | Matches YouTube's published recommendation |
| Index position | moov atom at the front (faststart) | Lets the probe and player read the header first |
| Colour | Rec. 709, 8-bit for SDR | Avoid unintended HDR or log profiles |
Container and codecs
MP4 with H.264 video and AAC audio is the safe combination, and for good reason. It is what browsers, phones and every transcoding pipeline handle natively. VideoBB accepts many other containers, and they will be transcoded. But each step away from the common case adds a chance of a surprise. MKV is fine as a container but can carry codecs the probe will not like. AVI is old and often wraps codecs that have not been current for years. WMV and FLV are accepted for older material, not as a recommendation. MP4 vs MKV vs AVI compares them. H.264 vs H.265 vs AV1 explains why H.264 is still the right upload codec, even though newer ones compress better. The host's output is what viewers receive, so the upload only has to be decodable and clean. The video formats hub covers every container and codec named here.
Resolution and frame rate
Export at the resolution the footage was shot or composed at. Upscaling a 1080p edit to 4K adds nothing but size. The host makes 1440p and 2160p renditions, which Premium members can watch, only when the source has those pixels. An upscaled source just gives a soft 4K rendition. Downscaling is only worth it to fit under a size limit, and even then reducing the bitrate is usually the better lever. Frame rate should be constant and should match the source. Phones and screen recorders often produce variable frame rate files. Many editors handle them, but they cause audio to drift out of sync across a long transcode. Most editors have a setting to conform to a constant rate on export. In FFmpeg the -vsync cfr or -fps_mode cfr option does it. Frame rate: 24, 30 and 60 fps covers the choice itself.
Bitrate: the one setting that controls size
Bitrate is where the size trade-off lives. Too low, and the source carries artefacts into every rendition. Too high, and the file is large for no visible gain, because the host's 1080p rendition will be encoded at a lower rate anyway. The table's figures give the host comfortable headroom. Your editor may offer a quality-based mode (CRF in x264 terms) instead of a target bitrate. If so, a value around 18 to 20 gives a similar result at whatever size the content needs. Google publishes recommended upload bitrates for YouTube, a fair cross-check for any host. The bitrate guide goes into the reasoning.
Preparing an existing file with FFmpeg
For a file you did not export yourself, or one that needs fixing. Each command is documented in the FFmpeg documentation.
Inspect it
ffprobe -hide_banner input.mkvprints the container, streams, codecs, resolution, frame rate and duration. Read this before deciding what to do; often nothing needs re-encoding.Re-mux if the codecs are already right
If the video is H.264 and the audio AAC, change only the container:
ffmpeg -i input.mkv -c copy -movflags +faststart output.mp4. This takes seconds and loses nothing.Re-encode if they are not
ffmpeg -i input.avi -c:v libx264 -preset slow -crf 19 -fps_mode cfr -c:a aac -b:a 192k -movflags +faststart output.mp4produces a clean, constant-frame-rate H.264 file at a quality-based size.Reduce size if over the limit
Raise the CRF by one or two points (a higher CRF means a smaller file) and re-run. Only reduce resolution as a last resort.
Verify
Run ffprobe again on the output and play it to the end. Confirm the duration matches the input and that audio stays in sync at the end.
Before you press upload
A final checklist; each item corresponds to a common rejection or complaint.
- The file is under 4 GB, checked in the file manager rather than the editor's estimate.
- The container is one of the accepted list, and the extension matches what is inside.
- The video plays locally from start to end with audio in sync.
- The resolution is the source's native resolution, not upscaled.
- The frame rate is constant.
- Dead air at the start and end is cut. The free trim video tool does this, and its fast mode copies the streams without re-encoding.
- Music you do not have the rights to is gone. If you need a silent copy, the mute video tool removes the whole audio track and leaves the picture untouched.
- Fast start is enabled, or the file has been re-muxed with faststart.
- If you upload often, your visibility, category and tags are set once as defaults. The help page on upload defaults shows where.
- You have kept the master export somewhere safe; the host stores what you upload, but the master is yours.
What to do with the master
The prepared upload is not your archive. Keep the high-quality master, whether that is a ProRes export or the editor project with its media, in your own storage. If a host changes its rendition ladder, if you move hosts, or if you need a higher-quality version for another purpose, the master is what you go back to. Video hosting for business makes the same point for teams, and the upload page is where the prepared file goes.
Frequently asked questions
Should I upload in H.265 to make the file smaller?
You can if the host accepts it, and VideoBB will transcode it. But the gain is small and the risk is not zero. Some H.265 files carry profiles or colour metadata that decode oddly. H.264 at a sensible bitrate is a little larger and entirely predictable. If upload time is the concern, lower the H.264 bitrate slightly rather than switching codec.
Does the host keep my original file?
VideoBB stores the uploaded source and derives every rendition from it. That does not make it your archive: keep the master export in your own storage as well. The source you upload should be a clean delivery copy, not the only copy of the work.
Why does my exported file have audio drift after upload?
Almost always a variable frame rate source, common with phone and screen recordings. The editor plays it correctly but a transcode to constant frame rate accumulates timing error. Export with constant frame rate, or conform the file with FFmpeg's -fps_mode cfr before uploading. Re-uploading the same file will not help.
Is mov as good as mp4 for upload?
Yes, for practical purposes. MOV and MP4 share the same underlying structure, and a MOV from an Apple tool containing H.264 and AAC is accepted and transcoded identically. The catch is that MOV can also contain ProRes or other codecs that make the file very large. Check the codec, not just the extension.
Sources
- FFmpeg documentation — ffprobe, libx264, faststart and frame-rate options.
- YouTube Help: Recommended upload encoding settings — A published bitrate reference per resolution and frame rate.
- MDN: Web video codec guide — Codec compatibility and characteristics.
- MDN: Media container formats — What mp4, mov, mkv and webm can carry.
Related guides

How to upload 2 GB video files
Large uploads fail for boring reasons: a sleeping laptop, a flaky Wi-Fi hop, a file that was never going to be accepted. Here is how to get a big file up in one go, and what to do when it stops.

MP4 vs MKV vs AVI
Three containers from three different decades. Here is what each one can hold, where it plays, what it cannot do, and why MP4 is the right default for anything you upload or share.

Video bitrate guide
Bitrate is the budget an encoder spends on every second of picture. Here is how to read it, how to set it, and how much to give a file before you upload.

Why your video looks blurry after upload
It looked sharp on your desktop and soft on the page. Usually the player is still climbing, the renditions are still cooking, or the source was never as good as it seemed.