Skip to main content
oanim render [options]
Renders your composition to MP4. Reads configuration from animate.json in the current directory.

Options

FlagDescriptionDefault
--out <path>Output file pathout/{compositionId}.mp4
--fps <n>Frames per secondfrom animate.json (30)
--res <WxH>Resolution (e.g. 1920x1080)from animate.json
--codec <codec>Video codec: h264, h265, vp8, vp9from animate.json (h264)
--props <json>Input props as JSON stringfrom animate.json
--composition <id>Composition ID overridefrom animate.json
--cloudRender in the cloud (requires auth)false

animate.json reference

Every Open Animate project has an animate.json at the root:
{
  "name": "My Video",
  "compositionId": "MyComp",
  "render": {
    "fps": 30,
    "width": 1920,
    "height": 1080,
    "codec": "h264",
    "crf": 18
  },
  "props": {}
}
FieldTypeDefaultDescription
namestringrequiredHuman-readable name
compositionIdstringrequiredMust match <Composition id="..."> in Root.tsx
render.fpsnumber30Frames per second
render.widthnumber1920Video width in px
render.heightnumber1080Video height in px
render.codecstring"h264"h264, h265, vp8, vp9
render.crfnumber18Constant Rate Factor (quality)
propsobject{}inputProps passed to the composition
CRF (Constant Rate Factor) controls video quality vs file size. Lower values = higher quality but larger files. 18 is visually lossless for most content. Use 23 for smaller files, or 12-15 for maximum quality.

Common resolution presets

// 1080p (default)
{ "width": 1920, "height": 1080, "fps": 30 }

// 4K
{ "width": 3840, "height": 2160, "fps": 30 }

// Vertical (Reels/TikTok)
{ "width": 1080, "height": 1920, "fps": 30 }

// Square (Instagram)
{ "width": 1080, "height": 1080, "fps": 30 }

Examples

Basic render

oanim render
# → reads animate.json, outputs to out/MyComp.mp4

Override resolution and codec

oanim render --fps 60 --res 3840x2160 --codec h265 --out out/4k.mp4

Pass input props

oanim render --props '{"title": "My Product", "color": "#ff0000"}'

Cloud render

# Requires authentication
oanim login

# Render in the cloud
oanim render --cloud
Cloud rendering bundles your project locally with remotion bundle, uploads it, and streams progress. The rendered video is downloaded to your output path when complete. See Cloud Rendering for details.