{"course":{"slug":"ai-video","title":"Video with AI","url":"https://addaly.com/learn/ai-video","level":"intermediate","track":"create"},"lesson":{"slug":"export-codecs-and-delivery","title":"The last render, and what the platform does to it","url":"https://addaly.com/learn/ai-video/export-codecs-and-delivery","position":57,"of":66,"minutes":9,"answer":"Every platform re-encodes what you upload, so your export should be a high-bitrate master that gives their encoder good material to work from rather than a small file that has already thrown away the detail.","keyIdea":"Every platform re-encodes what you upload, so your export should be a high-bitrate master that gives their encoder good material to work from rather than a small file that has already thrown away the detail."},"body":{"format":"markdown","text":"## What happens after you upload\n\nYou upload a file. The platform transcodes it into several versions at different bitrates for different connections. Your viewers never see your file; they see the platform's re-encode of it.\n\nThat single fact determines the whole export strategy. You are not producing a file for viewers, you are producing source material for somebody else's encoder. Give it good material.\n\nThe corollary people get wrong: exporting small to \"save upload time\" throws away detail before the platform's encoder has seen it, and the platform then compresses your already-compressed file. Two lossy passes instead of one, and it shows in exactly the places generated footage is already weak: grain, fine texture, gradients in skies.\n\n## The settings that matter\n\n- **Codec.** H.264 is universally compatible and correct for nearly everything. H.265 is more efficient and less universally accepted. Use H.264 unless you have a reason.\n- **Bitrate.** The number that actually decides quality. For 1080p delivery, 15 to 25 Mbps. For 4K, 40 to 60. These are higher than most default presets and they are the single most effective change you can make.\n- **Profile and level.** High profile. Leave the level automatic.\n- **Audio.** AAC at 320kbps stereo. Audio is a small share of the file and there is no reason to economise.\n- **Frame rate.** Whatever the project is. Do not change it at export.\n- **Colour.** Rec.709. Do not export HDR unless somebody specifically asked and can play it back.\n\n```bash\n# a reliable 1080p master\nffmpeg -i timeline.mov -c:v libx264 -preset slow -crf 16 \\\n  -pix_fmt yuv420p -c:a aac -b:a 320k master.mp4\n```\n\n`yuv420p` is not optional for wide compatibility. A file exported in 4:4:4 or 4:2:2 will refuse to play on a surprising number of devices and platforms, and it is a common and confusing delivery failure.\n\n## Grain and bitrate interact\n\nWorth its own note because it bites people who just learned about grain. Grain is high-frequency detail and it is the first thing a codec discards. Heavy grain at a low bitrate produces a smeared, blocky mess where the grain used to be.\n\nSo: keep the grain light, keep the bitrate up, and check your export at full size before delivering. If the grain has turned to mush, either raise the bitrate or reduce the grain.\n\n> Figure: Why a small export costs you twice. Line chart of Fine detail surviving the platform re-encode, per cent against Export bitrate, megabits per second: Export with no grain (4, 62) (8, 78) (12, 88) (16, 94) (20, 97) (25, 99); The same export, grained (4, 28) (8, 47) (12, 66) (16, 82) (20, 92) (25, 97). You are not making a file for viewers, you are making source material for the platform's encoder, and grain is the first thing any codec discards. Export a 1080p master at 15 to 25 megabits, keep the grain light, and check the busiest shot at full size before you deliver.\n\n## Platform specifications\n\nVertical platforms want 1080×1920, 30fps, and they overlay interface on the lower portion. YouTube accepts almost anything and prefers higher bitrates than its own guidance suggests. Broadcast wants exactly what the broadcaster's spec document says and will reject anything else.\n\nTwo habits:\n\n- **Read the current spec before delivering**, because they change and a two-year-old blog post is not a spec.\n- **Export a master first**, at high bitrate in your project's native format, and derive platform versions from it. Never export a platform version as your only copy: it is already compressed for somebody else's pipeline and it cannot be un-compressed.\n\n## Two exports, always\n\nKeep a master and deliver a copy. The master is high bitrate, full resolution, no platform-specific cropping, no burned-in subtitles. It is what you go back to when the client wants a square version or a different edit.\n\nFile it with the project, with the date in the name.\n\n## The delivery checklist\n\nBefore anything leaves your machine:\n\n- Every clip trimmed of its settle and its drift.\n- One grade and one grain pass across the whole timeline, not per clip.\n- Frame rate conformed; upscaled once at the end, if at all.\n- Real sound under every shot, with no moment of true digital silence.\n- Levels checked: dialogue around -12dB to -6dB peak, music well below it.\n- A visible label on generated content, at the start, in frame.\n- Written consent on file for any real face or voice, specific to this use.\n- Licences filed for every piece of music and every font.\n- The prompt, seed, first frame and model version saved beside the project for every shot that shipped.\n- Watched once, end to end, on a phone.\n\n---\n\nToday: export your current project at your editor's default preset and again at 20 Mbps, and compare the two at full size on the busiest shot."},"check":{"question":"Why is exporting a small, heavily compressed file for upload a mistake even though the platform will compress it anyway?","options":[{"text":"Platforms allocate a bitrate proportional to the uploaded file's bitrate, so a small upload receives a lower-quality transcode.","correct":false,"tempting":"Invents a proportional allocation; platforms encode to their own targets regardless of what arrives."},{"text":"Compressed uploads are transcoded more aggressively because the platform cannot detect the original quality and defaults to its lowest tier.","correct":false,"tempting":"Attributes a detection-and-penalty behaviour to platforms that they do not have."},{"text":"A small file lacks the high-frequency information the encoder uses to decide where to allocate bits, so its rate-control decisions are made on degraded input and distribute quality poorly across the frame.","correct":false,"tempting":"Describes rate control in plausible detail and overcomplicates the point, which is simply that lossy compression applied twice loses more than once."},{"text":"The platform's encoder then compresses already-compressed material, so detail is discarded twice and artefacts compound rather than being applied once.","correct":true}]},"prev":{"slug":"retiming-and-speed-ramps","title":"Slow motion is where fake physics goes to be caught","url":"https://addaly.com/learn/ai-video/retiming-and-speed-ramps"},"next":{"slug":"editing-without-a-good-machine","title":"The whole pipeline on a phone or an old laptop","url":"https://addaly.com/learn/ai-video/editing-without-a-good-machine"},"authorship":"Founder and series editor: Dr Mustafa Mun. Written by AI models to a written standard. Exam keys checked blind by a second model: 3,665 of 3,666 agreed. Academic review invited.","review":{"status":"Draft, open for academic review"},"cite":"Addaly (2026) 'The last render, and what the platform does to it', in Video with AI. Edited by M. Mun. Addaly. Available at: https://addaly.com/learn/ai-video/export-codecs-and-delivery (Accessed: 13 October 2026).","licence":{"name":"CC BY-NC-SA 4.0","url":"https://creativecommons.org/licenses/by-nc-sa/4.0/"},"reader":{"schema":1,"title":"The last render, and what the platform does to it","courseTitle":"Video with AI","module":{"index":6,"slug":"the-edit","title":"From generations to a finished piece"},"answer":null,"keyIdea":"Every platform re-encodes what you upload, so your export should be a high-bitrate master that gives their encoder good material to work from rather than a small file that has already thrown away the detail.","hero":{"kind":"figure","figure":{"t":"figure","label":"Figure","figure":{"type":"line","title":"Why a small export costs you twice","series":[{"label":"Export with no grain","points":[[4,62],[8,78],[12,88],[16,94],[20,97],[25,99]]},{"label":"The same export, grained","points":[[4,28],[8,47],[12,66],[16,82],[20,92],[25,97]]}],"xLabel":"Export bitrate, megabits per second","yLabel":"Fine detail surviving the platform re-encode, per cent","caption":"You are not making a file for viewers, you are making source material for the platform’s encoder, and grain is the first thing any codec discards. Export a 1080p master at 15 to 25 megabits, keep the grain light, and check the busiest shot at full size before you deliver."},"alt":"Figure: Why a small export costs you twice. Line chart of Fine detail surviving the platform re-encode, per cent against Export bitrate, megabits per second: Export with no grain (4, 62) (8, 78) (12, 88) (16, 94) (20, 97) (25, 99); The same export, grained (4, 28) (8, 47) (12, 66) (16, 82) (20, 92) (25, 97). You are not making a file for viewers, you are making source material for the platform’s encoder, and grain is the first thing any codec discards. Export a 1080p master at 15 to 25 megabits, keep the grain light, and check the busiest shot at full size before you deliver."}},"blocks":[{"t":"h2","id":"what-happens-after-you-upload","runs":[{"text":"What happens after you upload"}]},{"t":"p","runs":[{"text":"You upload a file. The platform transcodes it into several versions at different bitrates for different connections. Your viewers never see your file; they see the platform’s re-encode of it."}]},{"t":"p","runs":[{"text":"That single fact determines the whole export strategy. You are not producing a file for viewers, you are producing source material for somebody else’s encoder. Give it good material."}]},{"t":"p","runs":[{"text":"The corollary people get wrong: exporting small to “save upload time” throws away detail before the platform’s encoder has seen it, and the platform then compresses your already-compressed file. Two lossy passes instead of one, and it shows in exactly the places generated footage is already weak: grain, fine texture, gradients in skies."}]},{"t":"h2","id":"the-settings-that-matter","runs":[{"text":"The settings that matter"}]},{"t":"ul","items":[[{"text":"Codec.","b":true},{"text":" H.264 is universally compatible and correct for nearly everything. H.265 is more efficient and less universally accepted. Use H.264 unless you have a reason."}],[{"text":"Bitrate.","b":true},{"text":" The number that actually decides quality. For 1080p delivery, 15 to 25 Mbps. For 4K, 40 to 60. These are higher than most default presets and they are the single most effective change you can make."}],[{"text":"Profile and level.","b":true},{"text":" High profile. Leave the level automatic."}],[{"text":"Audio.","b":true},{"text":" AAC at 320kbps stereo. Audio is a small share of the file and there is no reason to economise."}],[{"text":"Frame rate.","b":true},{"text":" Whatever the project is. Do not change it at export."}],[{"text":"Colour.","b":true},{"text":" Rec.709. Do not export HDR unless somebody specifically asked and can play it back."}]]},{"t":"code","lang":"bash","label":"Bash","text":"# a reliable 1080p master\nffmpeg -i timeline.mov -c:v libx264 -preset slow -crf 16 \\\n  -pix_fmt yuv420p -c:a aac -b:a 320k master.mp4"},{"t":"p","runs":[{"text":"yuv420p","code":true},{"text":" is not optional for wide compatibility. A file exported in 4:4:4 or 4:2:2 will refuse to play on a surprising number of devices and platforms, and it is a common and confusing delivery failure."}]},{"t":"h2","id":"grain-and-bitrate-interact","runs":[{"text":"Grain and bitrate interact"}]},{"t":"p","runs":[{"text":"Worth its own note because it bites people who just learned about grain. Grain is high-frequency detail and it is the first thing a codec discards. Heavy grain at a low bitrate produces a smeared, blocky mess where the grain used to be."}]},{"t":"p","runs":[{"text":"So: keep the grain light, keep the bitrate up, and check your export at full size before delivering. If the grain has turned to mush, either raise the bitrate or reduce the grain."}]},{"t":"h2","id":"platform-specifications","runs":[{"text":"Platform specifications"}]},{"t":"p","runs":[{"text":"Vertical platforms want 1080×1920, 30fps, and they overlay interface on the lower portion. YouTube accepts almost anything and prefers higher bitrates than its own guidance suggests. Broadcast wants exactly what the broadcaster’s spec document says and will reject anything else."}]},{"t":"p","runs":[{"text":"Two habits:"}]},{"t":"ul","items":[[{"text":"Read the current spec before delivering","b":true},{"text":", because they change and a two-year-old blog post is not a spec."}],[{"text":"Export a master first","b":true},{"text":", at high bitrate in your project’s native format, and derive platform versions from it. Never export a platform version as your only copy: it is already compressed for somebody else’s pipeline and it cannot be un-compressed."}]]},{"t":"h2","id":"two-exports-always","runs":[{"text":"Two exports, always"}]},{"t":"p","runs":[{"text":"Keep a master and deliver a copy. The master is high bitrate, full resolution, no platform-specific cropping, no burned-in subtitles. It is what you go back to when the client wants a square version or a different edit."}]},{"t":"p","runs":[{"text":"File it with the project, with the date in the name."}]},{"t":"h2","id":"the-delivery-checklist","runs":[{"text":"The delivery checklist"}]},{"t":"p","runs":[{"text":"Before anything leaves your machine:"}]},{"t":"ul","items":[[{"text":"Every clip trimmed of its settle and its drift."}],[{"text":"One grade and one grain pass across the whole timeline, not per clip."}],[{"text":"Frame rate conformed; upscaled once at the end, if at all."}],[{"text":"Real sound under every shot, with no moment of true digital silence."}],[{"text":"Levels checked: dialogue around -12dB to -6dB peak, music well below it."}],[{"text":"A visible label on generated content, at the start, in frame."}],[{"text":"Written consent on file for any real face or voice, specific to this use."}],[{"text":"Licences filed for every piece of music and every font."}],[{"text":"The prompt, seed, first frame and model version saved beside the project for every shot that shipped."}],[{"text":"Watched once, end to end, on a phone."}]]},{"t":"rule"},{"t":"p","runs":[{"text":"Today: export your current project at your editor’s default preset and again at 20 Mbps, and compare the two at full size on the busiest shot."}]}],"check":{"question":[{"text":"Why is exporting a small, heavily compressed file for upload a mistake even though the platform will compress it anyway?"}],"options":[{"text":[{"text":"Platforms allocate a bitrate proportional to the uploaded file’s bitrate, so a small upload receives a lower-quality transcode."}],"correct":false,"tempting":[{"text":"Invents a proportional allocation; platforms encode to their own targets regardless of what arrives."}]},{"text":[{"text":"Compressed uploads are transcoded more aggressively because the platform cannot detect the original quality and defaults to its lowest tier."}],"correct":false,"tempting":[{"text":"Attributes a detection-and-penalty behaviour to platforms that they do not have."}]},{"text":[{"text":"A small file lacks the high-frequency information the encoder uses to decide where to allocate bits, so its rate-control decisions are made on degraded input and distribute quality poorly across the frame."}],"correct":false,"tempting":[{"text":"Describes rate control in plausible detail and overcomplicates the point, which is simply that lossy compression applied twice loses more than once."}]},{"text":[{"text":"The platform’s encoder then compresses already-compressed material, so detail is discarded twice and artefacts compound rather than being applied once."}],"correct":true,"tempting":null}],"order":[0,1,2,3],"why":null},"prev":{"slug":"retiming-and-speed-ramps","title":"Slow motion is where fake physics goes to be caught","minutes":8},"next":{"slug":"editing-without-a-good-machine","title":"The whole pipeline on a phone or an old laptop","minutes":9}}}