[ PROMPT_NODE_27784 ]
compositions
[ SKILL_DOCUMENTATION ]
一个 `` 定义了可渲染视频的组件、宽度、高度、帧率 (fps) 和时长。
它通常放置在 `src/Root.tsx` 文件中。
tsx
import { Composition } from "remotion";
import { MyComposition } from "./MyComposition";
export const RemotionRoot = () => {
return (
);
};
## 默认属性 (Default Props)
传递 `defaultProps` 为你的组件提供初始值。
值必须是 JSON 可序列化的(支持 `Date`、`Map`、`Set` 和 `staticFile()`)。
tsx
import { Composition } from "remotion";
import { MyComposition, MyCompositionProps } from "./MyComposition";
export const RemotionRoot = () => {
return (
);
};
使用 `type` 声明属性而不是 `interface`,以确保 `defaultProps` 的类型安全。
## 文件夹 (Folders)
使用 `` 在侧边栏中组织合成。
文件夹名称只能包含字母、数字和连字符。
tsx
import { Composition, Folder } from "remotion";
export const RemotionRoot = () => {
return (
>
);
};
## 静态帧 (Stills)
使用 `<Still>` 处理单帧图像。它不需要 `durationInFrames` 或 `fps`。
tsx
import { Still } from "remotion";
import { Thumbnail } from "./Thumbnail";
export const RemotionRoot = () => {
return (
);
};
## 计算元数据 (Calculate Metadata)
使用 `calculateMetadata` 根据数据动态调整尺寸、时长或属性。
tsx
import { Composition, CalculateMetadataFunction } from "remotion";
import { MyComposition, MyCompositionProps } from "./MyComposition";
const calculateMetadata: CalculateMetadataFunction = async ({
props,
abortSignal,
})