Framework comparison

Odori, Remotion, and HyperFrames let you define videos in code. Their timeline and project conventions differ.

HyperFramesRemotionOdori
AuthoringHTML, CSS, and JavaScriptReactReact
TimelineHTML timing attributesSequence or SeriesScene and Clip
TimingSeconds or relative clip referencesFrame countsSeconds or explicit frame strings
Entry pointHTML compositionRegistered CompositionDiscovered video.tsx
Shared formatComposition attributesComposition props and shared codeInherited layout.tsx

HyperFrames defines timing with data-start and data-duration. A start can reference another clip, so later clips move when its duration changes. See its timing attributes and composition format.

Remotion supports explicit placement with Sequence and sequential placement with Series. Its Composition component registers a video's format, duration, and input props.

Odori discovers video.tsx files and inherits format and brand settings from layouts. Use <Scene> for ordered sections and <Clip> for overlays. For example, this video places a watermark over two scenes:

<Video>
  <Scene id="opening" duration="4s">
    <TitleReveal title="Introducing our new editor" />
  </Scene>
  <Scene id="end" duration="3s">
    <EndCard title="Available today" />
  </Scene>
  <Clip from="1s">
    <Watermark />
  </Clip>
</Video>

Odori also includes an editable component registry, preview fixtures, and checks for timing, blank frames, overflow, and text size. See project structure, components, and the CLI reference.