Skip to content

v0.19.0

Choose a tag to compare

@shreyaskarnik shreyaskarnik released this 19 Mar 23:13
· 307 commits to main since this release

Post-Export Camera Moves

zoomTo(page, target, { narration }) now records zoom effects during Playwright recording and applies them as ffmpeg zoompan filters during export. Frame-exact, overlay-safe — no DOM manipulation.

zoom-demo

zoomTo(page, '#code-block', {
  narration,
  scale: 1.35,
  duration: 5000,
  fadeIn: 1000,
  holdMs: 3000,
});

Camera moves are written to .timing.camera-moves.json, shifted for head trim, scaled for deviceScaleFactor, and applied after transitions in the filter graph. Works across pipeline, standalone export, and preview Export button.

Viewport-Native Variants

Re-record at different viewports for pixel-perfect multi-format. CSS handles layout — no blur-fill artifacts.

export: {
  variants: [
    { name: 'vertical', video: { width: 1080, height: 1920 } },
    { name: 'square',   video: { width: 1080, height: 1080 } },
  ]
}

Blur-Fill for Multi-Format Export

9:16 and 1:1 exports use blurred background fill instead of hard center-crop (fallback when variants aren't configured).

Audio Loudness Normalization

export: { audio: { loudnorm: true } }

EBU R128 normalization (-16 LUFS). Works alongside transitions and camera moves.

VS Code Playwright Integration

Demos run directly from VS Code's test panel — overlay manifests auto-discovered from demos/<filename>.scenes.json. Write → click play → run pipeline for final video.

Other

  • Tauri desktop app recording (nteract mock approach documented)
  • FFmpeg effects roadmap with effort breakdown and API shapes
  • Showcase CTA centered with min-height: 100vh + flexbox
  • Preview Export includes camera moves + loudnorm