This guide takes you from an empty directory to a five-second video with one visible text edit and an interactive preview.
Prerequisites
- Node.js 22 or later
- FFmpeg available on your
PATHfor local MP4 rendering
See what you will make
This is the same shape as the scaffold: a 1920 × 1080, five-second timegroup with one text element. Use the controls below to play it, scrub it, and check its time readout before opening your project.
<ef-timegroup mode="fixed" duration="5s" class="w-[1920px] h-[1080px] bg-black flex items-center justify-center">
<ef-text class="text-white text-6xl font-bold">Hello, Editframe!</ef-text>
</ef-timegroup>1. Create a project
npm create @editframe@latestWhen prompted, enter a project directory name such as my-video, then choose a template:
htmluses web components. Its composition is inindex.htmland its Editframe setup is imported bysrc/index.js.reactuses TypeScript and React. Its composition is insrc/Video.tsx, andsrc/main.tsxmounts it withTimelineRoot.
The scaffold installs the dependencies and creates a start script for the preview. To choose the HTML template without prompts, use the CLI's supported flags:
npm create @editframe@latest -- html -d my-video -y --skip-skills2. Make one visible edit
Change the starter text from Your video starts here to Hello, Editframe!:
- In the
htmltemplate, edit the<ef-text>inindex.html. - In the
reacttemplate, edit the<Text>insrc/Video.tsx.
The scaffold already contains the imports, a 1920 × 1080 composition, and a five-second timegroup. Keep those pieces in place for this first pass.
The two edits are the same change in each template:
<!-- index.html -->
<ef-text duration="5s" class="text-white text-4xl">Hello, Editframe!</ef-text>// src/Video.tsx
<Text duration="5s" className="text-white text-4xl">
Hello, Editframe!
</Text>3. Preview the composition
cd my-video
npm startThe preview opens in a browser with hot reload and a timeline scrubber. Save your edit and confirm that the canvas shows Hello, Editframe!. Use the scrubber to inspect the composition at different times.
4. Render an MP4
From the project root, run:
npx editframe render -o output.mp4The render command uses the project's index.html by default and writes output.mp4 to the current directory. Confirm that the file exists and is non-empty:
ls -lh output.mp4Opening the file should show a five-second 1920 × 1080 MP4 with Hello, Editframe! on screen.
Troubleshooting
- If
npm startcannot find the project dependencies, runnpm installfrommy-video. The scaffold installs them unless you used its--skip-installoption. - If local rendering reports that FFmpeg is missing, install FFmpeg and make sure
ffmpegis available on yourPATH, then rerun the render command. - If the preview is blank, confirm that the root timegroup still has its
1920px×1080pxclasses and that the text is inside the timegroup inindex.htmlorsrc/Video.tsx.
Next steps
- Build timelines with the time model — durations,
fixed,contain,fit, sequences, overlaps, and FPS. - Add video — video sources and trimming; continue with
ef-audioandef-imagefor other media. - Add editor controls — playback, scrubbing, volume, and fullscreen controls.
- Build an editor — wire a composition to a hierarchy, canvas, timeline, and controls.
- Automate rendering — validate a token, create a cloud render, and retrieve its result.
- Render in the browser — export with
renderToVideoand track progress. - Render through the API — create server-side render jobs and retrieve their output.