Skip to content
Documentation
Command

/start-15-1.en

Lesson command

From plugin
ai-agent-camp
345200 skills8 agents200 commands
Install
$ npx -y skills add minicoohei/ai-agent-camp --agent claude-code

How it fires

How this command gets triggered: by you, by Claude, or both.

  • Fires itselfClaude auto-loads it when your prompt matches the work.
  • You can call itInvoke it directly when you want it.
  • Slash command/start-15-1.en

Context preview

What this command does when you run it.

Lesson command

Command definition

start-15-1.en.md
description: "Lesson command"
chapter: "courses/aiagent/lesson03-core/module15-video"
duration: "~30 min"
prerequisites: ["start-0-3"]
level: "intermediate"
tags: ["video", "keyframe", "analysis", "ffmpeg"]
nonInteractiveMode: deferred

Lesson 15-1: Video Frame Analysis

What You Will Do in This Session

Welcome to **Lesson 15-1: Video Frame Analysis**!

| Item | Details | |------|---------| | Goal | Extract keyframes from a video, analyze the content, and create a summary report | | Duration | ~30 min | | Skills used | video-frame-reader (FFmpeg, Gemini Vision API) | | Prerequisites | FFmpeg, Python 3.9+, and Gemini API key configured | | Course page | Refer to [Module 15: Video Generation](https://ai-agent.camp/en/course/module-15) in parallel |

**Session flow:** 1. Verify environment 2. Prepare sample video 3. Extract and analyze keyframes 4. Create a video summary report

By the end of this session, keyframes and a summary will be saved in outputs.

> **Tip**: If the AI response stops midway, type "please continue" or "it stopped" to resume. Responses may pause depending on the tool, but this is not an error.

---

Readiness Check

First, confirm that everything is ready.

**AskQuestion configuration:**

{
  "title": "Pre-session check",
  "questions": [{
    "id": "readiness",
    "prompt": "Are you ready?",
    "options": [
      {"id": "ready", "label": "Ready! Let's start"},
      {"id": "check_prereq", "label": "I want to check the prerequisites"},
      {"id": "view_html", "label": "I want to see the course page first"},
      {"id": "different_lesson", "label": "I want to go to a different lesson"}
    ]
  }]
}

(ready -> Go to Step 1) (check_prereq -> Run prerequisite check) (view_html -> Show the course page path) (different_lesson -> Show module list)

---

Step 0: Prepare a Test Video

Use the bundled sample video first. Only add a practice video via FFmpeg if you don't have one.

# Create the data directory under lesson (if needed)
mkdir -p courses/aiagent/lesson03-core/module15-video/practice/data/videos

# Generate a test video with FFmpeg (10 seconds, 640x480, 30fps):
ffmpeg -f lavfi -i testsrc=duration=10:size=640x480:rate=30 -pix_fmt yuv420p courses/aiagent/lesson03-core/module15-video/practice/data/videos/module15-lesson1-sample.mp4

> **Note**: If FFmpeg is not installed, Step 1 environment check will guide you.

---

Step 1: Verify Environment

**AskQuestion configuration:**

{
  "title": "Step 1: Verify Environment",
  "questions": [{
    "id": "step_action",
    "prompt": "What do you want to do with this step?",
    "options": [
      {"id": "practice", "label": "Proceed"},
      {"id": "review", "label": "Just review examples"},
      {"id": "skip", "label": "Skip"}
    ]
  }]
}

**Post-selection instructions (example)**: Input:

Verify the environment needed for video frame extraction:
- Is FFmpeg installed?
- Is Python 3.9+ installed?
- Is the video-frame-reader skill available?

If anything is missing, show the installation steps.

**Expected result**: The required environment is verified, and installation steps are shown if anything is missing.

---

Step 2: Prepare Sample Video

**AskQuestion configuration:**

{
  "title": "Step 2: Prepare Sample Video",
  "questions": [{
    "id": "step_action",
    "prompt": "What do you want to do with this step?",
    "options": [
      {"id": "practice", "label": "Proceed"},
      {"id": "review", "label": "Just review examples"},
      {"id": "skip", "label": "Skip"}
    ]
  }]
}

**Post-selection instructions (example)**: Input:

For video frame extraction testing, verify the following:
1. The `courses/aiagent/lesson03-core/module15-video/practice/data/videos/` folder exists
2. The default official sample `data/videos/module7-lesson1-frame-lab-sample.mp4` or `courses/aiagent/lesson03-core/module15-video/practice/data/videos/module15-lesson1-sample.mp4` can be used

If trying a different video, you may place an MP4 of 30 seconds or less in `courses/aiagent/lesson03-core/module15-video/practice/data/videos/`.

**Expected result**: Test videos including `data/videos/module7-lesson1-frame-lab-sample.mp4` are ready and paths are confirmed.

---

Step 3: Extract Keyframes

**AskQuestion configuration:**

{
  "title": "Step 3: Extract Keyframes",
  "questions": [{
    "id": "step_action",
    "prompt": "What do you want to do with this step?",
    "options": [
      {"id": "practice", "label": "Proceed"},
      {"id": "review", "label": "Just review examples"},
      {"id": "skip", "label": "Skip"}
    ]
  }]
}

**Post-selection instructions (example)**: Input:

Extract keyframes from data/videos/module7-lesson1-frame-lab-sample.mp4 or
courses/aiagent/lesson03-core/module15-video/practice/data/videos/module15-lesson1-sample.mp4
(use video-frame-reader's extract_keyframes.py).

Settings:
- Extraction interval: every 5 seconds (or skill default)
- Output format: follow skill (PNG, etc.)
- Output path: data/frames/ or another clear path

After extraction, display the list of generated frame images.

**Expected result**: Keyframes are saved as PNG at the specified interval.

---

Step 4: Analyze Extracted Frames

**AskQuestion configuration:**

{
  "title": "Step 4: Analyze Extracted Frames",
  "questions": [{
    "id": "step_action",
    "prompt": "What do you want to do with this step?",
    "options": [
      {"id": "practice", "label": "Proceed"},
      {"id": "review", "label": "Just review examples"},
      {"id": "skip", "label": "Skip"}
    ]
  }]
}

**Post-selection instructions (example)**: Input:

Analyze the extracted frame images:

For each image in data/frames/, provide:
- Scene content description
- Detected objects
- OCR results if text is present
- Differences from the previous frame

**Expected result**: The content of each frame is described.

---

Step 5: Create Video Summary Rep

Read more
Ships withai-agent-camp

AI Agent Training for Non-Engineers - Complete Guide to Claude Code / Cursor / Codex ### ⚠️ Before you clone Official repository (maintained by the authors): Running AI agents from this repo grants them shell, file-write, and external-API permissions on your

Get the whole plugin