54 lines
2.2 KiB
Markdown
54 lines
2.2 KiB
Markdown
|
|
---
|
|||
|
|
name: video-frame-extractor
|
|||
|
|
description: 汽车环车视频抽帧处理。用于 video_frame_extractor 能力:从车辆环车视频、本地视频路径、/upload 路径或可访问视频 URL 按指定 fps 抽取关键帧图片,写入共享 workspace/video_info.json,作为 damage-detector、damage-grounding、best-frame-selector、scratch-report-generator 的前置步骤;纯计算,不调用 AI 模型。
|
|||
|
|
license: MIT
|
|||
|
|
metadata:
|
|||
|
|
version: "1.0.0"
|
|||
|
|
category: vehicle-inspection
|
|||
|
|
skillType: compute-entry
|
|||
|
|
aliases: ["video_frame_extractor"]
|
|||
|
|
tags: ["vehicle", "video", "ffmpeg", "frames", "环车检测", "抽帧"]
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 视频抽帧处理
|
|||
|
|
|
|||
|
|
当用户提供环车视频并需要进行旧伤检测时,先用 `execute_skill` 调用本技能。
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"name": "video-frame-extractor",
|
|||
|
|
"input": {
|
|||
|
|
"videoUrl": "/upload/20260514/car.mp4",
|
|||
|
|
"fps": 5,
|
|||
|
|
"quality": 90,
|
|||
|
|
"taskId": "order_10001"
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 工作流程
|
|||
|
|
|
|||
|
|
1. 解析 `videoUrl`。支持本地路径、`/upload/...`、`http://localhost/...`、`http://127.0.0.1/...` 和可直接下载的视频 URL。
|
|||
|
|
2. 使用 `ffprobe` 读取视频时长、分辨率、原始帧率和总帧数。
|
|||
|
|
3. 使用 `ffmpeg` 按 `fps` 抽帧到共享 workspace 的 `frames/` 目录。
|
|||
|
|
4. 写入 `workspace/video_info.json`,包含视频信息和帧列表。
|
|||
|
|
|
|||
|
|
## 输入
|
|||
|
|
|
|||
|
|
- `videoUrl`: 必填,视频路径或 URL。
|
|||
|
|
- `fps`: 可选,默认 `5`,范围 `0.2-10`。
|
|||
|
|
- `quality`: 可选,默认 `90`,范围 `1-100`。
|
|||
|
|
- `taskId`: 可选,不传则自动生成。
|
|||
|
|
|
|||
|
|
## 输出
|
|||
|
|
|
|||
|
|
返回 `taskId`、`workspacePath`、`frameCount`、`videoInfo`。后续技能必须复用同一个 `taskId`。
|
|||
|
|
|
|||
|
|
## 约定
|
|||
|
|
|
|||
|
|
- 需要 Node.js 18+。
|
|||
|
|
- 共享 workspace 根目录优先读取 `VEHICLE_SCRATCH_WORKSPACE_ROOT`,其次兼容 `RZYX_AI_WORKSPACE_ROOT`,否则使用 `RZYX_AI_DATA_DIR/workspace/vehicle-scratch-inspection`。
|
|||
|
|
- 如果系统 PATH 里的 `ffmpeg/ffprobe` 不可用,可运行 `bash scripts/make.sh fix` 安装 `@ffmpeg-installer`,或通过 `FFMPEG_PATH`、`FFPROBE_PATH` 指定二进制路径。
|
|||
|
|
- 在 AIflow 生产运行时,宿主会注入 `RZYX_AI_DATA_DIR`、`RZYX_AI_UPLOAD_ROOT`、`RZYX_AI_WORKSPACE_ROOT`;本技能不依赖百度 OCR 或百度车损 API。
|
|||
|
|
- 用中文回答所有内容。
|