How to Generate Multiple Output Formats

Overview

Generate GIF, MP4, and WebM files from a single recording.

Choosing a Format

Format Best For Trade-offs
GIF GitHub READMEs, documentation, email Maximum compatibility, but larger files and 256 colors max
MP4 Social media, presentations Smaller files with better quality, requires video player
WebM Web embedding Smallest files, but limited support in some browsers/apps

Generate Multiple Formats

Add multiple Output commands to your tape file:

Output demo.gif
Output demo.mp4
Output demo.webm
  
Set Cols 100
Set Rows 30
  
Type "echo 'Hello, World!'"
Enter
Wait

VCR# will generate all three files from a single recording.

Add Outputs from CLI

Use the --output or -o flag to add outputs without editing the tape file:

vcr demo.tape -o extra.mp4 -o extra.webm

CLI outputs are appended to tape file outputs.

Optimize File Sizes

To reduce GIF size:

Output demo.gif
  
Set MaxColors 128       # Reduce color palette (default: 256)
Set Cols 100            # Smaller dimensions = smaller file
Set Rows 30

Lower MaxColors values (64, 128) produce smaller GIFs but may reduce quality.

To control video quality:

Output demo.mp4
  
Set Framerate 30        # Lower framerate = smaller file (default: 50)
Set PlaybackSpeed 1.5   # Faster playback = shorter video = smaller file

Example: Multiple Distribution Channels

Generate all three formats for different uses:

Output readme.gif           # For GitHub README
Output social.mp4           # For Twitter/LinkedIn
Output web.webm             # For website embedding
  
Set Cols 100
Set Rows 30
Set Theme Dracula
  
Type "npm install VCR#"
Enter
Wait

Format-Specific Settings

GIF-only settings:

  • MaxColors - Color palette size (default: 256)
  • LoopOffset - Delay before loop starts

Video-only settings (MP4/WebM):

  • Framerate - Recording frame rate (default: 50)
  • PlaybackSpeed - Playback multiplier (default: 1.0)

All settings apply to all formats unless noted otherwise.