使用 Remotion 创建动画风格的 WhatsApp 聊天视频。完美适配 X、TikTok、Instagram Reels 等平台。
代码 格式此技能需要先安装 Remotion 最佳实践 技能包:
npx skills add remotion-dev/skills -a claude-code -y -g
cd ~/Projects/remotion-test
编辑 src/WhatsAppVideo.tsx 中的对话内容,然后渲染视频:
npx remotion render WhatsAppDemo out/my-video.mp4 --concurrency=4
编辑 src/WhatsAppVideo.tsx 中的 ChatMessages 组件:
// 接收消息(来自助手)
<Message
text="在此输入消息内容"
isOutgoing={false}
time="8:40 AM"
delay={125} // 消息出现的帧数(30fps)
/>
// 发送消息(来自用户)
<Message
text="您发送的消息"
isOutgoing={true}
time="8:41 AM"
delay={200}
showCheck={true}
/>
// 输入指示器(显示 "..." 气泡)
<TypingIndicator delay={80} duration={45} />
delay={30} = 在第 1 秒出现delay={60} = 在第 2 秒出现duration={45} = 持续 1.5 秒典型流程:
1. 第一条消息:delay={20} (~0.7秒)
2. 输入指示器:delay={80}, duration={45}
3. 回复消息:delay={125}(输入结束后)
4. 下一个输入:delay={175}, duration={45}
5. 下一个回复:delay={220}
在 ChatMessages 中,根据消息数量更新滚动插值:
const scrollAmount = interpolate(
frame,
[scrollStart, scrollStart + 60, messageFrame, lastFrame],
[0, firstScroll, firstScroll, finalScroll],
{ extrapolateLeft: "clamp", extrapolateRight: "clamp" }
);
如果消息溢出屏幕,请增加滚动值。
消息支持以下格式:
- 粗体:**粗体文本**
- 代码:用反引号包裹文本
- 换行:在字符串中使用 \n
- 表情符号:直接使用 🎬
在 ChatHeader 组件中修改:
- 名称:将 Pokey 🐡 改为您的助手名称
- 状态:online
- 头像表情符号
在 Root.tsx 中,设置 durationInFrames 以匹配视频长度:
- 计算到最后一条消息出现的帧数 + 约 100 帧缓冲
- 30fps 下:450 帧 = 15 秒
# 标准渲染
npx remotion render WhatsAppDemo out/video.mp4 --concurrency=4
# 更高质量
npx remotion render WhatsAppDemo out/video.mp4 --codec h264 --crf 18
# 浏览器预览
npm run dev
编辑 Root.tsx 以更改尺寸:
| 平台 | 尺寸 | 画面比例 | 使用场景 |
|---|---|---|---|
| X/Instagram 信息流 | 1080×1350 | 4:5 | 默认设置,可见性最佳 |
| X/TikTok/Reels | 1080×1920 | 9:16 | 全竖屏 |
| X 方形 | 1080×1080 | 1:1 | 通用格式 |
| YouTube/X 横屏 | 1920×1080 | 16:9 | 横向视频 |
~/Projects/remotion-test/
├── src/
│ ├── WhatsAppVideo.tsx # 主视频组件
│ └── Root.tsx # 合成配置
├── public/
│ └── sounds/
│ ├── pop.mp3 # 消息接收音效
│ └── send.mp3 # 消息发送音效
└── out/ # 渲染的视频文件
使用 Sequence 触发音效:
<Sequence from={125}>
<Audio src={staticFile("sounds/pop.mp3")} volume={0.5} />
</Sequence>
npm run dev 查看实时变化只需描述对话内容:
- "WhatsApp 视频:我请你 [做某事]"
- "制作一个展示 [对话内容] 的聊天视频"
Pokey 将编写消息、设置时间、渲染并发送 MP4 文件。