Overview
Solidify "local video → ffprobe → timestamped frame extraction → contact sheet → OCR → summary.txt / ocr.json written to disk" into a reusable lightweight skill.
Suitable for agents like Codex, Claude Code, and OpenCode to handle local demo videos, screen recordings, and competitor page walkthroughs.
When to Use
Applicable to:
- A user drops a local video and asks you to determine how far the product has gotten
- Need to break a video into reviewable frame images, OCR text, and summary files
- Need to do lightweight evidence extraction first, then manual judgment or further analysis
- Want to avoid hand-assembling ffmpeg / tesseract commands every time
Not applicable to:
- Online video downloading
- Batch video queues
- Real-time stream analysis
- GUI or Web platforms
- Heavyweight video understanding models
Quick Start
bash scripts/video-frame-analysis.sh /path/to/demo.mp4 ./out/demo-analysis
Default output:
ffprobe.txtframe_*.jpgcontact.pngocr.txtocr.jsonsummary.txt
Installation
Recommended to install directly into Codex / Claude Code / OpenCode:
npx skills add https://github.com/mason0510/video-frame-analysis-skills -g --all
After installation, restart the agent session, then trigger this skill as needed.
Input / Output
Input
- Local video path
- Output directory path
Output
- Video metadata
- Timestamped frame images
- contact sheet
- OCR text
- OCR JSON
- Summary text
Config
FRAME_INTERVAL_SECONDS=5 FRAME_WIDTH=420 OCR_LANG=eng \
bash scripts/video-frame-analysis.sh ./demo.mp4 ./out/demo
| Variable | Description | Default value |
|---|---|---|
FRAME_INTERVAL_SECONDS |
Frame extraction interval (seconds) | 8 |
FRAME_WIDTH |
Single frame width | 360 |
OCR_LANG |
OCR language candidates | chi_sim+eng |
Project Files
scripts/video-frame-analysis.sh: main scripttests/test_video_frame_analysis.sh: minimal closed-loop testreferences/output-format.md: output directory descriptionagents/openai.yaml: OpenAI/Codex side display information
Common Mistakes
- Treat it as a heavyweight video understanding model
- Extracting frames too densely causes OCR noise to spike
- Ignore the contact sheet and only stare at the OCR text
- Did not check whether the local machine has installed
ffmpeg/tesseract