Repository navigation
v0.19.0
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.
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
