Render videos
Render whole projects, single scenes, frame ranges, or PNG frames — with quality controls.
Goal
Get exactly the output you want out of cinecode render, fast.
Render the whole project
cinecode render my-video -o my-video.mp4Scenes play in the order listed in codescene.toml.
Render a single scene
While iterating, render just the scene you're working on. Scenes can be selected by name or 1-based index:
cinecode render my-video -s intro -o intro.mp4
cinecode render my-video -s 2 -o second-scene.mp4Scene indices start at 1, not 0. -s 0 is an error.
Render a frame range
cinecode render my-video --from 90 --to 180 -o preview.mp4--from is a 0-based, inclusive output frame. --to is exclusive, so the
example renders frames 90 through 179. Use -s <name|index> when you want to
select one scene instead.
Control quality and size
cinecode render my-video -o final.mp4 --crf 18 --preset slow--crf <18–28>— constant rate factor. Lower = higher quality, larger file.--preset <p>— ffmpeg speed/efficiency preset (ultrafast…veryslow).
Smooth edges and zooms (--ssaa)
The CPU backend supersamples by default (--ssaa 2): it renders each frame at
double resolution and averages it down, which anti-aliases every stroke, glyph,
and rounded panel and keeps camera zooms from shimmering.
cinecode render my-video -o draft.mp4 --ssaa 1 # fastest, native res
cinecode render my-video -o hero.mp4 --ssaa 4 # crispest, ~16× the pixels2 is the sweet spot and the default. Use 1 for quick drafts and 3–4
for a final pass. See the CLI reference.
Export frames instead of a video
cinecode render my-video --format png -o frames/This writes numbered PNGs — handy for thumbnails or external editing.
Quieter or louder output
cinecode render my-video -o out.mp4 -q # quiet
cinecode render my-video -o out.mp4 -v # verboseRender on the GPU
For shaders and bloom, enable the GPU backend:
cinecode render my-video -o out.mp4 --gpu --bloom 0.8Files that made this video
The GPU effects scene: a scene script, one Rust source file, and three WGSL shaders registered in the manifest.
scenes = ["scenes/intro.ccs", "scenes/terrain.ccs", "scenes/pathfind.ccs", "scenes/particles.ccs", "scenes/graph.ccs", "scenes/life.ccs", "scenes/boids.ccs", "scenes/tweens.ccs", "scenes/inserts.ccs", "scenes/edit.ccs", "scenes/edit_source.ccs", "scenes/editor_theme.ccs", "scenes/font_set.ccs", "scenes/remove_styles.ccs", "scenes/morph.ccs", "scenes/shapes.ccs", "scenes/effects.ccs"]
theme = "dark_documentary"
[episode]
title = "How Rivers Form"
[output]
fps = 30
width = 1280
height = 720
[shaders]
aurora = "shaders/aurora.wgsl"
glitch = "shaders/glitch.wgsl"
scanlines = "shaders/scanlines.wgsl"
[transition]
kind = "crossfade"
frames = 18See Apply GPU shaders for the shader workflow.
Full flag list
Everything above, plus a few extras, is documented in the CLI reference.