返回 html-video
capabilities.ts
根目录 / packages / adapter-remotion / src / capabilities.ts
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
49 lines TYPESCRIPT