| 1 | import type { EngineCapabilities } from '@html-video/core'; |
| 2 | |
| 3 | /** |
| 4 | * Static capability declaration for Remotion (RFC-08 §1, cross-checked |
| 5 | * 2026-06-06 against remotion@4.0.x). |
| 6 | * |
| 7 | * `licensing: 'commercial-restricted'` is a FIRST-CLASS field here, not a |
| 8 | * footnote: Remotion is free for individuals / companies ≤3 people / non-profit, |
| 9 | * but 4+ person teams pay. The agent reads this to steer "free / cheap" jobs |
| 10 | * toward the free-osi engines (hyperframes / revideo) and only suggest Remotion |
| 11 | * when the team already uses React or needs Lambda scale. That honesty is the |
| 12 | * meta-layer's advantage over a Remotion-only tool — surface it, don't hide it. |
| 13 | */ |
| 14 | export const capabilities: EngineCapabilities = { |
| 15 | // Phase 1 bridges html-css-gsap frames; Phase 2 (RFC-09) adds react-tsx natives. |
| 16 | paradigms: ['react-tsx', 'html-css-gsap'], |
| 17 | outputFormats: ['mp4', 'webm', 'gif', 'png-sequence'], |
| 18 | // Remotion is bounded by Chrome's 2^29-px single-image cap; 8K frames are fine. |
| 19 | maxResolution: { width: 7680, height: 4320 }, |
| 20 | alpha: true, |
| 21 | audio: 'multi', |
| 22 | subtitles: ['burn-in', 'sidecar'], |
| 23 | // Deterministic local chromium, and one-line scale-out to Lambda / Cloud Run. |
| 24 | renderTarget: ['local-chromium', 'lambda', 'cloud-run'], |
| 25 | licensing: 'commercial-restricted', |
| 26 | renderSpeedHint: { |
| 27 | resolution: '1080p', |
| 28 | durationSec: 10, |
| 29 | fps: 30, |
| 30 | // Deterministic frame-by-frame is slower than realtime screen capture but |
| 31 | // never drops frames; rough order-of-magnitude only. |
| 32 | estimatedRenderSec: 40, |
| 33 | }, |
| 34 | bestFor: [ |
| 35 | 'data-driven', |
| 36 | 'long-form-narration', |
| 37 | 'spring-physics', |
| 38 | 'parametric-batch', |
| 39 | 'lambda-scale', |
| 40 | 'react-ecosystem', |
| 41 | ], |
| 42 | weaknesses: [ |
| 43 | 'commercial-license-for-teams', |
| 44 | 'slower-than-realtime-capture', |
| 45 | 'bundle-overhead', |
| 46 | 'css-gsap-needs-time-driver-bridge', |
| 47 | ], |
| 48 | }; |
| 49 |