Video Ad Specs
Create platform-specific video ads via inference.sh CLI.
Quick Start
curl -fsSL https://cli.inference.sh | sh && infsh login
# Generate a vertical video ad scene
infsh app run bytedance/seedance-1-5-pro --input '{
"prompt": "vertical video, person excitedly unboxing a product, clean modern room, bright natural lighting, social media ad style, authentic feeling, 9:16 format"
}'
Install note: The install script only detects your OS/architecture, downloads the matching binary from dist.inference.sh, and verifies its SHA-256 checksum. No elevated permissions or background processes. Manual install & verification available.
Platform Specifications
TikTok
| Spec |
Value |
| Aspect ratio |
9:16 (vertical) |
| Resolution |
1080 x 1920 px |
| Duration |
5-60 seconds (15-30s recommended) |
| File size |
Max 500 MB |
| Format |
MP4, MOV |
| Sound |
On by default (design with sound) |
| Text safe zone |
150px from all edges |
| Hook window |
1 second — first frame must grab attention |
Instagram Reels
| Spec |
Value |
| Aspect ratio |
9:16 (vertical) |
| Resolution |
1080 x 1920 px |
| Duration |
Up to 90 seconds (15-30s for ads) |
| Cover image |
Separate upload, shows in grid |
| Sound |
On by default |
| Caption area |
Bottom 20% reserved for text overlay |
Instagram Stories
| Spec |
Value |
| Aspect ratio |
9:16 |
| Resolution |
1080 x 1920 px |
| Duration |
Up to 15 seconds per segment |
| Swipe-up/Link |
Available for ads |
| Top/bottom |
14% top and 20% bottom = unsafe for key content |
YouTube
| Format |
Aspect |
Duration |
Skip |
| Bumper |
16:9 |
6 seconds exactly |
Non-skippable |
| Non-skippable |
16:9 |
15 seconds |
Non-skippable |
| Skippable (TrueView) |
16:9 |
Any length |
Skip after 5 seconds |
| Shorts |
9:16 |
Up to 60 seconds |
N/A |
Resolution: 1920 x 1080 (16:9) or 1080 x 1920 (Shorts)
Facebook Feed
| Spec |
Value |
| Aspect ratio |
1:1 (square) or 4:5 (recommended for mobile) |
| Resolution |
1080 x 1080 or 1080 x 1350 |
| Duration |
Up to 240 min (15-30s recommended) |
| Autoplay |
Silent — captions are essential |
| Sound |
85% of Facebook video is watched without sound |
LinkedIn
| Spec |
Value |
| Aspect ratio |
1:1 or 16:9 |
| Resolution |
1080 x 1080 or 1920 x 1080 |
| Duration |
3 seconds to 10 minutes (15-30s for ads) |
| Tone |
Professional |
| Autoplay |
Silent in feed |
AIDA Framework for Video Ads
| Phase |
Time |
Goal |
Technique |
| Attention |
0-3s |
Stop the scroll |
Pattern interrupt, bold visual, question |
| Interest |
3-10s |
Keep watching |
State the problem, show relevance |
| Desire |
10-20s |
Want the solution |
Show the product/outcome, social proof |
| Action |
Final 3-5s |
Click/buy/sign up |
Clear CTA, urgency, offer |
Hook Techniques (First 3 Seconds)
| Technique |
Example |
| Bold statement |
"This tool replaced my entire marketing team" |
| Question |
"Why are you still doing this manually?" |
| Surprising visual |
Unexpected transformation, before/after reveal |
| Pattern interrupt |
Start mid-action, unusual angle, bright color |
| Social proof |
"2 million people switched to this" |
| Pain point |
"If you hate [common frustration], watch this" |
Creating Video Ads
Vertical (TikTok, Reels, Stories, Shorts)
# Hook scene (0-3s)
infsh app run google/veo-3-1-fast --input '{
"prompt": "vertical 9:16 video, close-up of hands struggling with tangled cables and messy desk, frustrated energy, shaky handheld camera, authentic social media style, bright lighting"
}'
# Solution reveal (3-15s)
infsh app run bytedance/seedance-1-5-pro --input '{
"prompt": "vertical video, smooth product reveal, clean wireless charging station on minimalist desk, satisfying organization transformation, bright modern room, social media ad aesthetic"
}'
# Add voiceover
infsh app run falai/dia-tts --input '{
"prompt": "[S1] Stop wasting time with this mess. This one product changed my entire setup. Everything charges. Everything is organized. Link in bio."
}'
# Merge video + audio
infsh app run infsh/video-audio-merger --input '{
"video": "solution-reveal.mp4",
"audio": "voiceover.mp3"
}'
# Add captions (critical for silent autoplay)
infsh app run infsh/caption-videos --input '{
"video": "ad-with-audio.mp4",
"caption_file": "captions.srt"
}'
Square (Facebook, LinkedIn Feed)
infsh app run google/veo-3-1-fast --input '{
"prompt": "square 1:1 video, professional person at desk discovering a new software tool, laptop screen showing clean dashboard, natural office lighting, corporate commercial style, satisfied expression"
}'
YouTube Bumper (6 Seconds)
# 6-second bumper: one message, one visual, one CTA
infsh app run google/veo-3-1-fast --input '{
"prompt": "6 second product ad, quick montage of a sleek app being used on phone, fast cuts, modern, energetic, brand logo reveal at end, punchy and dynamic, wide 16:9"
}'
# Keep it tight
infsh app run falai/dia-tts --input '{
"prompt": "[S1] Your reports. Automated. Try DataFlow free."
}'
Captions Are Mandatory
85% of Facebook and 40%+ of Instagram video is watched on mute.
Caption Best Practices
| Rule |
Reason |
| Always add captions |
Silent viewing is the default on most platforms |
| Large, readable font |
Small text is invisible on mobile |
| High contrast |
White text with dark outline/background |
| Centered or bottom-third |
Standard viewing position |
| Max 2 lines at a time |
More text = can't be read fast enough |
| Key words in bold/color |
Draws eye to important words |
# Generate captions from audio
# (create SRT file from your script, then burn in)
infsh app run infsh/caption-videos --input '{
"video": "ad-video.mp4",
"caption_file": "ad-captions.srt"
}'
Ad Structure Templates
Testimonial Ad (15-30s)
| Time |
Content |
| 0-3s |
Customer states the problem they had |
| 3-15s |
How they discovered and tried the product |
| 15-25s |
The specific result they achieved |
| 25-30s |
Product name + CTA |
Demo Ad (15-30s)
| Time |
Content |
| 0-3s |
The problem (text or visual) |
| 3-20s |
Product demo showing the solution |
| 20-25s |
Key result/benefit |
| 25-30s |
CTA + offer |
Before/After Ad (15s)
| Time |
Content |
| 0-3s |
"Before" state (messy, slow, frustrating) |
| 3-5s |
Transition / product introduction |
| 5-12s |
"After" state (clean, fast, satisfying) |
| 12-15s |
CTA |
Common Mistakes
| Mistake |
Problem |
Fix |
| No hook in first 1-3s |
Viewer scrolls past |
Open with pattern interrupt |
| Landscape video on TikTok/Reels |
Letterboxed, looks amateur |
Use 9:16 for vertical platforms |
| No captions |
Most viewers watch silent |
Always add captions |
| CTA too late |
Viewers already left |
Clear CTA within last 5 seconds |
| Too long for platform |
Forced skip or dropout |
Match platform duration norms |
| Same ad for all platforms |
Wrong specs, wrong tone |
Create platform-specific versions |
| Logo in first 3s |
Feels like a commercial, gets skipped |
Save branding for the end |
| Text in unsafe zones |
Cut off by platform UI |
Check safe zone per platform |
Checklist
Related Skills
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
1---2name: video-ad-specs3description: Video ad creation with exact platform-specific specs for TikTok, Instagram, YouTube, Facebook, LinkedIn. Covers dimensions, duration limits, AIDA framework, and caption requirements. Use for: video ads, social media ads, paid media creative, video marketing, ad production. Triggers: video ad, social media ad, tiktok ad, instagram ad, youtube ad, facebook ad, linkedin ad, video creative, ad specs, paid media, video marketing, ad production, reels ad, stories ad, pre roll, bumper ad4---5
6# Video Ad Specs
7
8Create platform-specific video ads via [inference.sh](https://inference.sh) CLI.
9
10## Quick Start
11
12```bash
13curl -fsSL https://cli.inference.sh | sh && infsh login
14
15# Generate a vertical video ad scene
16infsh app run bytedance/seedance-1-5-pro --input '{
17 "prompt": "vertical video, person excitedly unboxing a product, clean modern room, bright natural lighting, social media ad style, authentic feeling, 9:16 format"
18}'
19```
20
21> **Install note:** The [install script](https://cli.inference.sh) only detects your OS/architecture, downloads the matching binary from `dist.inference.sh`, and verifies its SHA-256 checksum. No elevated permissions or background processes. [Manual install & verification](https://dist.inference.sh/cli/checksums.txt) available.
22
23## Platform Specifications
24
25### TikTok
26
27| Spec | Value |
28|------|-------|
29| Aspect ratio | **9:16** (vertical) |
30| Resolution | 1080 x 1920 px |
31| Duration | 5-60 seconds (15-30s recommended) |
32| File size | Max 500 MB |
33| Format | MP4, MOV |
34| Sound | On by default (design with sound) |
35| Text safe zone | 150px from all edges |
36| Hook window | **1 second** — first frame must grab attention |
37
38### Instagram Reels
39
40| Spec | Value |
41|------|-------|
42| Aspect ratio | **9:16** (vertical) |
43| Resolution | 1080 x 1920 px |
44| Duration | Up to 90 seconds (15-30s for ads) |
45| Cover image | Separate upload, shows in grid |
46| Sound | On by default |
47| Caption area | Bottom 20% reserved for text overlay |
48
49### Instagram Stories
50
51| Spec | Value |
52|------|-------|
53| Aspect ratio | **9:16** |
54| Resolution | 1080 x 1920 px |
55| Duration | Up to 15 seconds per segment |
56| Swipe-up/Link | Available for ads |
57| Top/bottom | 14% top and 20% bottom = unsafe for key content |
58
59### YouTube
60
61| Format | Aspect | Duration | Skip |
62|--------|--------|----------|------|
63| Bumper | 16:9 | **6 seconds** exactly | Non-skippable |
64| Non-skippable | 16:9 | **15 seconds** | Non-skippable |
65| Skippable (TrueView) | 16:9 | Any length | Skip after **5 seconds** |
66| Shorts | 9:16 | Up to 60 seconds | N/A |
67
68Resolution: 1920 x 1080 (16:9) or 1080 x 1920 (Shorts)
69
70### Facebook Feed
71
72| Spec | Value |
73|------|-------|
74| Aspect ratio | **1:1** (square) or **4:5** (recommended for mobile) |
75| Resolution | 1080 x 1080 or 1080 x 1350 |
76| Duration | Up to 240 min (15-30s recommended) |
77| Autoplay | **Silent** — captions are essential |
78| Sound | 85% of Facebook video is watched **without sound** |
79
80### LinkedIn
81
82| Spec | Value |
83|------|-------|
84| Aspect ratio | **1:1** or **16:9** |
85| Resolution | 1080 x 1080 or 1920 x 1080 |
86| Duration | 3 seconds to 10 minutes (15-30s for ads) |
87| Tone | Professional |
88| Autoplay | Silent in feed |
89
90## AIDA Framework for Video Ads
91
92| Phase | Time | Goal | Technique |
93|-------|------|------|-----------|
94| **Attention** | 0-3s | Stop the scroll | Pattern interrupt, bold visual, question |
95| **Interest** | 3-10s | Keep watching | State the problem, show relevance |
96| **Desire** | 10-20s | Want the solution | Show the product/outcome, social proof |
97| **Action** | Final 3-5s | Click/buy/sign up | Clear CTA, urgency, offer |
98
99### Hook Techniques (First 3 Seconds)
100
101| Technique | Example |
102|-----------|---------|
103| Bold statement | "This tool replaced my entire marketing team" |
104| Question | "Why are you still doing this manually?" |
105| Surprising visual | Unexpected transformation, before/after reveal |
106| Pattern interrupt | Start mid-action, unusual angle, bright color |
107| Social proof | "2 million people switched to this" |
108| Pain point | "If you hate [common frustration], watch this" |
109
110## Creating Video Ads
111
112### Vertical (TikTok, Reels, Stories, Shorts)
113
114```bash
115# Hook scene (0-3s)
116infsh app run google/veo-3-1-fast --input '{
117 "prompt": "vertical 9:16 video, close-up of hands struggling with tangled cables and messy desk, frustrated energy, shaky handheld camera, authentic social media style, bright lighting"
118}'
119
120# Solution reveal (3-15s)
121infsh app run bytedance/seedance-1-5-pro --input '{
122 "prompt": "vertical video, smooth product reveal, clean wireless charging station on minimalist desk, satisfying organization transformation, bright modern room, social media ad aesthetic"
123}'
124
125# Add voiceover
126infsh app run falai/dia-tts --input '{
127 "prompt": "[S1] Stop wasting time with this mess. This one product changed my entire setup. Everything charges. Everything is organized. Link in bio."
128}'
129
130# Merge video + audio
131infsh app run infsh/video-audio-merger --input '{
132 "video": "solution-reveal.mp4",
133 "audio": "voiceover.mp3"
134}'
135
136# Add captions (critical for silent autoplay)
137infsh app run infsh/caption-videos --input '{
138 "video": "ad-with-audio.mp4",
139 "caption_file": "captions.srt"
140}'
141```
142
143### Square (Facebook, LinkedIn Feed)
144
145```bash
146infsh app run google/veo-3-1-fast --input '{
147 "prompt": "square 1:1 video, professional person at desk discovering a new software tool, laptop screen showing clean dashboard, natural office lighting, corporate commercial style, satisfied expression"
148}'
149```
150
151### YouTube Bumper (6 Seconds)
152
153```bash
154# 6-second bumper: one message, one visual, one CTA
155infsh app run google/veo-3-1-fast --input '{
156 "prompt": "6 second product ad, quick montage of a sleek app being used on phone, fast cuts, modern, energetic, brand logo reveal at end, punchy and dynamic, wide 16:9"
157}'
158
159# Keep it tight
160infsh app run falai/dia-tts --input '{
161 "prompt": "[S1] Your reports. Automated. Try DataFlow free."
162}'
163```
164
165## Captions Are Mandatory
166
16785% of Facebook and 40%+ of Instagram video is watched on mute.
168
169### Caption Best Practices
170
171| Rule | Reason |
172|------|--------|
173| Always add captions | Silent viewing is the default on most platforms |
174| Large, readable font | Small text is invisible on mobile |
175| High contrast | White text with dark outline/background |
176| Centered or bottom-third | Standard viewing position |
177| Max 2 lines at a time | More text = can't be read fast enough |
178| Key words in bold/color | Draws eye to important words |
179
180```bash
181# Generate captions from audio
182# (create SRT file from your script, then burn in)
183infsh app run infsh/caption-videos --input '{
184 "video": "ad-video.mp4",
185 "caption_file": "ad-captions.srt"
186}'
187```
188
189## Ad Structure Templates
190
191### Testimonial Ad (15-30s)
192
193| Time | Content |
194|------|---------|
195| 0-3s | Customer states the problem they had |
196| 3-15s | How they discovered and tried the product |
197| 15-25s | The specific result they achieved |
198| 25-30s | Product name + CTA |
199
200### Demo Ad (15-30s)
201
202| Time | Content |
203|------|---------|
204| 0-3s | The problem (text or visual) |
205| 3-20s | Product demo showing the solution |
206| 20-25s | Key result/benefit |
207| 25-30s | CTA + offer |
208
209### Before/After Ad (15s)
210
211| Time | Content |
212|------|---------|
213| 0-3s | "Before" state (messy, slow, frustrating) |
214| 3-5s | Transition / product introduction |
215| 5-12s | "After" state (clean, fast, satisfying) |
216| 12-15s | CTA |
217
218## Common Mistakes
219
220| Mistake | Problem | Fix |
221|---------|---------|-----|
222| No hook in first 1-3s | Viewer scrolls past | Open with pattern interrupt |
223| Landscape video on TikTok/Reels | Letterboxed, looks amateur | Use 9:16 for vertical platforms |
224| No captions | Most viewers watch silent | Always add captions |
225| CTA too late | Viewers already left | Clear CTA within last 5 seconds |
226| Too long for platform | Forced skip or dropout | Match platform duration norms |
227| Same ad for all platforms | Wrong specs, wrong tone | Create platform-specific versions |
228| Logo in first 3s | Feels like a commercial, gets skipped | Save branding for the end |
229| Text in unsafe zones | Cut off by platform UI | Check safe zone per platform |
230
231## Checklist
232
233- [ ] Correct aspect ratio for target platform
234- [ ] Hook in first 1-3 seconds
235- [ ] Captions added (readable, high contrast)
236- [ ] CTA clear and within final 5 seconds
237- [ ] Duration matches platform norms
238- [ ] Text outside platform unsafe zones
239- [ ] Audio designed for both sound-on and sound-off
240- [ ] Platform-specific version (not one-size-fits-all)
241
242## Related Skills
243
244```bash
245npx skills add inference-sh/skills@ai-video-generation
246npx skills add inference-sh/skills@video-prompting-guide
247npx skills add inference-sh/skills@text-to-speech
248npx skills add inference-sh/skills@prompt-engineering
249```
250
251Browse all apps: `infsh app list`