24 lines
1.1 KiB
JSON
24 lines
1.1 KiB
JSON
{
|
|
"id": "ffmpeg_frames",
|
|
"name": "Extract Frames",
|
|
"category": "ingest",
|
|
"description": "Extract frames from video for photogrammetry/3DGS/mesh-gen. Supports fps sampling, near-duplicate removal (mpdecimate), and sharpness culling.",
|
|
"accepts": ["video"],
|
|
"produces": ["frames"],
|
|
"entry": "run.py",
|
|
"params_schema": {
|
|
"type": "object",
|
|
"properties": {
|
|
"fps": {"type": "number", "default": 2, "minimum": 0.1, "maximum": 60,
|
|
"description": "Frames per second to sample (2-3 for orbit scans)"},
|
|
"dedupe": {"type": "boolean", "default": true,
|
|
"description": "Drop near-duplicate frames (mpdecimate)"},
|
|
"format": {"type": "string", "enum": ["jpg", "png"], "default": "jpg"},
|
|
"max_frames": {"type": "integer", "default": 300, "minimum": 1, "maximum": 5000,
|
|
"description": "Hard cap on frames kept"},
|
|
"sharpness_cull_pct": {"type": "number", "default": 5, "minimum": 0, "maximum": 50,
|
|
"description": "Cull the blurriest N% (by file size heuristic, jpg only)"}
|
|
}
|
|
}
|
|
}
|