DOMAIN:CREATIVE:VIDEO_PRODUCTION_FOR_BRANDS¶
OWNER: ilian (Motion Designer) UPDATED: 2026-03-28 SCOPE: Brand film production, social video, motion graphics for explainers, title sequences, export/delivery ALSO_USED_BY: alexander (Creative Director — brand film approval), felice (Visual Asset Producer — rendering pipeline, Remotion), tjarda (Marketing — social video strategy), margot (Content Strategist — video content planning), benjamin (Copywriter — script/voiceover copy) ALSO_CHECK: domains/visual-production/video-production.md (Felice's pipeline: generative video, avatar, Remotion), domains/visual-production/delivery-specs.md (export specs per platform), domains/creative/motion-accessibility.md (captions, autoplay, reduced motion) BOUNDARY: This page covers the CRAFT of video production (storytelling, structure, motion graphics). Felice's page covers the PIPELINE (tools, rendering, automation). Ilian designs the motion, Felice produces the assets.
BRAND_FILM_STRUCTURE¶
STORY_ARC¶
STRUCTURE: Every brand video follows a narrative arc, regardless of length.
HOOK (0-3s) → Grab attention. Visual or statement that stops the scroll.
TENSION (3-15s) → Present the problem, need, or aspiration. Build emotional investment.
JOURNEY (15-45s)→ Show the solution, transformation, or story. This is the substance.
CLIMAX (45-55s) → Key message lands. The "aha" or emotional peak.
CTA (55-60s) → Clear call to action. One action, not three.
RULE: The hook MUST work without sound. 85% of social video is watched muted. RULE: The CTA must be a single, clear action. "Visit our website" not "Follow us and subscribe and visit our website and download our app."
EMOTIONAL_BEATS¶
DEFINITION: Moments in the video designed to trigger a specific emotional response.
| Beat Type | Trigger | Use |
|---|---|---|
| Surprise | Unexpected visual or stat | Hook, pattern interrupt |
| Empathy | Show relatable problem | Tension phase |
| Aspiration | Show the desired outcome | Journey phase |
| Trust | Proof point, testimonial, data | Climax phase |
| Urgency | Scarcity, timing, consequence | CTA phase |
RULE: A 60-second video should have 3-4 emotional beats. More feels manipulative, fewer feels flat. RULE: The strongest emotional beat should land at the climax, not the hook.
SCRIPT_FORMULA¶
FOR_EXPLAINER:
"You know that feeling when [PROBLEM]?" → Empathy
"What if [SOLUTION] could [BENEFIT]?" → Aspiration
"Here's how it works: [3 STEPS]" → Trust / Clarity
"[SOCIAL PROOF or DATA POINT]" → Trust
"[CTA] — [REASON TO ACT NOW]" → Urgency
FOR_BRAND_FILM:
[VISUAL HOOK — no narration, pure imagery] → Surprise
"At [BRAND], we believe [MANIFESTO STATEMENT]" → Identity
[SHOW, DON'T TELL — footage of the belief in action] → Proof
"This is why we [CORE DIFFERENTIATOR]" → Clarity
[LOGO + TAGLINE] → Memory
SOCIAL_VIDEO_FORMATS¶
PLATFORM_SPECIFICATIONS¶
| Platform | Aspect Ratio | Max Duration | Optimal Duration | Resolution | Safe Zone |
|---|---|---|---|---|---|
| Instagram Reels | 9:16 | 90s | 15-30s | 1080x1920 | 150px top/bottom for UI |
| Instagram Feed | 1:1 or 4:5 | 60s | 15-30s | 1080x1080 or 1080x1350 | Full frame |
| Instagram Stories | 9:16 | 15s per story | 5-15s | 1080x1920 | 250px top, 200px bottom |
| TikTok | 9:16 | 10min | 15-60s | 1080x1920 | 150px top/bottom |
| YouTube | 16:9 | 12hr | 2-10min (depends on content type) | 1920x1080 (min), 3840x2160 (preferred) | Full frame |
| YouTube Shorts | 9:16 | 60s | 15-30s | 1080x1920 | 200px bottom |
| 16:9 or 1:1 | 10min | 30-90s | 1920x1080 or 1080x1080 | Full frame | |
| X/Twitter | 16:9 or 1:1 | 2min 20s | 15-45s | 1920x1080 or 1080x1080 | Full frame |
| 16:9, 1:1, or 4:5 | 240min | 15-60s (feed) | 1080x1080 (feed), 1080x1920 (stories) | Full frame |
SAFE_ZONE_RULES¶
RULE: On 9:16 platforms, keep essential content (text, logos, faces) in the center 1080x1420 area. RULE: Instagram overlays username + caption in the bottom 200px. Never put CTA text there. RULE: TikTok overlays sound name + description on the bottom-left. Keep that area clear. RULE: YouTube Shorts shows subscribe button bottom-right. Avoid placing elements there.
DURATION_BEST_PRACTICES¶
| Content Type | Optimal Length | Why |
|---|---|---|
| Brand awareness | 15-30s | Attention spans are short, get in and get out |
| Product demo | 30-60s | Enough to show value, not enough to bore |
| Explainer | 60-90s | Complex topics need room but must stay tight |
| Tutorial | 2-5min | Task-oriented viewers will watch if content is dense |
| Testimonial | 30-60s | Authenticity fades with length |
| Behind-the-scenes | 15-60s | Casual, less structured, feels overproduced if too long |
RULE: Shorter is almost always better. Cut 20% from your first edit. Then cut 10% more. RULE: If a video can be split into a series, split it. Three 30-second videos outperform one 90-second video on social.
MOTION_GRAPHICS_FOR_EXPLAINERS¶
VISUAL_LANGUAGE¶
ICON_ANIMATION: Animate icons to illustrate abstract concepts. Use line-draw-on for processes, scale-in for features. TEXT_ANIMATION: Key stats and headlines animate in with purpose. Word-by-word for emphasis, line-by-line for lists. DIAGRAM_ANIMATION: Build diagrams step by step. Never show a complex diagram all at once. TRANSITION_GRAPHICS: Use branded shape transitions (circle wipe, diagonal slice, morph) between scenes.
MOTION_GRAPHICS_TOOLKIT¶
| Element | Animation | Duration | Easing |
|---|---|---|---|
| Headline text | Fade up + slight slide Y | 300-400ms | ease-out |
| Body text | Fade in | 200-300ms | ease-out |
| Icon | Scale from 0 → 1 or line draw | 400-600ms | ease-out or spring |
| Data/number | Count up from 0 | 800-1200ms | ease-in-out |
| Diagram step | Slide in from direction of flow | 300-400ms per step | ease-out |
| Scene transition | Brand wipe or morph | 400-600ms | emphasized ease-in-out |
| Logo reveal | Scale + fade or custom brand animation | 500-800ms | ease-out |
STORYBOARD_TO_MOTION¶
PROCESS: 1. Script approved → break into scenes (3-8 seconds each) 2. Design key frames for each scene in Figma (static) 3. Annotate each keyframe with: what enters, what exits, transition type, duration, voiceover line 4. Create animatic (rough timing with voiceover audio) — validate pacing 5. Produce in After Effects / Remotion / Lottie 6. Sound design pass — add foley, music, SFX 7. Review on target platform (check safe zones, check without sound)
TITLE_SEQUENCES_AND_LOWER_THIRDS¶
TITLE_SEQUENCE¶
DEFINITION: Opening animation that establishes brand identity, mood, and context. DURATION: 3-8 seconds. Longer for long-form (YouTube), shorter for social.
STRUCTURE:
RULE: Title sequence should be skippable or very short on social. Full sequence for YouTube/web. RULE: Create one master title sequence and crop/adapt for each platform ratio.
LOWER_THIRDS¶
DEFINITION: Name/title graphic that appears in the lower third of the frame during interviews or testimonials.
ANATOMY:
┌──────────────────────────────────┐
│ │
│ (video content) │
│ │
│ ┌─────────────────────┐ │
│ │ Name Here │ │
│ │ Title / Company │ │
│ └─────────────────────┘ │
└──────────────────────────────────┘
ANIMATION: Slide in from left (200-300ms ease-out), hold for 3-4 seconds, slide out (200ms ease-in). RULE: Lower third must not overlap captions. Position captions bottom-center, lower third bottom-left. RULE: Text on lower thirds must have sufficient contrast. Use semi-transparent background if video behind is variable.
AUDIO_VISUAL_SYNC¶
PRINCIPLES¶
BEAT_SYNC: Major visual transitions should align with music beats. Off-beat transitions feel amateur. VOICEOVER_PACING: Visual changes should follow the voiceover, not precede it. Show what is being described AS it is described. SILENCE: Strategic silence (0.5-1s) before a key moment amplifies impact. Do not fill every second with music.
MUSIC_SELECTION¶
RULE: Use royalty-free libraries only. GE-approved source: Epidemic Sound (Swedish, EU-compliant). RULE: Music tempo should match video pacing — upbeat (120-140 BPM) for energetic, moderate (90-110 BPM) for corporate, slow (60-80 BPM) for emotional. RULE: Music must not overpower voiceover. Music at -18dB to -24dB under voice. Voice at -6dB to -3dB. RULE: Fade music in/out over 1-2 seconds. Hard cuts on music sound broken.
SOUND_DESIGN¶
SFX_TYPES: - UI sounds: subtle click, whoosh, pop for button/transition emphasis - Ambient: background texture (office, nature, city) for mood - Foley: real-world sounds synced to on-screen action - Stingers: short musical accents on key moments (logo reveal, stat reveal)
RULE: Sound effects should enhance, not distract. If the video works without SFX, the SFX are a bonus. If it depends on SFX, the visuals are weak. RULE: Every sound must have a visual counterpart. Random whooshes without visual action are disorienting.
EXPORT_SETTINGS¶
PER_PLATFORM_EXPORT¶
| Platform | Codec | Container | Bitrate (1080p) | Bitrate (4K) | Audio | Frame Rate |
|---|---|---|---|---|---|---|
| YouTube | H.264 or H.265 | .mp4 | 10-12 Mbps | 35-45 Mbps | AAC 320kbps | 24/25/30fps |
| H.264 | .mp4 | 5-8 Mbps | N/A | AAC 128kbps | 30fps | |
| TikTok | H.264 | .mp4 | 5-8 Mbps | N/A | AAC 128kbps | 30fps |
| H.264 | .mp4 | 5-8 Mbps | N/A | AAC 128kbps | 30fps | |
| Web embed | H.264 | .mp4 | 3-5 Mbps | 8-12 Mbps | AAC 128kbps | 24/30fps |
| Archive/Master | ProRes 422 | .mov | ~100 Mbps | ~400 Mbps | PCM 24-bit | project fps |
EXPORT_RULES¶
RULE: Always render a ProRes master FIRST, then transcode to delivery formats. Never render directly to H.264 from the project.
RULE: Use 2-pass encoding for H.264 delivery files. ffmpeg -c:v libx264 -preset slow -b:v 8M -pass 1 ... && ffmpeg ... -pass 2
RULE: File size limits: Instagram 100MB, TikTok 287MB, LinkedIn 5GB, Twitter 512MB.
RULE: Thumbnails matter. Export a custom thumbnail at the most visually compelling frame. Do not rely on auto-generated thumbnails.
FFMPEG_RECIPES¶
# Master to Instagram Reel (9:16, 1080x1920, H.264)
ffmpeg -i master.mov \
-c:v libx264 -preset slow -crf 20 \
-vf "scale=1080:1920:force_original_aspect_ratio=decrease,pad=1080:1920:(ow-iw)/2:(oh-ih)/2" \
-c:a aac -b:a 128k -r 30 \
-movflags +faststart \
output_instagram.mp4
# Master to YouTube (16:9, 1920x1080, H.264 high quality)
ffmpeg -i master.mov \
-c:v libx264 -preset slow -crf 17 \
-c:a aac -b:a 320k -r 30 \
-movflags +faststart \
output_youtube.mp4
# Extract thumbnail at specific timestamp
ffmpeg -i master.mov -ss 00:00:05.000 -vframes 1 -q:v 2 thumbnail.jpg
RULE: Always include -movflags +faststart for web delivery. This moves the moov atom to the front of the file, enabling progressive playback.
ACCESSIBILITY_IN_VIDEO¶
CAPTIONS¶
RULE: ALL videos MUST have captions. No exceptions. This is both a legal requirement (EAA) and a UX requirement (85% muted viewing). TYPE: Open captions (burned in) for social media. Closed captions (selectable) for YouTube and web embed.
CAPTION_STYLE: - Font: Sans-serif, bold, white text with dark outline or semi-transparent background - Size: Minimum 32px at 1080p (scales to ~1.5% of frame height) - Position: Bottom center, above platform UI overlays - Timing: Sync to speech within 100ms. Maximum 2 lines visible at once. - Reading speed: Maximum 3 words per second (180 words per minute)
AUDIO_DESCRIPTION¶
WHEN_REQUIRED: If visual content conveys information not available in the audio track (text on screen, visual actions, data visualization). IMPLEMENTATION: Separate audio description track. Narrate visual content during natural pauses in dialogue. ALTERNATIVE: Ensure voiceover describes what is shown visually ("As you can see, our dashboard shows...").
AUTOPLAY_POLICY¶
RULE: NEVER autoplay video with sound. Browsers block it and users hate it. RULE: If video autoplays (e.g., hero background), it MUST be muted, MUST have a pause button, and MUST respect prefers-reduced-motion. WCAG: Success Criterion 1.4.2 (Audio Control) — mechanism to pause, stop, or control volume independently. WCAG: Success Criterion 2.2.2 (Pause, Stop, Hide) — any auto-playing content must have controls.
FLASHING_CONTENT¶
RULE: No content may flash more than 3 times per second. WCAG 2.3.1 (Three Flashes or Below Threshold). RULE: If a motion graphic has rapid cuts or strobing effects, run the Photosensitive Epilepsy Analysis Tool (PEAT) before publishing. RISK: Flashing content can trigger seizures in people with photosensitive epilepsy. This is a safety issue, not just compliance.
CHECKLIST — VIDEO_PRODUCTION¶
PRE_PRODUCTION: - [ ] Brief approved with clear objective, audience, platform, duration - [ ] Script/copy approved by benjamin (Copywriter) and client - [ ] Storyboard created with scene-by-scene breakdown - [ ] Animatic reviewed and timing approved - [ ] Music selected and licensed (Epidemic Sound or equivalent EU provider) - [ ] Voiceover recorded (ElevenLabs or human talent)
PRODUCTION: - [ ] All assets at 2x target resolution - [ ] Motion follows brand motion tokens (easing, duration, style) - [ ] Audio levels correct: voice -6dB to -3dB, music -18dB to -24dB - [ ] Beat sync verified — transitions align with music
POST_PRODUCTION:
- [ ] ProRes master rendered
- [ ] Platform-specific exports created (correct ratio, resolution, codec)
- [ ] -movflags +faststart on all web/social MP4 files
- [ ] Captions added (open for social, closed for YouTube/web)
- [ ] Thumbnail exported at key frame
ACCESSIBILITY: - [ ] Captions present, timed correctly, readable - [ ] No flashing content >3 times per second - [ ] Autoplay disabled or muted-only with pause control - [ ] Audio description provided if visual content is not narrated - [ ] Safe zones respected (no text under platform UI overlays)
ANTI_PATTERNS¶
| Anti-Pattern | Problem | Fix |
|---|---|---|
| No hook in first 3 seconds | 50% of viewers leave in first 3s | Lead with strongest visual or statement |
| Text-heavy slides | Video should SHOW not TELL | Max 8 words on screen at once |
| Same export for all platforms | Wrong ratio, wrong resolution, wrong length | Platform-specific renders |
| Background music too loud | Overpowers voiceover, viewer cannot hear | Music at -18dB to -24dB under voice |
| No captions | Excludes deaf/HoH users, loses muted viewers | Always add captions |
| Logo at the start | Nobody cares about your logo until they care about your story | Logo at the END |
| Multiple CTAs | Confuses viewer, reduces conversion | ONE clear CTA |
| Rendering directly to H.264 | Quality loss, no master for re-edits | Always render ProRes master first |
| Using non-EU music library | Potential licensing issues, violates EU-first policy | Use Epidemic Sound (SE) |
REFERENCES¶
- "Building a StoryBrand" — Donald Miller (story framework)
- YouTube Creator Academy — youtube.com/creators
- Instagram Creators Guide — creators.instagram.com
- Epidemic Sound — epidemicsound.com (SE, EU-compliant music)
- FFmpeg Documentation — ffmpeg.org/documentation.html
- WCAG 2.1 Time-Based Media Guidelines — w3.org/WAI/WCAG21/Understanding/time-based-media
- Photosensitive Epilepsy Analysis Tool (PEAT) — trace.umd.edu/peat