视频反推工具 - 抽帧与视觉分析
任务目标
- 本Skill用于: 从视频中提取关键帧,使用视觉模型分析每帧内容,生成结构化描述和提示词
- 能力包含:
- 视频抽帧(支持间隔抽帧、均匀采样)
- 视觉模型API调用(支持GPT-4V/Claude-3.5-Sonnet等)
- 批量图片分析
- 结构化结果输出(JSON格式)
- 触发条件: 用户需要分析视频内容、提取分镜参考、生成创作提示词
前置准备
依赖说明:
opencv-python>=4.8.0
pillow>=10.0.0
requests>=2.28.0
视觉模型配置:
需要配置视觉模型API密钥(如GPT-4V、Claude-3.5-Sonnet),环境变量格式:
export VISION_API_KEY="your_api_key"
export VISION_API_BASE="https://api.openai.com/v1" # 或其他API地址
export VISION_MODEL="gpt-4-vision-preview" # 模型名称
Coze Bot配置(推荐):
使用您发布的Coze Bot API进行视觉分析,环境变量格式:
export COZE_BOT_ID="7572557757883383858" # 您的Bot ID
export COZE_API_KEY="cztei_qHZQ0A5OSJjsmfZWmVb8bqu2BTbtB240YGbDYLhZpsIr8jER4aL4Aevyii8rnKfNs" # 您的API Key
Coze Bot的优势: 集成了官方抽帧插件和视觉模型,无需额外配置
操作步骤
标准流程
步骤1: 视频抽帧
- 输入: 视频文件路径或URL
- 调用脚本:
scripts/video_frame_extractor.py
- 参数:
--input: 视频文件路径或URL
--output: 输出图片目录
--interval: 抽帧间隔(秒),默认1秒抽1帧
--max_frames: 最大抽帧数,默认10帧
- 输出: 抽取的图片序列
# 示例: 抽取视频关键帧
python scripts/video_frame_extractor.py \
--input ./input/video.mp4 \
--output ./output/frames \
--interval 3 \
--max_frames 10
步骤2: 视觉分析
方案A: 使用Coze Bot API(推荐)
- 输入: 抽帧图片目录
- 调用脚本:
scripts/coze_bot_client.py
- 参数:
--image_dir: 图片目录
--prompt: 分析提示词(可选)
--output: 输出JSON文件路径
- 输出: 每张图片的描述和分析结果
# 示例: 使用Coze Bot分析抽帧图片
python scripts/coze_bot_client.py \
--image_dir ./output/frames \
--prompt "分析场景内容、人物状态、构图特点,适合AI视频创作" \
--output ./output/analysis.json
方案B: 使用其他视觉模型API
- 输入: 抽帧图片目录
- 调用脚本:
scripts/visual_analyzer.py
- 参数:
--input: 图片目录或单张图片路径
--output: 分析结果JSON文件路径
--prompt: 分析提示词(可选,默认分析场景/人物/构图)
- 输出: 每张图片的描述和分析结果
# 示例: 使用GPT-4V分析抽帧图片
python scripts/visual_analyzer.py \
--input ./output/frames \
--output ./output/analysis.json \
--prompt "分析场景内容、人物状态、构图特点,适合AI视频创作"
步骤3: 结果整合
- 智能体读取分析结果JSON
- 根据分析结果生成提示词
- 可用于视频创作参考或分镜设计
可选参数
抽帧参数:
--interval: 抽帧间隔(秒),越小抽帧越密集
--max_frames: 最大抽帧数,控制输出数量
--start_time: 开始时间(秒)
--end_time: 结束时间(秒)
--resolution: 输出图片分辨率,默认1080P
分析参数:
--prompt: 自定义分析提示词
--detail: 分析详细程度(brief/standard/detailed)
--batch_size: 批量分析大小,默认5张
资源索引
- 必要脚本:
- scripts/video_frame_extractor.py - 视频抽帧工具
- scripts/coze_bot_client.py - Coze Bot API调用工具(推荐)
- scripts/visual_analyzer.py - 其他视觉模型API调用工具
- 领域参考:
- references/analysis-guide.md - 视觉分析指导与提示词模板
注意事项
- 视觉模型API密钥需提前配置,否则无法调用分析功能
- 抽帧间隔和最大帧数需根据视频时长合理设置
- 视觉分析结果依赖模型能力,不同模型输出格式可能不同
- 建议先用小规模抽帧测试,确认效果后再大规模处理
使用示例
示例1: 完整反推流程(使用Coze Bot)
# 1. 抽取视频关键帧
python scripts/video_frame_extractor.py \
--input ./input/source_video.mp4 \
--output ./output/frames \
--interval 2 \
--max_frames 8
# 2. 使用Coze Bot分析抽帧内容
python scripts/coze_bot_client.py \
--image_dir ./output/frames \
--prompt "详细描述场景、人物、构图,适合AI视频创作参考" \
--output ./output/analysis.json
# 3. 智能体读取analysis.json,生成创作提示词
# 智能体将根据分析结果组织内容,生成可用于AI创作的提示词
示例2: 仅抽帧(不分析)
python scripts/video_frame_extractor.py \
--input ./input/video.mp4 \
--output ./output/frames \
--interval 5 \
--max_frames 5
示例3: 单张图片分析
# 使用Coze Bot
python scripts/coze_bot_client.py \
--image ./output/frames/frame_00001.jpg \
--prompt "分析这张图片的场景风格和构图"
# 或使用其他视觉模型
python scripts/visual_analyzer.py \
--input ./output/frames/ \
--output ./analysis.json \
--prompt "分析场景风格和构图"
输出格式
抽帧输出:
./output/frames/
├── frame_00001.jpg
├── frame_00002.jpg
├── frame_00003.jpg
└── ...
分析输出(JSON):
{
"total_frames": 10,
"analysis": [
{
"frame_file": "frame_00001.jpg",
"timestamp": "00:00:00",
"description": "场景描述内容...",
"elements": ["人物", "背景", "道具"],
"style": "风格描述..."
},
{
"frame_file": "frame_00002.jpg",
"timestamp": "00:00:03",
"description": "场景描述内容...",
"elements": ["人物", "背景", "道具"],
"style": "风格描述..."
}
]
}
技术说明
抽帧技术:
- 使用OpenCV的VideoCapture读取视频
- 按时间间隔均匀采样关键帧
- 支持多种视频格式(MP4/MOV/AVI等)
视觉分析:
- 支持Coze Bot API(推荐,已集成抽帧和视觉模型)
- 支持主流视觉模型API(GPT-4V/Claude-3.5-Sonnet等)
- 批量处理,提升效率
- 结构化输出,便于后续处理
Coze Bot优势:
- 集成官方抽帧插件,抽帧质量高
- 内置视觉模型,无需额外配置
- 一站式服务,抽帧+分析一体化
- 支持流式响应,实时获取结果
性能优化:
- 可配置抽帧间隔,减少冗余帧
- 批量API调用,减少请求次数
- 结果缓存,避免重复分析
1---2name: video-frame-extractor3description: 视频反推工具,支持视频抽帧、视觉模型分析、提示词生成,适用于视频创作参考、内容提取、场景分析4---5
6# 视频反推工具 - 抽帧与视觉分析
7
8## 任务目标
9- 本Skill用于: 从视频中提取关键帧,使用视觉模型分析每帧内容,生成结构化描述和提示词
10- 能力包含:
11 - 视频抽帧(支持间隔抽帧、均匀采样)
12 - 视觉模型API调用(支持GPT-4V/Claude-3.5-Sonnet等)
13 - 批量图片分析
14 - 结构化结果输出(JSON格式)
15- 触发条件: 用户需要分析视频内容、提取分镜参考、生成创作提示词
16
17## 前置准备
18- 依赖说明:
19 ```
20 opencv-python>=4.8.0
21 pillow>=10.0.0
22 requests>=2.28.0
23 ```
24
25- 视觉模型配置:
26 需要配置视觉模型API密钥(如GPT-4V、Claude-3.5-Sonnet),环境变量格式:
27 ```bash
28 export VISION_API_KEY="your_api_key"
29 export VISION_API_BASE="https://api.openai.com/v1" # 或其他API地址
30 export VISION_MODEL="gpt-4-vision-preview" # 模型名称
31 ```
32
33- Coze Bot配置(推荐):
34 使用您发布的Coze Bot API进行视觉分析,环境变量格式:
35 ```bash
36 export COZE_BOT_ID="7572557757883383858" # 您的Bot ID
37 export COZE_API_KEY="cztei_qHZQ0A5OSJjsmfZWmVb8bqu2BTbtB240YGbDYLhZpsIr8jER4aL4Aevyii8rnKfNs" # 您的API Key
38 ```
39
40 Coze Bot的优势: 集成了官方抽帧插件和视觉模型,无需额外配置
41
42## 操作步骤
43
44### 标准流程
45
46**步骤1: 视频抽帧**
47- 输入: 视频文件路径或URL
48- 调用脚本: `scripts/video_frame_extractor.py`
49- 参数:
50 - `--input`: 视频文件路径或URL
51 - `--output`: 输出图片目录
52 - `--interval`: 抽帧间隔(秒),默认1秒抽1帧
53 - `--max_frames`: 最大抽帧数,默认10帧
54- 输出: 抽取的图片序列
55
56```bash
57# 示例: 抽取视频关键帧
58python scripts/video_frame_extractor.py \
59 --input ./input/video.mp4 \
60 --output ./output/frames \
61 --interval 3 \
62 --max_frames 10
63```
64
65**步骤2: 视觉分析**
66
67**方案A: 使用Coze Bot API(推荐)**
68- 输入: 抽帧图片目录
69- 调用脚本: `scripts/coze_bot_client.py`
70- 参数:
71 - `--image_dir`: 图片目录
72 - `--prompt`: 分析提示词(可选)
73 - `--output`: 输出JSON文件路径
74- 输出: 每张图片的描述和分析结果
75
76```bash
77# 示例: 使用Coze Bot分析抽帧图片
78python scripts/coze_bot_client.py \
79 --image_dir ./output/frames \
80 --prompt "分析场景内容、人物状态、构图特点,适合AI视频创作" \
81 --output ./output/analysis.json
82```
83
84**方案B: 使用其他视觉模型API**
85- 输入: 抽帧图片目录
86- 调用脚本: `scripts/visual_analyzer.py`
87- 参数:
88 - `--input`: 图片目录或单张图片路径
89 - `--output`: 分析结果JSON文件路径
90 - `--prompt`: 分析提示词(可选,默认分析场景/人物/构图)
91- 输出: 每张图片的描述和分析结果
92
93```bash
94# 示例: 使用GPT-4V分析抽帧图片
95python scripts/visual_analyzer.py \
96 --input ./output/frames \
97 --output ./output/analysis.json \
98 --prompt "分析场景内容、人物状态、构图特点,适合AI视频创作"
99```
100
101**步骤3: 结果整合**
102- 智能体读取分析结果JSON
103- 根据分析结果生成提示词
104- 可用于视频创作参考或分镜设计
105
106### 可选参数
107
108**抽帧参数:**
109- `--interval`: 抽帧间隔(秒),越小抽帧越密集
110- `--max_frames`: 最大抽帧数,控制输出数量
111- `--start_time`: 开始时间(秒)
112- `--end_time`: 结束时间(秒)
113- `--resolution`: 输出图片分辨率,默认1080P
114
115**分析参数:**
116- `--prompt`: 自定义分析提示词
117- `--detail`: 分析详细程度(brief/standard/detailed)
118- `--batch_size`: 批量分析大小,默认5张
119
120## 资源索引
121- 必要脚本:
122 - [scripts/video_frame_extractor.py](scripts/video_frame_extractor.py) - 视频抽帧工具
123 - [scripts/coze_bot_client.py](scripts/coze_bot_client.py) - Coze Bot API调用工具(推荐)
124 - [scripts/visual_analyzer.py](scripts/visual_analyzer.py) - 其他视觉模型API调用工具
125- 领域参考:
126 - [references/analysis-guide.md](references/analysis-guide.md) - 视觉分析指导与提示词模板
127
128## 注意事项
129- 视觉模型API密钥需提前配置,否则无法调用分析功能
130- 抽帧间隔和最大帧数需根据视频时长合理设置
131- 视觉分析结果依赖模型能力,不同模型输出格式可能不同
132- 建议先用小规模抽帧测试,确认效果后再大规模处理
133
134## 使用示例
135
136### 示例1: 完整反推流程(使用Coze Bot)
137```bash
138# 1. 抽取视频关键帧
139python scripts/video_frame_extractor.py \
140 --input ./input/source_video.mp4 \
141 --output ./output/frames \
142 --interval 2 \
143 --max_frames 8
144
145# 2. 使用Coze Bot分析抽帧内容
146python scripts/coze_bot_client.py \
147 --image_dir ./output/frames \
148 --prompt "详细描述场景、人物、构图,适合AI视频创作参考" \
149 --output ./output/analysis.json
150
151# 3. 智能体读取analysis.json,生成创作提示词
152# 智能体将根据分析结果组织内容,生成可用于AI创作的提示词
153```
154
155### 示例2: 仅抽帧(不分析)
156```bash
157python scripts/video_frame_extractor.py \
158 --input ./input/video.mp4 \
159 --output ./output/frames \
160 --interval 5 \
161 --max_frames 5
162```
163
164### 示例3: 单张图片分析
165```bash
166# 使用Coze Bot
167python scripts/coze_bot_client.py \
168 --image ./output/frames/frame_00001.jpg \
169 --prompt "分析这张图片的场景风格和构图"
170
171# 或使用其他视觉模型
172python scripts/visual_analyzer.py \
173 --input ./output/frames/ \
174 --output ./analysis.json \
175 --prompt "分析场景风格和构图"
176```
177
178## 输出格式
179
180**抽帧输出:**
181```
182./output/frames/
183├── frame_00001.jpg
184├── frame_00002.jpg
185├── frame_00003.jpg
186└── ...
187```
188
189**分析输出(JSON):**
190```json
191{
192 "total_frames": 10,
193 "analysis": [
194 {
195 "frame_file": "frame_00001.jpg",
196 "timestamp": "00:00:00",
197 "description": "场景描述内容...",
198 "elements": ["人物", "背景", "道具"],
199 "style": "风格描述..."
200 },
201 {
202 "frame_file": "frame_00002.jpg",
203 "timestamp": "00:00:03",
204 "description": "场景描述内容...",
205 "elements": ["人物", "背景", "道具"],
206 "style": "风格描述..."
207 }
208 ]
209}
210```
211
212## 技术说明
213
214**抽帧技术:**
215- 使用OpenCV的VideoCapture读取视频
216- 按时间间隔均匀采样关键帧
217- 支持多种视频格式(MP4/MOV/AVI等)
218
219**视觉分析:**
220- 支持Coze Bot API(推荐,已集成抽帧和视觉模型)
221- 支持主流视觉模型API(GPT-4V/Claude-3.5-Sonnet等)
222- 批量处理,提升效率
223- 结构化输出,便于后续处理
224
225**Coze Bot优势:**
226- 集成官方抽帧插件,抽帧质量高
227- 内置视觉模型,无需额外配置
228- 一站式服务,抽帧+分析一体化
229- 支持流式响应,实时获取结果
230
231**性能优化:**
232- 可配置抽帧间隔,减少冗余帧
233- 批量API调用,减少请求次数
234- 结果缓存,避免重复分析