Format Overview
| Format | Extension | Best For | Browser Support |
|---|---|---|---|
| MP4 | .mp4 | High-quality demos, documentation, social media | Universal |
| GIF | .gif | GitHub READMEs, chat messages, email | Universal |
| WebM | .webm | Web embedding, smaller file sizes | Modern browsers (not Safari on older iOS/macOS) |
MP4 Format (Default)
Configuration
MP4 is the default output format. Simply specify a video name:videos/my-demo.mp4.
Explicit MP4 Output
You can also specify the output path explicitly:Encoding Details
MP4 files use H.264 (libx264) encoding with these settings:- Codec: libx264
- Preset: ultrafast (during recording)
- Pixel format: yuv420p (maximum compatibility)
- Color space: bt709 (standard HD)
- Default CRF: 18 (high quality)
- Frame rate: 60fps (configurable)
- Audio codec: AAC at 128kbps (when sound effects enabled)
Quality Settings
Control output quality with thequality field (0-100):
quality: 100→ CRF 0 (lossless, huge files)quality: 95→ CRF 2 (near-lossless)quality: 80→ CRF 10 (very high quality)quality: 50→ CRF 25 (balanced)quality: 0→ CRF 51 (lowest quality)
Frame Rate
Customize the frame rate:Sound Effects
Add click and keystroke sounds:1: Soft, subtle clicks and key presses2: Mechanical keyboard sounds3: Clicky, pronounced sounds4: Deep, bass-heavy sounds
File Size Considerations
| Setting | Small File | Balanced | High Quality |
|---|---|---|---|
| Quality | 50 | 75 | 95 |
| FPS | 30 | 60 | 60 |
| Viewport | 1080x1080 | 1920x1080 | 2560x1440 |
| Zoom | 1 | 1.5 | 2 |
GIF Format
Configuration
Set theoutput field to a .gif extension:
Encoding Details
GIF encoding uses ffmpeg’s palettegen/paletteuse filters for optimal quality:- Frame rate: Fixed at 15fps (GIF standard)
- Palette: Generated from video content (256 colors)
- Dithering: Enabled for smoother gradients
- Scaling: Uses Lanczos algorithm for quality
Use Cases
Best for:- GitHub README demonstrations
- Slack/Discord messages
- Email campaigns
- Blog posts (works everywhere)
- Quick previews
- Long recordings (file size explodes)
- High-quality demos (limited to 256 colors)
- Videos with smooth gradients or photos
- Complex animations
Limitations
- No sound: GIF format doesn’t support audio
- Lower frame rate: Fixed at 15fps vs 60fps for MP4
- Color limitations: 256 colors per frame
- File size: Can be larger than equivalent MP4 for long videos
- No quality control: GIF encoding quality is fixed
Optimization Tips
Keep it short
Keep it short
GIFs grow quickly with duration. Aim for:
- Under 5 seconds: Excellent
- 5-10 seconds: Good
- 10-20 seconds: File size may be large
- Over 20 seconds: Consider MP4 instead
Use smaller viewports
Use smaller viewports
GIF file size is directly proportional to pixel count:
Avoid complex gradients
Avoid complex gradients
The 256-color palette struggles with:
- Smooth gradients
- Photographs
- Subtle shadows
- Color-rich interfaces
WebM Format
Configuration
Set theoutput field to a .webm extension:
Encoding Details
WebM files use VP9 encoding:- Video codec: libvpx-vp9
- CRF: 30 (good quality, smaller files)
- Bitrate: Variable (VBR, b:v 0)
- Pixel format: yuv420p
- Audio codec: Opus at 128kbps (when sound effects enabled)
Use Cases
Best for:- Web documentation sites
- Embedded video players
- Smaller file sizes than MP4
- Modern web applications
- Social media (MP4 has better support)
- Maximum compatibility (Safari support is limited on older versions)
- iOS apps
Browser Support
| Browser | Support |
|---|---|
| Chrome | Full support |
| Firefox | Full support |
| Edge | Full support |
| Safari (macOS 14.1+) | Full support |
| Safari (older) | Limited or no support |
| iOS Safari (17.1+) | Full support |
| iOS Safari (older) | Limited or no support |
File Size Comparison
For a typical 10-second demo at 1920x1080:- MP4 (CRF 18): ~5-8 MB
- WebM (CRF 30): ~3-5 MB
- GIF (15fps): ~8-15 MB
Format Selection Guide
- Use MP4 when...
- Use GIF when...
- Use WebM when...
- You need universal compatibility
- Posting to social media (Twitter, LinkedIn, etc.)
- Creating high-quality demos
- You want sound effects
- Maximum quality is important
- You’re unsure (it’s the safest default)
Multiple Formats from One Recording
You can generate multiple formats by defining separate video entries:steps/demo-steps.json:
demo.mp4 and demo.gif.
Thumbnails
All formats automatically generate a PNG thumbnail from the first frame:Custom Thumbnail Time
Extract the thumbnail from a specific timestamp:Disable Thumbnails
Next Steps
Advanced Actions
Learn drag-and-drop, scrolling, and complex interactions
Troubleshooting
Common issues and solutions
Configuration Reference
Complete configuration options