--- 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。 - 用中文回答所有内容。