Video Analyzer v1 — Multimodal Frame Analysis
Purpose
Extract structured semantic understanding from video frames using multimodal LLM.
Extracts keyframes with OpenCV (brightness-filtered), sends to NVIDIA Nemotron
for scene analysis, and outputs structured JSON used by downstream copywriting
and processing skills.
When to Use
- Analyzing video content before generating captions
- Extracting scene descriptions and metadata from raw videos
- The user says: "analyze this video", "what's in this video", "extract video frames"
Project Dependency
This skill depends on the shared project core modules and environment at:
- Project root: <your_workspace>
- Core modules: core/model_providers.py, core/logger.py
- Environment: .env file with OPENROUTER_API_KEY
- Dependencies: Python packages (opencv-python, requests, python-dotenv)
All commands MUST be run from the project root directory.
How to Use
Analyze a video
cd <your_workspace>
python scripts/run.py --video_path "00_Inbox/my_video.mp4"
Analyze a specific processed video folder
cd <your_workspace>
python scripts/run.py --video_path "02_PendingReview/my_video"
Pipeline
- Frame Extraction: OpenCV reads video, samples frames at regular intervals
- Brightness Filter: Discards frames that are too dark or too bright
- Multimodal LLM: Sends filtered frames to NVIDIA Nemotron via OpenRouter
- Structured Output: Returns JSON with standardized fields
Output Schema
{
"device_type": "string — main equipment/machine type in frame",
"operation_status": "string — running/idle/maintenance/setup",
"key_components": ["array of key visible components"],
"environment": "string — factory/lab/warehouse/office",
"precision_metrics": "string — accuracy specs if visible",
"target_industry": "string — electronics/automotive/semiconductor/etc",
"marketing_angles": ["array of suggested marketing angles"]
}