VideoFlowcodeGitHubTry itCoreRenderersReact Video EditorPlaygroundExamplesDocscodeGitHubTry it
Comparison

VideoFlow vs. FFmpeg — programmatic video without the shell scripts.

FFmpeg is powerful. Its filtergraph syntax is also notoriously write-once, read-never. VideoFlow lets you compose the same kinds of videos in typed code and portable JSON — then use FFmpeg as the workhorse underneath where it counts.

VideoFlowFFmpeg CLI
Learning curveFluent, typed APIDense flag syntax, filtergraph DSL
ComposabilityJSON is data — version, diff, templateShell strings, often copy-pasted
Preview before renderLive DOM preview, frame-accurateRe-render or trial-and-error
Audio mixingDeclarative, per-layerComplex filtergraph plumbing
Cross-platformBrowser + Node + serverWherever ffmpeg binary lives
TypingFull TS types for every propNone
Same job, different shape

A fade-in and a caption — two ways.

FFmpeg

ffmpeg -i bg.mp4 -vf \
  "drawtext=text='Hello':fontsize=120:\
  x=(w-text_w)/2:y=(h-text_h)/2:\
  alpha='if(lt(t,1),t,1)'" out.mp4

VideoFlow

const $ = new VideoFlow();
$.addVideo({}, { source: 'bg.mp4' });
const t = $.addText({ text: 'Hello', fontSize: 4 });
t.fadeIn('1s');
await $.renderVideo();
FAQ

Frequently asked.

Does VideoFlow use FFmpeg under the hood?

No — by default the server renderer encodes via WebCodecs + MediaBunny inside headless Chromium, so ffmpeg is not required. You can opt in with { ffmpeg: true } when you need custom encoder flags.

Can I still drop into a filtergraph?

Not directly — VideoFlow abstracts the filtergraph. For most production videos you will not need to.

What about performance?

Server rendering is frame-by-frame and deterministic. Browser rendering is on-device and cancellable.

Try the playgroundGitHub
VideoFlow

Open-source toolkit for composing videos from code.

Product

CoreRenderersReact Video EditorPlayground

Learn

DocsAPI referenceExamplesvs. Remotionvs. FFmpeg

Project

GitHubLicenseContactTermsPrivacy

From the blog

All posts →Automating Social Media Captions: A Developer's Guide to Frame-Perfect SubtitlesMastering Programmatic Video Transitions: A Developer's GuideThe Video Markdown Pattern: Turning Static Content into Automated MP4sZero-Cost Video Rendering: How to Export MP4s Directly in the BrowserBuilding an AI Video Agent: How to Generate MP4s from LLM Prompts with VideoJSONAutomating E-commerce: How to Generate 1,000 Product Videos with TypeScriptThe Blueprint for Automated Video: Building a Reusable Component LibraryBuilding a Video-First SaaS: Embed a Multi-Track Editor in 10 Lines
© 2026 VideoFlow. Apache-2.0 core.