Video Delivery Specs
Deliver motion content correctly across platforms: produce per-platform spec sheets, repurpose one master into every aspect ratio safely, handle captions and accessibility, and run a pre-delivery QC and collect-files pass before handover.
When to use
Use when exporting or delivering finished motion, when targeting multiple platforms from one master, when checking safe areas for UI-overlay platforms, when deciding caption strategy, or when packaging a project for handover/archive.
Decision tree — master strategy and spec path
Two judgments: what to build as the master so it survives every crop, and which delivery path each platform needs. Decide the master before animating — re-cropping after the fact is where deliveries break.
How many ratios does the brief's distribution need?
├─ One ratio only → animate native to that ratio; no spine needed.
└─ Multiple ratios → build a 16:9 master with a centre 1:1 "title-safe
spine"; expect to RE-LAYOUT (not just crop) for 9:16.
Per target, which path?
├─ Social (Reels/TikTok/Shorts/Story) → 9:16 1080×1920, H.264 8-12 Mbps,
│ burn in captions, keep action out of top/bottom/right UI zones.
├─ Feed → 4:5 (1080×1350) for most screen real estate.
├─ YouTube long-form → 16:9, upload high-bitrate / ProRes, .srt sidecar.
├─ Broadcast → follow the broadcaster's spec PDF EXACTLY: ProRes 422 HQ,
│ region frame rate, R128/A85 loudness, title-safe 90%, textless + slate.
├─ OOH/signage → pixel-exact to the screen, silent, oversize type.
└─ Web hero → MP4+WebM, muted autoplay loop, compress hard, poster frame.
Rule of thumb: if a platform overlays UI (all vertical social), the safe-area map governs layout before the spec governs export. Get the layout wrong and no bitrate fixes it.
Workflow
- List target platforms from the brief's distribution line (Reels, Feed, Story, TikTok, YouTube, Shorts, broadcast, OOH, web).
- Pull each platform's spec (table below; full detail in references/platform-specs.md).
- Plan the master + cutdowns using the repurposing matrix so the 16:9 master survives the crop to 9:16 and 1:1.
- Decide captions/accessibility — burned-in vs uploaded, styling, safe placement.
- Run QC against the checklist, then collect files for handover/archive.
Per-platform spec sheet (essentials)
| Platform |
Ratio |
Pixels |
Duration |
Container/codec |
Notes |
| IG Reels |
9:16 |
1080×1920 |
≤90s (up to 3min) |
MP4/MOV, H.264 |
UI overlays bottom + right; keep action centre |
| IG Feed |
4:5 or 1:1 |
1080×1350 / 1080×1080 |
≤60s |
MP4, H.264 |
4:5 gives most feed real estate |
| IG Story |
9:16 |
1080×1920 |
≤60s/card |
MP4, H.264 |
Top + bottom ~250px reserved for UI |
| TikTok |
9:16 |
1080×1920 |
15s-10min |
MP4/MOV, H.264 |
Heavy right-side + bottom UI; caption-safe centre |
| YouTube (horiz) |
16:9 |
1920×1080 (4K 3840×2160) |
flexible |
MP4, H.264/H.265 |
High bitrate; full frame usable |
| YouTube Shorts |
9:16 |
1080×1920 |
≤60s |
MP4, H.264 |
Bottom UI for title/controls |
| Broadcast (HD) |
16:9 |
1920×1080 |
exact to spec |
ProRes 422 (HQ) / per broadcaster |
Title-safe 90%, action-safe 93%; legal/loudness |
| OOH / digital screen |
varies (often 9:16 or custom) |
per-site |
loop, often 10-15s |
MP4/ProRes per vendor |
No sound; high legibility; supplied pixel-exact |
| Web (hero/embed) |
16:9 or custom |
responsive |
short loop |
MP4 (H.264) + WebM; poster frame |
Compress hard; muted autoplay; provide fallback |
Bitrate guidance (H.264): 1080p social 8-12 Mbps; 1080p high-quality 16-20 Mbps; 4K 35-45 Mbps. Audio AAC 320 kbps stereo, 48 kHz. For broadcast/archive use ProRes 422 HQ, not H.264. Full codec/bitrate detail in references/platform-specs.md.
Safe areas and UI danger zones
Social platforms overlay UI on top of the video. Keep titles and key action out of these zones:
- 9:16 (Reels/TikTok/Shorts/Story): reserve top ~250px (handle/close) and bottom ~250-400px (caption, CTA, controls). On TikTok also reserve the right ~120px column (icons). Keep essential text within the centre ~1080×1080 region.
- 16:9 broadcast: title-safe = inner 90%, action-safe = inner 93%. Nothing critical outside title-safe.
- OOH: follow the vendor's exact pixel map and bleed; assume viewing distance — oversize type.
A visual map of each zone is in references/safe-areas.md.
Cutdown / repurposing matrix (one master → all ratios)
Design the 16:9 master so the centre survives cropping. Plan it before animating, not after.
| From → To |
Method |
Watch for |
| 16:9 → 1:1 |
Crop sides to centre 1080 |
Text near left/right edges gets cut |
| 16:9 → 9:16 |
Crop hard to centre + re-stack elements vertically |
Wide compositions break; reflow text/logos |
| 16:9 → 4:5 |
Light side-crop |
Usually safe if action is centred |
| Master → 6s/15s cutdown |
Pick the hook + payoff; drop middle |
Re-time, don't just trim; keep brand + CTA |
Best practice: build a "title-safe 1:1 spine" down the centre of the 16:9 master so every crop keeps the message. For 9:16, expect to re-layout rather than crop — budget time for it. Full matrix and a reflow recipe in references/repurposing-matrix.md.
Captions and accessibility
- Open (burned-in) captions: baked into the video. Default for social — most users watch muted, and platform auto-captions are unreliable. Always burn captions for Reels/TikTok/Shorts.
- Closed captions (.srt/.vtt sidecar): uploaded separately; user-toggleable. Required for YouTube long-form and broadcast accessibility compliance; good practice everywhere.
- Styling for burned-in: high contrast (white text, subtle shadow or box), legible weight, 1-2 lines max, placed inside the caption-safe zone (above the bottom UI band, not under it). Sync to speech; ~1-2s per line minimum.
- Beyond captions: avoid conveying meaning by colour alone; keep flashing under 3 flashes/sec (photosensitivity); provide a descriptive title/transcript for screen readers where the platform allows.
Pre-delivery QC checklist (top items)
- Correct dimensions, ratio, and duration for each target.
- First and last frames clean (no black flash, no held render frame).
- Audio present, levels sane, no clipping; broadcast: correct loudness target.
- All text spell-checked; legal/super present and held long enough.
- Logo lockup correct; brand colours match; no placeholder assets.
- Safe areas respected; nothing critical under platform UI.
- Captions accurate and inside the caption-safe zone.
- Export matches codec/bitrate spec; file plays on a fresh machine.
- File names follow convention; versions not mixed up.
Full QC + collect-files checklist in references/qc-checklist.md.
Worked examples
GOOD — one master planned for every crop:
Brief needs 16:9 (web), 1:1 (feed), and 9:16 (Reels + TikTok). You animate a 16:9 master keeping all titles and the logo inside a centre 1:1 spine, then crop to 1:1 cleanly and re-layout (not crop) to 9:16 — restacking the headline above the product, captions burned in above the bottom UI band, action clear of TikTok's right column. Each export matches its platform's bitrate; captions sit inside the caption-safe zone.
ANTI-PATTERN — "we'll just crop it later":
A wide 16:9 hero with the logo bottom-left and a tagline spanning the full width gets center-cropped to 9:16 for Reels. The logo is gone, half the tagline is cut, and the burned-in captions land under the platform's CTA bar where no one can read them.
Why it fails: the master wasn't designed for the crop, and the safe-area map was ignored. The fix is the master strategy above — centre spine, re-layout for vertical, captions above the UI band — decided before animation, not after delivery is due.
Common mistakes
| Symptom |
Why it happens |
Fix |
| Text/logo cut off after crop |
Composed wide, no centre spine |
Build a centre 1:1 title-safe spine; re-layout for 9:16 |
| Captions hidden under platform UI |
Placed at frame bottom, not caption-safe zone |
Keep captions above the bottom UI band, inside caption-safe |
| Broadcast delivery rejected |
Used H.264 / wrong loudness / no textless |
Follow the broadcaster spec PDF: ProRes, R128/A85, slate, textless |
| Video looks soft after upload |
Exported at low bitrate; platform re-compresses |
Upload high-bitrate / ProRes; let the platform downscale |
| Black flash at start/end |
Held render frame or stray black frame |
QC first/last frames; trim to intended frames |
| Colour shifts outside the editor |
Gamma/colour-management mismatch |
Spot-check the export in a neutral player before handover |
| Wrong file delivered |
Versions mixed in the folder |
Enforce the naming convention; flag CAPTIONED/TEXTLESS/BROADCAST |
| Autoplay web hero won't play |
Has audio / too large / no fallback |
Muted MP4+WebM, compress hard, poster frame |
Deliverable spec — what a good handover contains
The output is a packaged, dated delivery folder plus the QC pass behind it (full structure in references/qc-checklist.md). A good handover:
- Has every deliverable at the correct ratio, pixels, duration, codec, and bitrate for its target.
- Separates final exports, captioned versions (+ .srt/.vtt), textless masters, and stills.
- Includes a README listing deliverables, specs, and every font/music/stock licence with its usage scope.
- Uses the file-naming convention consistently, with the final version clearly flagged.
- Has passed the full pre-delivery QC checklist before it leaves.
Before you finish — checklist
Quick reference
| Need |
Answer |
| Reels/TikTok/Shorts ratio |
9:16, 1080×1920 |
| Feed best ratio |
4:5 (1080×1350) |
| Social bitrate (1080p) |
8-12 Mbps H.264 |
| Broadcast codec |
ProRes 422 HQ, not H.264 |
| Captions for social |
Burn them in (open) |
| TikTok danger zones |
Bottom + right column |
| Broadcast title-safe |
Inner 90% |
| One master strategy |
Centre 1:1 spine in the 16:9 |
Reference files
references/platform-specs.md — full per-platform spec sheet: exact pixels, durations, codecs, bitrates, audio, and file-size limits.
references/safe-areas.md — ASCII safe-area maps per ratio with pixel measurements for UI danger zones.
references/repurposing-matrix.md — full cutdown matrix and a step-by-step 16:9→9:16 reflow recipe.
references/qc-checklist.md — complete pre-delivery QC checklist plus the Collect-Files / handover packaging list and naming convention.
1---2name: video-delivery-specs3description: This skill should be used when the user asks "what are the specs for Instagram Reels / TikTok / YouTube / broadcast", "export settings for social", "what aspect ratio and bitrate", "how do I repurpose 16:9 to 9:16", "safe area / title-safe for vertical", "pre-delivery checklist", or "collect files for handover". It outputs per-platform spec sheets, a cutdown matrix, captioning/accessibility notes, and a QC + collect-files checklist.4---56# Video Delivery Specs78Deliver motion content correctly across platforms: produce per-platform spec sheets, repurpose one master into every aspect ratio safely, handle captions and accessibility, and run a pre-delivery QC and collect-files pass before handover.910## When to use1112Use when exporting or delivering finished motion, when targeting multiple platforms from one master, when checking safe areas for UI-overlay platforms, when deciding caption strategy, or when packaging a project for handover/archive.1314## Decision tree — master strategy and spec path1516Two judgments: *what to build as the master so it survives every crop*, and *which delivery path each platform needs*. Decide the master before animating — re-cropping after the fact is where deliveries break.1718```19How many ratios does the brief's distribution need?20├─ One ratio only → animate native to that ratio; no spine needed.21└─ Multiple ratios → build a 16:9 master with a centre 1:1 "title-safe22 spine"; expect to RE-LAYOUT (not just crop) for 9:16.2324Per target, which path?25├─ Social (Reels/TikTok/Shorts/Story) → 9:16 1080×1920, H.264 8-12 Mbps,26│ burn in captions, keep action out of top/bottom/right UI zones.27├─ Feed → 4:5 (1080×1350) for most screen real estate.28├─ YouTube long-form → 16:9, upload high-bitrate / ProRes, .srt sidecar.29├─ Broadcast → follow the broadcaster's spec PDF EXACTLY: ProRes 422 HQ,30│ region frame rate, R128/A85 loudness, title-safe 90%, textless + slate.31├─ OOH/signage → pixel-exact to the screen, silent, oversize type.32└─ Web hero → MP4+WebM, muted autoplay loop, compress hard, poster frame.33```3435Rule of thumb: if a platform overlays UI (all vertical social), the safe-area map governs layout *before* the spec governs export. Get the layout wrong and no bitrate fixes it.3637## Workflow38391. **List target platforms** from the brief's distribution line (Reels, Feed, Story, TikTok, YouTube, Shorts, broadcast, OOH, web).402. **Pull each platform's spec** (table below; full detail in references/platform-specs.md).413. **Plan the master + cutdowns** using the repurposing matrix so the 16:9 master survives the crop to 9:16 and 1:1.424. **Decide captions/accessibility** — burned-in vs uploaded, styling, safe placement.435. **Run QC** against the checklist, then **collect files** for handover/archive.4445## Per-platform spec sheet (essentials)4647| Platform | Ratio | Pixels | Duration | Container/codec | Notes |48|---|---|---|---|---|---|49| IG Reels | 9:16 | 1080×1920 | ≤90s (up to 3min) | MP4/MOV, H.264 | UI overlays bottom + right; keep action centre |50| IG Feed | 4:5 or 1:1 | 1080×1350 / 1080×1080 | ≤60s | MP4, H.264 | 4:5 gives most feed real estate |51| IG Story | 9:16 | 1080×1920 | ≤60s/card | MP4, H.264 | Top + bottom ~250px reserved for UI |52| TikTok | 9:16 | 1080×1920 | 15s-10min | MP4/MOV, H.264 | Heavy right-side + bottom UI; caption-safe centre |53| YouTube (horiz) | 16:9 | 1920×1080 (4K 3840×2160) | flexible | MP4, H.264/H.265 | High bitrate; full frame usable |54| YouTube Shorts | 9:16 | 1080×1920 | ≤60s | MP4, H.264 | Bottom UI for title/controls |55| Broadcast (HD) | 16:9 | 1920×1080 | exact to spec | ProRes 422 (HQ) / per broadcaster | Title-safe 90%, action-safe 93%; legal/loudness |56| OOH / digital screen | varies (often 9:16 or custom) | per-site | loop, often 10-15s | MP4/ProRes per vendor | No sound; high legibility; supplied pixel-exact |57| Web (hero/embed) | 16:9 or custom | responsive | short loop | MP4 (H.264) + WebM; poster frame | Compress hard; muted autoplay; provide fallback |5859Bitrate guidance (H.264): 1080p social 8-12 Mbps; 1080p high-quality 16-20 Mbps; 4K 35-45 Mbps. Audio AAC 320 kbps stereo, 48 kHz. For broadcast/archive use ProRes 422 HQ, not H.264. Full codec/bitrate detail in references/platform-specs.md.6061## Safe areas and UI danger zones6263Social platforms overlay UI on top of the video. Keep titles and key action out of these zones:6465- **9:16 (Reels/TikTok/Shorts/Story)**: reserve top ~250px (handle/close) and bottom ~250-400px (caption, CTA, controls). On TikTok also reserve the right ~120px column (icons). Keep essential text within the centre ~1080×1080 region.66- **16:9 broadcast**: title-safe = inner 90%, action-safe = inner 93%. Nothing critical outside title-safe.67- **OOH**: follow the vendor's exact pixel map and bleed; assume viewing distance — oversize type.6869A visual map of each zone is in references/safe-areas.md.7071## Cutdown / repurposing matrix (one master → all ratios)7273Design the 16:9 master so the centre survives cropping. Plan it before animating, not after.7475| From → To | Method | Watch for |76|---|---|---|77| 16:9 → 1:1 | Crop sides to centre 1080 | Text near left/right edges gets cut |78| 16:9 → 9:16 | Crop hard to centre + re-stack elements vertically | Wide compositions break; reflow text/logos |79| 16:9 → 4:5 | Light side-crop | Usually safe if action is centred |80| Master → 6s/15s cutdown | Pick the hook + payoff; drop middle | Re-time, don't just trim; keep brand + CTA |8182Best practice: build a **"title-safe 1:1 spine"** down the centre of the 16:9 master so every crop keeps the message. For 9:16, expect to re-layout rather than crop — budget time for it. Full matrix and a reflow recipe in references/repurposing-matrix.md.8384## Captions and accessibility8586- **Open (burned-in) captions**: baked into the video. Default for social — most users watch muted, and platform auto-captions are unreliable. Always burn captions for Reels/TikTok/Shorts.87- **Closed captions (.srt/.vtt sidecar)**: uploaded separately; user-toggleable. Required for YouTube long-form and broadcast accessibility compliance; good practice everywhere.88- **Styling for burned-in**: high contrast (white text, subtle shadow or box), legible weight, 1-2 lines max, placed inside the caption-safe zone (above the bottom UI band, not under it). Sync to speech; ~1-2s per line minimum.89- **Beyond captions**: avoid conveying meaning by colour alone; keep flashing under 3 flashes/sec (photosensitivity); provide a descriptive title/transcript for screen readers where the platform allows.9091## Pre-delivery QC checklist (top items)9293- Correct dimensions, ratio, and duration for each target.94- First and last frames clean (no black flash, no held render frame).95- Audio present, levels sane, no clipping; broadcast: correct loudness target.96- All text spell-checked; legal/super present and held long enough.97- Logo lockup correct; brand colours match; no placeholder assets.98- Safe areas respected; nothing critical under platform UI.99- Captions accurate and inside the caption-safe zone.100- Export matches codec/bitrate spec; file plays on a fresh machine.101- File names follow convention; versions not mixed up.102103Full QC + collect-files checklist in references/qc-checklist.md.104105## Worked examples106107**GOOD — one master planned for every crop:**108> Brief needs 16:9 (web), 1:1 (feed), and 9:16 (Reels + TikTok). You animate a 16:9 master keeping all titles and the logo inside a centre 1:1 spine, then crop to 1:1 cleanly and *re-layout* (not crop) to 9:16 — restacking the headline above the product, captions burned in above the bottom UI band, action clear of TikTok's right column. Each export matches its platform's bitrate; captions sit inside the caption-safe zone.109110**ANTI-PATTERN — "we'll just crop it later":**111> A wide 16:9 hero with the logo bottom-left and a tagline spanning the full width gets center-cropped to 9:16 for Reels. The logo is gone, half the tagline is cut, and the burned-in captions land under the platform's CTA bar where no one can read them.112113Why it fails: the master wasn't designed for the crop, and the safe-area map was ignored. The fix is the master strategy above — centre spine, re-layout for vertical, captions above the UI band — decided *before* animation, not after delivery is due.114115## Common mistakes116117| Symptom | Why it happens | Fix |118|---|---|---|119| Text/logo cut off after crop | Composed wide, no centre spine | Build a centre 1:1 title-safe spine; re-layout for 9:16 |120| Captions hidden under platform UI | Placed at frame bottom, not caption-safe zone | Keep captions above the bottom UI band, inside caption-safe |121| Broadcast delivery rejected | Used H.264 / wrong loudness / no textless | Follow the broadcaster spec PDF: ProRes, R128/A85, slate, textless |122| Video looks soft after upload | Exported at low bitrate; platform re-compresses | Upload high-bitrate / ProRes; let the platform downscale |123| Black flash at start/end | Held render frame or stray black frame | QC first/last frames; trim to intended frames |124| Colour shifts outside the editor | Gamma/colour-management mismatch | Spot-check the export in a neutral player before handover |125| Wrong file delivered | Versions mixed in the folder | Enforce the naming convention; flag CAPTIONED/TEXTLESS/BROADCAST |126| Autoplay web hero won't play | Has audio / too large / no fallback | Muted MP4+WebM, compress hard, poster frame |127128## Deliverable spec — what a good handover contains129130The output is a packaged, dated delivery folder plus the QC pass behind it (full structure in references/qc-checklist.md). A good handover:131- Has every deliverable at the correct ratio, pixels, duration, codec, and bitrate for its target.132- Separates final exports, captioned versions (+ .srt/.vtt), textless masters, and stills.133- Includes a README listing deliverables, specs, and every font/music/stock licence with its usage scope.134- Uses the file-naming convention consistently, with the final version clearly flagged.135- Has passed the full pre-delivery QC checklist before it leaves.136137### Before you finish — checklist138- [ ] Each target's dimensions, ratio, duration, codec, and bitrate verified.139- [ ] First/last frames clean; no dropped frames or artifacts.140- [ ] Audio correct (or correctly absent); broadcast loudness met.141- [ ] Text spell-checked; legal/super held long enough; logo lockup correct.142- [ ] Safe areas respected; nothing critical under platform UI.143- [ ] Captions accurate, synced, inside the caption-safe zone.144- [ ] Plays on a fresh machine; colour correct outside the editor.145- [ ] File names follow the convention; final version flagged; old versions removed.146- [ ] Handover folder structured; README + licence/rights notes included.147148## Quick reference149150| Need | Answer |151|---|---|152| Reels/TikTok/Shorts ratio | 9:16, 1080×1920 |153| Feed best ratio | 4:5 (1080×1350) |154| Social bitrate (1080p) | 8-12 Mbps H.264 |155| Broadcast codec | ProRes 422 HQ, not H.264 |156| Captions for social | Burn them in (open) |157| TikTok danger zones | Bottom + right column |158| Broadcast title-safe | Inner 90% |159| One master strategy | Centre 1:1 spine in the 16:9 |160161## Reference files162163- `references/platform-specs.md` — full per-platform spec sheet: exact pixels, durations, codecs, bitrates, audio, and file-size limits.164- `references/safe-areas.md` — ASCII safe-area maps per ratio with pixel measurements for UI danger zones.165- `references/repurposing-matrix.md` — full cutdown matrix and a step-by-step 16:9→9:16 reflow recipe.166- `references/qc-checklist.md` — complete pre-delivery QC checklist plus the Collect-Files / handover packaging list and naming convention.