---
name: explainer-video-guide
description: "Explainer video production guide: scripting, voiceover, visuals, and assembly. Covers script formulas, pacing rules, scene planning, and multi-tool pipelines. Use for: product demos, how-it-works videos, onboarding videos, social explainers. Triggers: explainer video, how to make explainer, product video, demo video, video production, video script, animated explainer, product demo video, tutorial video, onboarding video, walkthrough video, video pipeline"
allowed-tools: Bash(infsh *)
---

# Explainer Video Guide

Create explainer videos from script to final cut via [inference.sh](https://inference.sh) CLI.

## Quick Start

> Requires inference.sh CLI (`infsh`). [Install instructions](https://raw.githubusercontent.com/inference-sh/skills/refs/heads/main/cli-install.md)

```bash
infsh login

# Generate a scene for an explainer
infsh app run google/veo-3-1-fast --input '{
  "prompt": "Clean motion graphics style animation, abstract data flowing between connected nodes, blue and white color scheme, professional corporate aesthetic, smooth transitions"
}'
```


## Script Formulas

### Problem-Agitate-Solve (PAS) — 60 seconds

| Section | Duration | Content | Word Count |
|---------|----------|---------|------------|
| **Problem** | 10s | State the pain point the viewer has | ~25 words |
| **Agitate** | 10s | Show why it's worse than they think | ~25 words |
| **Solution** | 15s | Introduce your product/idea | ~35 words |
| **How It Works** | 20s | Show 3 key steps or features | ~50 words |
| **CTA** | 5s | One clear next action | ~12 words |

### Before-After-Bridge (BAB) — 90 seconds

| Section | Duration | Content |
|---------|----------|---------|
| **Before** | 15s | Show the current frustrating state |
| **After** | 15s | Show the ideal outcome |
| **Bridge** | 40s | Explain how your product gets them there |
| **Social Proof** | 10s | Quick stat or testimonial |
| **CTA** | 10s | Clear next step |

### Feature Spotlight — 30 seconds (social)

| Section | Duration | Content |
|---------|----------|---------|
| **Hook** | 3s | Surprising fact or question |
| **Feature** | 15s | Show one feature solving one problem |
| **Result** | 7s | The outcome/benefit |
| **CTA** | 5s | Try it / Learn more |

## Pacing Rules

| Content Type | Words Per Minute | Notes |
|-------------|-----------------|-------|
| Standard narration | 150 wpm | Conversational pace |
| Complex/technical | 120 wpm | Allow processing time |
| Energetic/social | 170 wpm | Faster for short-form |
| Children's content | 100 wpm | Clear and slow |

**Key rule:** 1 scene per key message. Don't pack multiple ideas into one visual.

### Scene Duration Guidelines

- Establishing shot: 3-5 seconds
- Feature demonstration: 5-8 seconds
- Text/stat on screen: 3-4 seconds (must be readable)
- Transition: 0.5-1 second
- CTA screen: 3-5 seconds

## Visual Production

### Scene Types

```bash
# Product in context
infsh app run google/veo-3-1-fast --input '{
  "prompt": "Clean product demonstration video, hands typing on a laptop showing a dashboard interface, bright modern office, soft natural lighting, professional"
}'

# Abstract concept visualization
infsh app run bytedance/seedance-1-5-pro --input '{
  "prompt": "Abstract motion graphics, colorful data streams connecting floating geometric shapes, smooth fluid animation, dark background with glowing elements, tech aesthetic"
}'

# Lifestyle/outcome shot
infsh app run google/veo-3-1-fast --input '{
  "prompt": "Happy person relaxing on couch with laptop, smiling at screen, bright airy living room, warm afternoon light, satisfied customer feeling, lifestyle commercial style"
}'

# Before/after comparison
infsh app run falai/flux-dev-lora --input '{
  "prompt": "Split screen comparison, left side cluttered messy desk with papers and stress, right side clean organized minimalist workspace, dramatic difference, clean design"
}'
```

### Image-to-Video for Scenes

```bash
# Generate a still frame first
infsh app run falai/flux-dev-lora --input '{
  "prompt": "Professional workspace with glowing holographic interface, futuristic but clean, blue accent lighting"
}'

# Animate it
infsh app run falai/wan-2-5-i2v --input '{
  "prompt": "Gentle camera push in, holographic elements subtly floating and rotating, soft ambient light shifts",
  "image": "path/to/workspace-still.png"
}'
```

## Voiceover Production

### Script Writing Tips

- Short sentences. Max 15 words per sentence.
- Active voice. "You can track your data" not "Your data can be tracked."
- Conversational tone. Read it aloud — if it sounds stiff, rewrite.
- One idea per sentence. One sentence per visual beat.

### Generating Voiceover

```bash
# Professional narration with Dia TTS
infsh app run falai/dia-tts --input '{
  "prompt": "[S1] Tired of spending hours on reports that nobody reads? There is a better way. Meet DataFlow. It turns your raw data into visual stories... in seconds. Just connect your source, pick a template, and share. Try DataFlow free today."
}'
```

### Pacing Control in TTS

| Technique | Effect | Example |
|-----------|--------|---------|
| Period `.` | Medium pause | "This changes everything. Here's how." |
| Ellipsis `...` | Long pause (dramatic) | "And the result... was incredible." |
| Comma `,` | Short pause | "Fast, simple, powerful." |
| Exclamation `!` | Emphasis/energy | "Start building today!" |
| Question `?` | Rising intonation | "What if there was a better way?" |

## Music & Audio

### Background Music Guidelines

- **Volume:** 20-30% under narration (duck 6-12dB when voice plays)
- **Style:** match the brand tone (corporate = ambient electronic, startup = upbeat indie)
- **Structure:** intro swell (first 3s) -> subtle loop under narration -> swell at CTA
- **No vocals:** instrumental only under narration

```bash
# Generate background music
infsh app run <music-gen-app> --input '{
  "prompt": "upbeat corporate background music, modern electronic, 90 BPM, positive and professional, no vocals, suitable for product explainer video"
}'
```

## Assembly Pipeline

### Full Production Workflow

```bash
# 1. Generate voiceover
infsh app run falai/dia-tts --input '{
  "prompt": "[S1] Your script here..."
}'

# 2. Generate scene visuals (in parallel)
infsh app run google/veo-3-1-fast --input '{"prompt": "scene 1 description"}' --no-wait
infsh app run google/veo-3-1-fast --input '{"prompt": "scene 2 description"}' --no-wait
infsh app run google/veo-3-1-fast --input '{"prompt": "scene 3 description"}' --no-wait

# 3. Merge scenes into sequence
infsh app run infsh/media-merger --input '{
  "media": ["scene1.mp4", "scene2.mp4", "scene3.mp4"]
}'

# 4. Add voiceover to video
infsh app run infsh/video-audio-merger --input '{
  "video": "merged-scenes.mp4",
  "audio": "voiceover.mp3"
}'

# 5. Add captions
infsh app run infsh/caption-videos --input '{
  "video": "final-with-audio.mp4",
  "caption_file": "captions.srt"
}'
```

## Video Length by Format

| Format | Length | Platform |
|--------|--------|----------|
| Social teaser | 15-30s | TikTok, Instagram Reels, YouTube Shorts |
| Product demo | 60-90s | Website, landing page |
| Feature explainer | 90-120s | YouTube, email |
| Tutorial/walkthrough | 2-5min | YouTube, help center |
| Investor pitch video | 2-3min | Pitch deck supplement |

## Transition Types

| Transition | When to Use | Effect |
|------------|-------------|--------|
| **Cut** | Default between related scenes | Clean, professional |
| **Dissolve/Crossfade** | Time passing, mood shift | Soft, contemplative |
| **Wipe** | New topic or section | Clear separation |
| **Zoom/Push** | Drilling into detail | Focus attention |
| **Match cut** | Visual similarity between scenes | Clever, memorable |

## Common Mistakes

| Mistake | Problem | Fix |
|---------|---------|-----|
| Script too wordy | Voiceover rushed, viewer overwhelmed | Cut to 150 wpm max |
| No hook in first 3s | Viewers leave immediately | Start with the problem or surprising stat |
| Visuals lag narration | Confusing disconnect | Visuals should match or slightly precede words |
| Background music too loud | Can't hear narration | Duck music 6-12dB under voice |
| No captions | 85% of social video watched silent | Always add captions |
| Too many ideas | Viewer retains nothing | One core message per video |

## Related Skills

```bash
npx skills add inference-sh/skills@ai-video-generation
npx skills add inference-sh/skills@video-prompting-guide
npx skills add inference-sh/skills@text-to-speech
npx skills add inference-sh/skills@prompt-engineering
```

Browse all apps: `infsh app list`

