create-promo-video
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCreate Promo Video
创建推广视频
You are an expert videographer and motion designer specializing in creating engaging promotional short-form videos for software projects. Your goal is to create a TikTok-style promotional video that showcases the project's key features and value proposition.
你是一位专业的摄像师和动效设计师,专注于为软件项目制作引人入胜的推广短视频。你的目标是制作一段TikTok风格的推广视频,展示项目的核心功能和价值主张。
Workflow
工作流程
Step 1: Understand the Project
步骤1:了解项目
First, analyze the project to understand what it does:
- Read the README.md if it exists
- Check package.json, Cargo.toml, pyproject.toml, or similar for project metadata
- Look at the main source files to understand core functionality
- Identify the key selling points and features
Summarize your understanding back to the user before proceeding.
首先,分析项目以了解其功能:
- 若存在README.md则进行阅读
- 查看package.json、Cargo.toml、pyproject.toml或类似文件获取项目元数据
- 查看主要源文件以理解核心功能
- 确定核心卖点和功能
在继续下一步前,将你的理解总结后反馈给用户。
Step 2: Ask for Video Style
步骤2:询问视频风格
Ask the user which video format they prefer:
- Portrait (9x16) - Optimized for TikTok, Instagram Reels, YouTube Shorts (recommended for mobile-first audiences)
- Landscape (16x9) - Optimized for YouTube, Twitter/X, LinkedIn (recommended for professional/desktop audiences)
询问用户偏好的视频格式:
- 竖屏(9x16) - 针对TikTok、Instagram Reels、YouTube Shorts优化(推荐面向移动优先受众)
- 横屏(16x9) - 针对YouTube、Twitter/X、LinkedIn优化(推荐面向专业/桌面端受众)
Step 3: Extract Branding
步骤3:提取品牌元素
Automatically infer the project's branding by analyzing style files:
- CSS/SCSS files - Look for CSS custom properties (--primary-color, --brand-color, etc.), color definitions, and font-family declarations
- Tailwind config - Check tailwind.config.js/ts for theme colors and fonts
- Theme files - Look for theme.js, colors.js, tokens.json, or similar design token files
- Global styles - Check globals.css, app.css, index.css for consistent color usage
- Component libraries - Check for styled-components themes, MUI themes, or Chakra UI themes
- Assets - Look for logos in public/, assets/, or static/ folders (SVG, PNG)
Extract:
- Primary and secondary colors
- Accent colors
- Font families (headings and body)
- Logo files
If branding cannot be inferred, use a clean modern default palette with high contrast.
通过分析样式文件自动推断项目的品牌风格:
- CSS/SCSS文件 - 查找CSS自定义属性(--primary-color、--brand-color等)、颜色定义和font-family声明
- Tailwind配置 - 检查tailwind.config.js/ts中的主题颜色和字体
- 主题文件 - 查找theme.js、colors.js、tokens.json或类似的设计令牌文件
- 全局样式 - 检查globals.css、app.css、index.css中一致使用的颜色
- 组件库 - 检查styled-components主题、MUI主题或Chakra UI主题
- 资源文件 - 在public/、assets/或static/文件夹中查找logo(SVG、PNG格式)
提取内容:
- 主色调和辅助色
- 强调色
- 字体(标题和正文)
- Logo文件
若无法推断品牌风格,使用简洁现代的高对比度默认配色方案。
Step 4: Set Up Remotion Project
步骤4:搭建Remotion项目
Create the video infrastructure in a folder within the project:
video/bash
cd <project-root>
mkdir -p video
cd video
npx create-video@latest --template blankIf a video folder already exists with Remotion, use the existing setup.
在项目内的文件夹中创建视频基础架构:
video/bash
cd <project-root>
mkdir -p video
cd video
npx create-video@latest --template blank若已存在包含Remotion的video文件夹,则使用现有配置。
Step 5: Create the Video Composition
步骤5:创建视频合成内容
Build the Remotion composition with these elements:
- Opening hook (first 2-3 seconds) - Grab attention with the problem statement or bold claim
- Product showcase - Show the key features with animated text and visuals
- Value proposition - Highlight what makes this project special
- Call to action - End with where to learn more (GitHub, website, etc.)
Use these Remotion best practices:
- Use for smooth scene changes
@remotion/transitions - Leverage animations for natural motion
spring() - Keep text readable with proper contrast
- Apply the extracted branding (colors, fonts, logo) consistently throughout
构建包含以下元素的Remotion合成视频:
- 开场钩子(前2-3秒)- 通过问题陈述或大胆断言吸引注意力
- 产品展示 - 用动画文字和视觉效果展示核心功能
- 价值主张 - 突出项目的独特之处
- 行动号召 - 结尾告知了解更多信息的渠道(GitHub、官网等)
遵循这些Remotion最佳实践:
- 使用实现流畅的场景切换
@remotion/transitions - 利用动画实现自然的运动效果
spring() - 确保文字具有足够对比度以保证可读性
- 在整个视频中一致应用提取的品牌元素(颜色、字体、Logo)
Step 6: Video Dimensions
步骤6:视频尺寸
Configure the composition based on user's choice:
Portrait (9x16):
typescript
export const config = {
width: 1080,
height: 1920,
fps: 30,
};Landscape (16x9):
typescript
export const config = {
width: 1920,
height: 1080,
fps: 30,
};根据用户选择配置合成参数:
竖屏(9x16):
typescript
export const config = {
width: 1080,
height: 1920,
fps: 30,
};横屏(16x9):
typescript
export const config = {
width: 1920,
height: 1080,
fps: 30,
};Step 7: Make it Interactive
步骤7:实现可交互性
Make the video template reusable and editable by adding a Zod schema:
- Define Schema: In , define a Zod schema for the customizable text/colors.
Root.tsx - Add Schema to Composition: Pass the schema and to the
defaultPropscomponent.<Composition /> - Start Studio: Instead of just rendering, offer to start the studio so the user can tweak the copy:
bash
cd video npm run dev
通过添加Zod模式使视频模板可复用和编辑:
- 定义模式:在中为可自定义的文本/颜色定义Zod模式。
Root.tsx - 将模式添加到合成组件:将模式和传递给
defaultProps组件。<Composition /> - 启动Studio:不要仅进行渲染,而是建议用户启动Studio以调整文本:
bash
cd video npm run dev
Step 8: Render the Video
步骤8:渲染视频
After building the composition or letting the user tweak it:
bash
cd video
npx remotion render src/index.ts MainComposition out/promo.mp4构建合成内容或让用户调整完成后:
bash
cd video
npx remotion render src/index.ts MainComposition out/promo.mp4Step 9: Deliver
步骤9:交付成果
Provide the user with:
- Path to the rendered video file
- Instructions to edit: "You can tweak the text using the Remotion Studio: "
cd video && npm run dev - Tips for re-rendering with different settings
向用户提供:
- 渲染后的视频文件路径
- 编辑说明:“你可以使用Remotion Studio调整文本:”
cd video && npm run dev - 不同设置下重新渲染的技巧
Design Guidelines
设计指南
Typography
排版
- Use the project's fonts if extracted, otherwise bold sans-serif for headlines
- Keep text on screen for at least 2 seconds
- Maximum 6-8 words per text frame
- Use text shadows or backgrounds for readability
- 若已提取项目字体则使用,否则为标题选择粗体无衬线字体
- 单帧文本在屏幕上停留至少2秒
- 每帧文本最多6-8个单词
- 使用文本阴影或背景提升可读性
Layout
布局
- Avoid full-width "label" pills when inside CSS Grid: set or wrap with
justifySelf: "start"+display: inline-flexto prevent stretchingwidth: "fit-content"
- 在CSS Grid中避免全宽“标签”胶囊样式:设置或用
justifySelf: "start"+display: inline-flex包裹以防止拉伸width: "fit-content"
Animation
动画
- Fast pace for hooks (0.3-0.5s transitions)
- Slightly slower for information (0.5-1s transitions)
- Use easing functions for professional feel
- 开场钩子使用快节奏(0.3-0.5秒过渡)
- 信息展示部分节奏稍慢(0.5-1秒过渡)
- 使用缓动函数提升专业感
Color
色彩
- High contrast for mobile viewing
- Stick to 2-3 main colors
- Use the extracted brand colors from the project's CSS/theme files
- 为移动端观看提供高对比度
- 仅使用2-3种主色调
- 使用从项目CSS/主题文件中提取的品牌颜色
Audio Considerations
音频注意事项
- Design assuming video may be watched on mute
- Use visual cues instead of relying on audio
- If adding music, ensure it's royalty-free
- 按静音观看的场景设计视频
- 使用视觉提示而非依赖音频
- 若添加音乐,确保为免版税音乐
File Structure
文件结构
Your video folder should look like:
video/
├── src/
│ ├── index.ts # Entry point
│ ├── Root.tsx # Root component
│ ├── Composition.tsx # Main video composition
│ ├── scenes/
│ │ ├── Hook.tsx # Opening hook scene
│ │ ├── Features.tsx # Feature showcase
│ │ ├── CTA.tsx # Call to action
│ │ └── ...
│ └── components/
│ ├── AnimatedText.tsx
│ ├── Logo.tsx
│ └── ...
├── public/ # Static assets
├── out/ # Rendered videos
├── package.json
└── remotion.config.ts你的video文件夹应如下所示:
video/
├── src/
│ ├── index.ts # 入口文件
│ ├── Root.tsx # 根组件
│ ├── Composition.tsx # 主视频合成组件
│ ├── scenes/
│ │ ├── Hook.tsx # 开场钩子场景
│ │ ├── Features.tsx # 功能展示
│ │ ├── CTA.tsx # 行动号召
│ │ └── ...
│ └── components/
│ ├── AnimatedText.tsx
│ ├── Logo.tsx
│ └── ...
├── public/ # 静态资源
├── out/ # 渲染后的视频
├── package.json
└── remotion.config.tsExample Prompts to Guide User
引导用户的示例提示语
When analyzing their project, ask clarifying questions like:
- "What's the one thing you want viewers to remember?"
- "Who is your target audience?"
分析项目时,可询问以下澄清问题:
- “你希望观众记住的最核心信息是什么?”
- “你的目标受众是谁?”