remotion-asset-coordinator
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseRemotion Asset Coordinator
Remotion资产协调器
Streamlines the asset preparation workflow from motion design specs to production-ready files. Identifies requirements, recommends sources, guides optimization, and generates proper import code.
简化从动效设计规范到可投产文件的资产准备工作流,可识别需求、推荐资源渠道、指导优化操作,并生成规范的导入代码。
What This Skill Does
该技能的功能
Coordinates the complete asset lifecycle:
- Requirement extraction — Parse specs for all asset needs
- Source recommendations — Suggest free/paid asset sources
- Format guidance — Recommend optimal formats for each asset type
- Preparation workflows — Step-by-step asset prep instructions
- Import code generation — Create validated staticFile imports
- Quality validation — Verify assets meet production standards
协调完整的资产生命周期:
- 需求提取 — 解析规范,识别全部资产需求
- 资源渠道推荐 — 提供免费/付费的资产来源建议
- 格式指导 — 为各类资产推荐最优格式
- 准备工作流 — 分步骤的资产准备操作指引
- 导入代码生成 — 创建经过验证的staticFile导入代码
- 质量校验 — 验证资产是否符合生产标准
Input/Output Formats
输入/输出格式
Input Format: VIDEO_SPEC.md OR CODE_SCAFFOLD.md
输入格式: VIDEO_SPEC.md 或 CODE_SCAFFOLD.md
This skill accepts either:
Option 1: VIDEO_SPEC.md (from )
/motion-designermarkdown
undefined该技能接受以下任意一种输入:
选项1: VIDEO_SPEC.md (来自 )
/motion-designermarkdown
undefinedVideo Title
Video Title
Assets Required
Assets Required
Images
Images
- Logo (800x800, transparent background)
- Product photo (1920x1080)
- Logo (800x800, transparent background)
- Product photo (1920x1080)
Audio
Audio
- Background music (full duration, 0.4 volume)
- Whoosh sound effect (5s mark, 0.6 volume)
- Background music (full duration, 0.4 volume)
- Whoosh sound effect (5s mark, 0.6 volume)
Fonts
Fonts
- Inter (weights: 400, 600, 700)
**Option 2: CODE_SCAFFOLD.md** (from `/remotion-spec-translator`)
```markdown- Inter (weights: 400, 600, 700)
**选项2: CODE_SCAFFOLD.md** (来自 `/remotion-spec-translator`)
```markdownTODO Markers
TODO Markers
- Assets Required
- Add (800x800)
public/logo.png - Add
public/audio/background.mp3 - Add
public/audio/whoosh.mp3
- Add
undefined- Assets Required
- Add (800x800)
public/logo.png - Add
public/audio/background.mp3 - Add
public/audio/whoosh.mp3
- Add
undefinedOutput Format: ASSET_MANIFEST.md
输出格式: ASSET_MANIFEST.md
Generates a comprehensive asset preparation manifest:
markdown
undefined生成完整的资产准备清单:
markdown
undefinedAsset Manifest: [Video Title]
Asset Manifest: [Video Title]
Status Overview
Status Overview
- 🔴 Not Started: 3 assets
- 🟡 In Progress: 0 assets
- 🟢 Ready: 0 assets
Progress: 0/3 assets ready
- 🔴 Not Started: 3 assets
- 🟡 In Progress: 0 assets
- 🟢 Ready: 0 assets
Progress: 0/3 assets ready
Required Assets
Required Assets
Images (2 required)
Images (2 required)
1. Logo
1. Logo
-
Status: 🔴 Not Started
-
File Path:
public/images/logo.png -
Specifications:
- Format: PNG (transparency required)
- Dimensions: 800x800 pixels (2x for retina)
- Display size: 400x400px
- File size target: < 200KB
-
Source Recommendations:
- Option 1: Export from Figma/design tool
- Option 2: Create in Photoshop/Illustrator
- Optimization: Use pngquant or tinypng.com
-
Preparation Steps:
- Export at 800x800 resolution
- Ensure transparent background
- Optimize with
pngquant --quality=80-95 logo.png - Verify file size < 200KB
- Save to
public/images/logo.png
-
Import Code:typescript
import { Img, staticFile } from 'remotion'; <Img src={staticFile('images/logo.png')} alt="Logo" style={{ width: 400, height: 400, }} />
-
Status: 🔴 Not Started
-
File Path:
public/images/logo.png -
Specifications:
- Format: PNG (transparency required)
- Dimensions: 800x800 pixels (2x for retina)
- Display size: 400x400px
- File size target: < 200KB
-
Source Recommendations:
- Option 1: Export from Figma/design tool
- Option 2: Create in Photoshop/Illustrator
- Optimization: Use pngquant or tinypng.com
-
Preparation Steps:
- Export at 800x800 resolution
- Ensure transparent background
- Optimize with
pngquant --quality=80-95 logo.png - Verify file size < 200KB
- Save to
public/images/logo.png
-
Import Code:typescript
import { Img, staticFile } from 'remotion'; <Img src={staticFile('images/logo.png')} alt="Logo" style={{ width: 400, height: 400, }} />
2. Product Photo
2. Product Photo
-
Status: 🔴 Not Started
-
File Path:
public/images/product.jpg -
Specifications:
- Format: JPEG (no transparency needed)
- Dimensions: 1920x1080 pixels
- Quality: 85-90%
- File size target: < 500KB
-
Source Recommendations:
- Option 1: Unsplash (free, high-quality) - https://unsplash.com
- Option 2: Pexels (free) - https://pexels.com
- Option 3: Custom photography
-
Preparation Steps:
- Download or shoot at 1920x1080+
- Edit/crop to exact 1920x1080
- Export as JPEG 85-90% quality
- Verify file size < 500KB
- Save to
public/images/product.jpg
-
Import Code:typescript
import { Img, staticFile } from 'remotion'; <Img src={staticFile('images/product.jpg')} style={{ width: '100%', height: '100%', objectFit: 'cover', }} />
-
Status: 🔴 Not Started
-
File Path:
public/images/product.jpg -
Specifications:
- Format: JPEG (no transparency needed)
- Dimensions: 1920x1080 pixels
- Quality: 85-90%
- File size target: < 500KB
-
Source Recommendations:
- Option 1: Unsplash (free, high-quality) - https://unsplash.com
- Option 2: Pexels (free) - https://pexels.com
- Option 3: Custom photography
-
Preparation Steps:
- Download or shoot at 1920x1080+
- Edit/crop to exact 1920x1080
- Export as JPEG 85-90% quality
- Verify file size < 500KB
- Save to
public/images/product.jpg
-
Import Code:typescript
import { Img, staticFile } from 'remotion'; <Img src={staticFile('images/product.jpg')} style={{ width: '100%', height: '100%', objectFit: 'cover', }} />
Audio (2 required)
Audio (2 required)
3. Background Music
3. Background Music
-
Status: 🔴 Not Started
-
File Path:
public/audio/music/background.mp3 -
Specifications:
- Format: MP3
- Duration: 30 seconds
- Bitrate: 192-256 kbps
- Sample rate: 44.1 kHz or 48 kHz
- Channels: Stereo
-
Source Recommendations:
- Option 1: YouTube Audio Library (free) - https://studio.youtube.com
- Option 2: Incompetech (free, attribution) - https://incompetech.com
- Option 3: Epidemic Sound (paid) - https://epidemicsound.com
-
Preparation Steps:
- Download/purchase 30s music track
- Trim to exactly 30 seconds if needed
- Convert to MP3 if needed:
ffmpeg -i input.wav -b:a 192k output.mp3 - Apply fade out at end if needed
- Save to
public/audio/music/background.mp3
-
Import Code:typescript
import { Audio, staticFile, useVideoConfig } from 'remotion'; const { durationInFrames } = useVideoConfig(); <Audio src={staticFile('audio/music/background.mp3')} volume={0.4} startFrom={0} endAt={durationInFrames} />
-
Status: 🔴 Not Started
-
File Path:
public/audio/music/background.mp3 -
Specifications:
- Format: MP3
- Duration: 30 seconds
- Bitrate: 192-256 kbps
- Sample rate: 44.1 kHz or 48 kHz
- Channels: Stereo
-
Source Recommendations:
- Option 1: YouTube Audio Library (free) - https://studio.youtube.com
- Option 2: Incompetech (free, attribution) - https://incompetech.com
- Option 3: Epidemic Sound (paid) - https://epidemicsound.com
-
Preparation Steps:
- Download/purchase 30s music track
- Trim to exactly 30 seconds if needed
- Convert to MP3 if needed:
ffmpeg -i input.wav -b:a 192k output.mp3 - Apply fade out at end if needed
- Save to
public/audio/music/background.mp3
-
Import Code:typescript
import { Audio, staticFile, useVideoConfig } from 'remotion'; const { durationInFrames } = useVideoConfig(); <Audio src={staticFile('audio/music/background.mp3')} volume={0.4} startFrom={0} endAt={durationInFrames} />
4. Whoosh Sound Effect
4. Whoosh Sound Effect
-
Status: 🔴 Not Started
-
File Path:
public/audio/sfx/whoosh.mp3 -
Specifications:
- Format: MP3
- Duration: 1-2 seconds
- Bitrate: 192 kbps
- Timing: Plays at 5s mark (frame 150 at 30fps)
-
Source Recommendations:
- Option 1: Freesound (free, Creative Commons) - https://freesound.org
- Option 2: Zapsplat (free, attribution) - https://zapsplat.com
- Option 3: AudioJungle (paid) - https://audiojungle.net
-
Preparation Steps:
- Download whoosh/transition sound effect
- Trim to 1-2 seconds
- Normalize volume if needed
- Convert to MP3:
ffmpeg -i input.wav -b:a 192k whoosh.mp3 - Save to
public/audio/sfx/whoosh.mp3
-
Import Code:typescript
import { Audio, Sequence, staticFile } from 'remotion'; <Sequence from={150} durationInFrames={60}> <Audio src={staticFile('audio/sfx/whoosh.mp3')} volume={0.6} /> </Sequence>
-
Status: 🔴 Not Started
-
File Path:
public/audio/sfx/whoosh.mp3 -
Specifications:
- Format: MP3
- Duration: 1-2 seconds
- Bitrate: 192 kbps
- Timing: Plays at 5s mark (frame 150 at 30fps)
-
Source Recommendations:
- Option 1: Freesound (free, Creative Commons) - https://freesound.org
- Option 2: Zapsplat (free, attribution) - https://zapsplat.com
- Option 3: AudioJungle (paid) - https://audiojungle.net
-
Preparation Steps:
- Download whoosh/transition sound effect
- Trim to 1-2 seconds
- Normalize volume if needed
- Convert to MP3:
ffmpeg -i input.wav -b:a 192k whoosh.mp3 - Save to
public/audio/sfx/whoosh.mp3
-
Import Code:typescript
import { Audio, Sequence, staticFile } from 'remotion'; <Sequence from={150} durationInFrames={60}> <Audio src={staticFile('audio/sfx/whoosh.mp3')} volume={0.6} /> </Sequence>
Fonts (1 required)
Fonts (1 required)
5. Inter Font
5. Inter Font
-
Status: 🟢 Ready (Google Font)
-
Weights Needed: 400 (Regular), 600 (Semibold), 700 (Bold)
-
Source: Google Fonts via @remotion/google-fonts
-
Installation:bash
npm install @remotion/google-fonts -
Import Code:typescript
import { loadFont } from '@remotion/google-fonts/Inter'; const { fontFamily } = loadFont({ weights: ['400', '600', '700'], }); <div style={{ fontFamily, fontWeight: 600, }}> Text content </div>
-
Status: 🟢 Ready (Google Font)
-
Weights Needed: 400 (Regular), 600 (Semibold), 700 (Bold)
-
Source: Google Fonts via @remotion/google-fonts
-
Installation:bash
npm install @remotion/google-fonts -
Import Code:typescript
import { loadFont } from '@remotion/google-fonts/Inter'; const { fontFamily } = loadFont({ weights: ['400', '600', '700'], }); <div style={{ fontFamily, fontWeight: 600, }}> Text content </div>
Directory Structure
目录结构
Create this folder structure in your project:
public/
├── images/
│ ├── logo.png # 🔴 Required
│ └── product.jpg # 🔴 Required
└── audio/
├── music/
│ └── background.mp3 # 🔴 Required
└── sfx/
└── whoosh.mp3 # 🔴 Required在项目中创建如下文件夹结构:
public/
├── images/
│ ├── logo.png # 🔴 必需
│ └── product.jpg # 🔴 必需
└── audio/
├── music/
│ └── background.mp3 # 🔴 必需
└── sfx/
└── whoosh.mp3 # 🔴 必需Quick Reference: Optimization Commands
快速参考:优化命令
Images
图片
bash
undefinedbash
undefinedOptimize PNG
优化PNG
pngquant --quality=80-95 input.png -o output.png
pngquant --quality=80-95 input.png -o output.png
Convert to JPEG
转换为JPEG
magick input.png -quality 90 output.jpg
magick input.png -quality 90 output.jpg
Resize image
调整图片尺寸
magick input.png -resize 1920x1080 output.png
undefinedmagick input.png -resize 1920x1080 output.png
undefinedAudio
音频
bash
undefinedbash
undefinedConvert to MP3
转换为MP3
ffmpeg -i input.wav -b:a 192k output.mp3
ffmpeg -i input.wav -b:a 192k output.mp3
Trim audio
裁剪音频
ffmpeg -i input.mp3 -ss 00:00:00 -t 00:00:30 -c copy output.mp3
ffmpeg -i input.mp3 -ss 00:00:00 -t 00:00:30 -c copy output.mp3
Normalize volume
音量标准化
ffmpeg -i input.mp3 -filter:a "volume=1.5" output.mp3
undefinedffmpeg -i input.mp3 -filter:a "volume=1.5" output.mp3
undefinedQuality Checklist
质量核对清单
Before marking assets as ready:
- All files in correct directories
- File names match import paths exactly
- Image dimensions correct (2x for retina if needed)
- Image formats appropriate (PNG for transparency, JPEG for photos)
- Image file sizes optimized (< 500KB ideal)
- Audio files in MP3 format
- Audio durations correct
- Audio bitrates appropriate (192-256 kbps)
- Fonts installed and imported correctly
- All staticFile() paths tested
将资产标记为就绪前,请确认:
- 所有文件都放在正确的目录下
- 文件名与导入路径完全匹配
- 图片尺寸正确(如需适配视网膜屏则提供2倍尺寸)
- 图片格式适配场景(需要透明背景用PNG,照片用JPEG)
- 图片文件大小已优化(理想值<500KB)
- 音频文件为MP3格式
- 音频时长正确
- 音频比特率合适(192-256 kbps)
- 字体已正确安装并导入
- 所有staticFile()路径已测试可用
Next Steps
后续步骤
- Gather assets using source recommendations above
- Prepare assets following preparation steps for each
- Validate quality using the checklist
- Update status to 🟢 Ready as assets are completed
- Implement code using provided import snippets
- Run to verify asset integration
/remotion-video-reviewer
**This document provides:**
- Complete asset inventory with specifications
- Source recommendations (free and paid)
- Step-by-step preparation workflows
- Ready-to-use import code snippets
- Quality validation checklist
- Progress tracking (🔴 🟡 🟢)
**Feeds into:** Developer implementation → `/remotion-video-reviewer` for quality check- 收集资产 参考上文的资源渠道推荐
- 准备资产 按照每个资产的准备步骤操作
- 质量校验 对照核对清单验证
- 更新状态 资产完成后标记为🟢就绪
- 实现代码 使用提供的导入代码片段
- 运行 验证资产集成效果
/remotion-video-reviewer
**本文件提供:**
- 完整的资产清单及规格说明
- 免费/付费资源渠道推荐
- 分步骤的准备工作流
- 开箱即用的导入代码片段
- 质量校验核对清单
- 进度追踪(🔴 🟡 🟢)
**流转至:** 开发实现 → 调用`/remotion-video-reviewer`进行质量检查Asset Categories
资产分类
Images
图片
Types:
- Product photos
- Background images
- Textures and patterns
- Icons and illustrations
- Logos and brand assets
Optimal Formats:
- PNG: Logos, icons, text overlays (transparency needed)
- JPEG: Photos, backgrounds (no transparency)
- SVG: Simple graphics, icons (scalable, small file size)
- WebP: Modern alternative, smaller file sizes
Recommendations:
typescript
// Logo (transparency required)
Format: PNG
Resolution: 2x intended display size (retina)
Example: 400x400 element → 800x800 PNG
// Product photo
Format: JPEG (85-90% quality)
Resolution: Exact or slightly larger than display
Example: 1920x1080 display → 1920x1080 or 2560x1440 JPEG
// Icon
Format: SVG (preferred) or PNG
Resolution: 2x display size if PNG类型:
- 产品照片
- 背景图片
- 纹理和图案
- 图标和插画
- Logo和品牌资产
最优格式:
- PNG: Logo、图标、文字叠加层(需要透明背景)
- JPEG: 照片、背景(不需要透明)
- SVG: 简单图形、图标(可缩放,文件体积小)
- WebP: 现代替代格式,文件体积更小
推荐规范:
typescript
// Logo(需要透明背景)
Format: PNG
Resolution: 2x intended display size (retina)
Example: 400x400 element → 800x800 PNG
// 产品照片
Format: JPEG (85-90% quality)
Resolution: Exact or slightly larger than display
Example: 1920x1080 display → 1920x1080 or 2560x1440 JPEG
// 图标
Format: SVG (preferred) or PNG
Resolution: 2x display size if PNGVideos
视频
Types:
- Background footage
- Product demos
- Screen recordings
- Transitions
Optimal Formats:
- MP4 (H.264): Best compatibility
- WebM: Modern, smaller files
- ProRes: High quality source footage
Recommendations:
typescript
// Background video
Format: MP4 (H.264)
Codec: H.264, High profile
Resolution: Match composition (1920x1080)
Bitrate: 5-10 Mbps
Frame rate: Match composition (30fps)
// Product demo
Format: MP4 (H.264)
Resolution: 1920x1080 or 3840x2160 (4K)
Bitrate: 10-20 Mbps
Alpha channel: Use ProRes 4444 if transparency needed类型:
- 背景素材
- 产品演示
- 录屏内容
- 转场动画
最优格式:
- MP4 (H.264): 兼容性最好
- WebM: 现代格式,文件更小
- ProRes: 高质量源素材
推荐规范:
typescript
// 背景视频
Format: MP4 (H.264)
Codec: H.264, High profile
Resolution: Match composition (1920x1080)
Bitrate: 5-10 Mbps
Frame rate: Match composition (30fps)
// 产品演示
Format: MP4 (H.264)
Resolution: 1920x1080 or 3840x2160 (4K)
Bitrate: 10-20 Mbps
Alpha channel: Use ProRes 4444 if transparency neededAudio
音频
Types:
- Background music
- Sound effects (SFX)
- Voiceover
- Ambient texture
Optimal Formats:
- MP3: Compressed, good compatibility
- WAV: Uncompressed, best quality
- AAC: Modern, better compression than MP3
Recommendations:
typescript
// Background music
Format: MP3 or AAC
Bitrate: 192-320 kbps
Sample rate: 44.1 kHz or 48 kHz
Channels: Stereo
// Sound effects
Format: WAV (for editing) → MP3 (for production)
Bitrate: 192 kbps (MP3)
Sample rate: 44.1 kHz
Channels: Stereo or Mono
Duration: Trim to exact needed length
// Voiceover
Format: WAV or MP3
Bitrate: 256-320 kbps
Sample rate: 48 kHz
Channels: Mono (sufficient for voice)类型:
- 背景音乐
- 音效(SFX)
- 语音旁白
- 环境音
最优格式:
- MP3: 压缩格式,兼容性好
- WAV: 未压缩,音质最佳
- AAC: 现代格式,压缩率优于MP3
推荐规范:
typescript
// 背景音乐
Format: MP3 or AAC
Bitrate: 192-320 kbps
Sample rate: 44.1 kHz or 48 kHz
Channels: Stereo
// 音效
Format: WAV (for editing) → MP3 (for production)
Bitrate: 192 kbps (MP3)
Sample rate: 44.1 kHz
Channels: Stereo or Mono
Duration: Trim to exact needed length
// 语音旁白
Format: WAV or MP3
Bitrate: 256-320 kbps
Sample rate: 48 kHz
Channels: Mono (sufficient for voice)Fonts
字体
Types:
- Google Fonts (free, web-safe)
- Custom fonts (brand-specific)
- System fonts (fallbacks)
Recommendations:
typescript
// Google Fonts (preferred)
Method: Import via @remotion/google-fonts
Weights: Only import needed weights
Example: 400 (regular), 600 (semibold), 700 (bold)
// Custom fonts
Format: WOFF2 (best), WOFF, TTF
Location: /public/fonts/
Import: Via CSS @font-face类型:
- Google Fonts(免费,web安全)
- 自定义字体(品牌专属)
- 系统字体(兜底方案)
推荐规范:
typescript
// Google Fonts(首选)
Method: Import via @remotion/google-fonts
Weights: Only import needed weights
Example: 400 (regular), 600 (semibold), 700 (bold)
// 自定义字体
Format: WOFF2 (best), WOFF, TTF
Location: /public/fonts/
Import: Via CSS @font-faceAsset Source Recommendations
资产资源渠道推荐
Free Sources
免费渠道
Images & Illustrations:
- Unsplash — High-quality photos (free, no attribution required)
- Pexels — Photos and videos (free)
- Pixabay — Photos, vectors, videos (free)
- unDraw — Customizable illustrations (free, SVG)
- Heroicons — Beautiful hand-crafted SVG icons (free)
Audio:
- Freesound — Sound effects library (Creative Commons)
- YouTube Audio Library — Music and SFX (free for commercial use)
- Incompetech — Royalty-free music (attribution required)
- Zapsplat — Free sound effects (attribution)
Fonts:
- Google Fonts — 1400+ free fonts (web-safe)
- Font Squirrel — Free fonts for commercial use
图片与插画:
- Unsplash — 高质量照片(免费,无需署名)
- Pexels — 照片和视频(免费)
- Pixabay — 照片、矢量图、视频(免费)
- unDraw — 可自定义插画(免费,SVG格式)
- Heroicons — 精美的手绘SVG图标(免费)
音频:
- Freesound — 音效库(知识共享协议)
- YouTube Audio Library — 音乐和音效(可免费商用)
- Incompetech — 免版税音乐(需要署名)
- Zapsplat — 免费音效(需要署名)
字体:
- Google Fonts — 1400+免费字体(web安全)
- Font Squirrel — 可商用免费字体
Paid/Premium Sources
付费/高级渠道
Images:
- Adobe Stock — Professional quality
- Shutterstock — Massive library
- Getty Images — Premium content
Audio:
- Epidemic Sound — High-quality music library
- Artlist — Unlimited music licensing
- AudioJungle — Individual tracks, affordable
Fonts:
- Adobe Fonts — Included with Creative Cloud
- MyFonts — Massive font marketplace
图片:
- Adobe Stock — 专业品质素材
- Shutterstock — 海量资源库
- Getty Images — premium内容
音频:
- Epidemic Sound — 高质量音乐库
- Artlist — 无限音乐授权
- AudioJungle — 单首曲目购买,价格实惠
字体:
- Adobe Fonts — 包含在Creative Cloud订阅中
- MyFonts — 大型字体交易市场
Asset Preparation Workflows
资产准备工作流
Image Preparation
图片准备
bash
undefinedbash
undefined1. Resize to appropriate dimensions
1. 调整到合适尺寸
magick input.png -resize 1920x1080 output.png
magick input.png -resize 1920x1080 output.png
2. Optimize PNG
2. 优化PNG
pngquant --quality=80-95 input.png -o optimized.png
pngquant --quality=80-95 input.png -o optimized.png
3. Convert to JPEG (if no transparency)
3. 转换为JPEG(无透明背景时)
magick input.png -quality 90 output.jpg
magick input.png -quality 90 output.jpg
4. Generate WebP (modern format)
4. 生成WebP(现代格式)
magick input.png -quality 85 output.webp
**Manual workflow:**
1. Open in Photoshop/GIMP/Figma
2. Resize to exact or 2x display dimensions
3. Export at appropriate quality
4. Verify file size (< 1MB for most images)magick input.png -quality 85 output.webp
**手动工作流:**
1. 在Photoshop/GIMP/Figma中打开文件
2. 调整到实际展示尺寸或2倍视网膜尺寸
3. 以合适质量导出
4. 验证文件大小(大部分图片建议<1MB)Video Preparation
视频准备
bash
undefinedbash
undefinedConvert to H.264 MP4
转换为H.264 MP4
ffmpeg -i input.mov -c:v libx264 -preset slow -crf 20 -c:a aac -b:a 192k output.mp4
ffmpeg -i input.mov -c:v libx264 -preset slow -crf 20 -c:a aac -b:a 192k output.mp4
Resize video
调整视频尺寸
ffmpeg -i input.mp4 -vf scale=1920:1080 -c:v libx264 -crf 20 output.mp4
ffmpeg -i input.mp4 -vf scale=1920:1080 -c:v libx264 -crf 20 output.mp4
Extract clip segment
提取视频片段
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:05 -c copy output.mp4
ffmpeg -i input.mp4 -ss 00:00:10 -t 00:00:05 -c copy output.mp4
Compress video
压缩视频
ffmpeg -i input.mp4 -c:v libx264 -crf 28 -c:a aac -b:a 128k compressed.mp4
undefinedffmpeg -i input.mp4 -c:v libx264 -crf 28 -c:a aac -b:a 128k compressed.mp4
undefinedAudio Preparation
音频准备
bash
undefinedbash
undefinedConvert to MP3
转换为MP3
ffmpeg -i input.wav -codec:a libmp3lame -b:a 192k output.mp3
ffmpeg -i input.wav -codec:a libmp3lame -b:a 192k output.mp3
Trim audio
裁剪音频
ffmpeg -i input.mp3 -ss 00:00:05 -t 00:00:10 -c copy trimmed.mp3
ffmpeg -i input.mp3 -ss 00:00:05 -t 00:00:10 -c copy trimmed.mp3
Adjust volume
调整音量
ffmpeg -i input.mp3 -filter:a "volume=1.5" louder.mp3
ffmpeg -i input.mp3 -filter:a "volume=1.5" louder.mp3
Fade in/out
添加淡入淡出
ffmpeg -i input.mp3 -af "afade=t=in:st=0:d=2,afade=t=out:st=28:d=2" faded.mp3
undefinedffmpeg -i input.mp3 -af "afade=t=in:st=0:d=2,afade=t=out:st=28:d=2" faded.mp3
undefinedImport Code Generation
导入代码生成
Images
图片
Spec requirement: "Logo.png (800x800)"
Generated code:
typescript
import { Img, staticFile } from 'remotion';
// In component
<Img
src={staticFile('logo.png')}
alt="Logo"
style={{
width: 400,
height: 400,
}}
/>规范要求: "Logo.png (800x800)"
生成代码:
typescript
import { Img, staticFile } from 'remotion';
// In component
<Img
src={staticFile('logo.png')}
alt="Logo"
style={{
width: 400,
height: 400,
}}
/>Videos
视频
Spec requirement: "Background video (1920x1080, 30fps)"
Generated code:
typescript
import { Video, staticFile } from 'remotion';
<Video
src={staticFile('background-video.mp4')}
style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
objectFit: 'cover',
}}
/>规范要求: "Background video (1920x1080, 30fps)"
生成代码:
typescript
import { Video, staticFile } from 'remotion';
<Video
src={staticFile('background-video.mp4')}
style={{
position: 'absolute',
top: 0,
left: 0,
width: '100%',
height: '100%',
objectFit: 'cover',
}}
/>Audio
音频
Spec requirement: "Background music (full duration)"
Generated code:
typescript
import { Audio, staticFile, useVideoConfig } from 'remotion';
// In component
const { durationInFrames } = useVideoConfig();
<Audio
src={staticFile('background-music.mp3')}
volume={0.5}
startFrom={0}
endAt={durationInFrames}
/>规范要求: "Background music (full duration)"
生成代码:
typescript
import { Audio, staticFile, useVideoConfig } from 'remotion';
// In component
const { durationInFrames } = useVideoConfig();
<Audio
src={staticFile('background-music.mp3')}
volume={0.5}
startFrom={0}
endAt={durationInFrames}
/>Fonts
字体
Spec requirement: "Inter font (400, 600, 700)"
Generated code:
typescript
import { loadFont } from '@remotion/google-fonts/Inter';
const { fontFamily } = loadFont({
weights: ['400', '600', '700'],
});
// In component
<div style={{
fontFamily,
fontWeight: 700,
}}>
Text content
</div>规范要求: "Inter font (400, 600, 700)"
生成代码:
typescript
import { loadFont } from '@remotion/google-fonts/Inter';
const { fontFamily } = loadFont({
weights: ['400', '600', '700'],
});
// In component
<div style={{
fontFamily,
fontWeight: 700,
}}>
Text content
</div>Asset Organization
资产管理
Directory Structure
目录结构
project/
├── public/
│ ├── images/
│ │ ├── logo.png
│ │ ├── product.jpg
│ │ └── background.webp
│ ├── videos/
│ │ ├── intro.mp4
│ │ └── demo.mp4
│ ├── audio/
│ │ ├── music/
│ │ │ └── background.mp3
│ │ └── sfx/
│ │ ├── whoosh.mp3
│ │ ├── pop.mp3
│ │ └── ding.mp3
│ └── fonts/
│ └── CustomFont.woff2
└── src/
└── remotion/
└── compositions/project/
├── public/
│ ├── images/
│ │ ├── logo.png
│ │ ├── product.jpg
│ │ └── background.webp
│ ├── videos/
│ │ ├── intro.mp4
│ │ └── demo.mp4
│ ├── audio/
│ │ ├── music/
│ │ │ └── background.mp3
│ │ └── sfx/
│ │ ├── whoosh.mp3
│ │ ├── pop.mp3
│ │ └── ding.mp3
│ └── fonts/
│ └── CustomFont.woff2
└── src/
└── remotion/
└── compositions/Naming Conventions
命名规范
typescript
// Good naming
logo.png // Clear, simple
product-hero.jpg // Descriptive
background-gradient.webp
whoosh-transition.mp3
background-music.mp3
// Bad naming
IMG_1234.jpg // Not descriptive
final-FINAL-v2.png // Confusing versions
my image.png // Spaces (use hyphens)typescript
// 好的命名
logo.png // 清晰简洁
product-hero.jpg // 描述性强
background-gradient.webp
whoosh-transition.mp3
background-music.mp3
// 不好的命名
IMG_1234.jpg // 无描述性
final-FINAL-v2.png // 版本号混乱
my image.png // 包含空格(请用连字符)Quality Validation Checklist
质量校验核对清单
Before using assets in production:
Images:
- Correct dimensions (2x for retina if needed)
- Appropriate format (PNG for transparency, JPEG for photos)
- Optimized file size (< 500KB ideal, < 1MB maximum)
- No artifacts or compression issues
- Transparent background if required
Videos:
- Correct resolution (matches composition)
- Correct frame rate (matches composition)
- Appropriate codec (H.264)
- Reasonable file size (< 50MB ideal)
- No dropped frames
- Audio included if needed
Audio:
- Correct format (MP3 or WAV)
- Appropriate bitrate (192-320 kbps)
- Trimmed to exact duration
- Normalized volume levels
- No clipping or distortion
- Fade in/out applied if needed
Fonts:
- Legal license for commercial use
- All required weights available
- Proper format (WOFF2 preferred)
- Loaded correctly in composition
在生产环境使用资产前,请确认:
图片:
- 尺寸正确(如需适配视网膜屏则提供2倍尺寸)
- 格式适配场景(需要透明背景用PNG,照片用JPEG)
- 文件大小已优化(理想值<500KB,最大不超过1MB)
- 无压缩 artifacts 或异常问题
- 按需提供透明背景
视频:
- 分辨率正确(与合成项目匹配)
- 帧率正确(与合成项目匹配)
- 编码格式合适(H.264)
- 文件大小合理(理想值<50MB)
- 无丢帧问题
- 按需包含音频轨
音频:
- 格式正确(MP3或WAV)
- 比特率合适(192-320 kbps)
- 裁剪到精确时长
- 音量已标准化
- 无削波或失真问题
- 按需添加淡入淡出效果
字体:
- 具备商用授权
- 所有需要的字重都可用
- 格式合适(优先用WOFF2)
- 在合成项目中加载正常
Integration with Other Skills
与其他技能的集成
Works with:
- — Extracts asset requirements from specs
/motion-designer - — Generates asset import code during translation
/remotion-spec-translator - — Validates asset quality during review
/remotion-video-reviewer
适配协同:
- — 从动效规范中提取资产需求
/motion-designer - — 在转换规范过程中生成资产导入代码
/remotion-spec-translator - — 在审核过程中验证资产质量
/remotion-video-reviewer
Rules Directory
规则目录
For detailed asset guidance:
- rules/image-assets.md — Image preparation and optimization
- rules/video-assets.md — Video encoding and preparation
- rules/audio-assets.md — Audio processing and integration
- rules/font-assets.md — Font loading and management
This skill ensures all assets are properly sourced, prepared, and integrated for production-ready Remotion videos.
获取详细的资产指南:
- rules/image-assets.md — 图片准备与优化
- rules/video-assets.md — 视频编码与准备
- rules/audio-assets.md — 音频处理与集成
- rules/font-assets.md — 字体加载与管理
该技能可确保Remotion视频的所有资产都经过合规的资源获取、准备和集成流程,可直接用于生产环境。