Skip to main content
The render command converts a Helios composition into a video file using headless browser rendering.

Usage

Arguments

string
required
Path to composition HTML file or HTTP(S) URL.

Output options

string
default:"output.mp4"
Output file path. Short form: -o.
number
default:"1920"
Viewport width in pixels.
number
default:"1080"
Viewport height in pixels.
number
default:"30"
Frames per second for output video.
number
default:"1"
Duration in seconds.
number
CRF quality value (0-51). Lower values = higher quality. Default varies by codec.

Rendering options

string
default:"canvas"
Render mode: canvas or dom. Canvas mode is faster and more reliable.
boolean
Run browser in visible window instead of headless mode. Useful for debugging.
number
Frame number to start rendering from (0-based).
number
Number of frames to render. Used for chunked rendering.
number
default:"1"
Number of concurrent render jobs to execute in parallel.

Codec options

string
Video codec. Examples: libx264, libx265, libvpx, libvpx-vp9.
string
Audio codec. Examples: aac, mp3, pcm_s16le.

Distributed rendering

string
Generate a distributed render job specification (JSON) instead of rendering immediately.
string
Base URL for remote asset resolution in distributed jobs. Alias for --job-base-url.
string
Base URL for remote asset resolution. Used when generating job specs for distributed rendering.

Examples

Basic rendering

Render a composition with default settings:
Output: output.mp4 at 1920x1080, 30fps

Custom output settings

Render 4K video at 60fps.

High quality render

Use H.265 codec with high quality settings (CRF 18).

Specific duration

Render a 10-second video.

Debug rendering

Watch the rendering process in a visible browser window.

Render from URL

Partial render

Render frames 60-149 (90 frames starting at frame 60).

Generate distributed job

This creates job.json with 4 parallel chunks, configured to load assets from the CDN.

Custom browser arguments

Useful for rendering in Docker or restricted environments.

Job specification format

When using --emit-job, the output is a JSON file:
Execute the job with:

Environment variables

Browser configuration

string
Space-separated browser command-line arguments.
string
Path to custom Chromium/Chrome executable.

Performance tips

Parallel rendering

Use --concurrency for faster local rendering:
This splits the render into 4 parallel chunks.

Codec selection

For fastest encoding:
For best quality:

Canvas vs DOM mode

Canvas mode (default) is recommended for:
  • Better performance
  • Consistent cross-platform results
  • Complex animations
DOM mode may be better for:
  • Text-heavy compositions
  • Complex CSS effects
  • Debugging layout issues

Troubleshooting

Browser not found

Sandbox errors in Docker

Out of memory

Reduce concurrency or render in smaller chunks:

See also