Validate a rendered video against platform requirements and write a JSON report.
cm validate [options] <videoPath>- Validation report JSON written to
--output(defaultvalidate.json) - Exit code 1 when validation fails (default behavior)
--profile <profile>:portrait|landscape(default:portrait)--probe-engine <engine>:ffprobe|python(default:ffprobe)--ffprobe <path>: ffprobe executable path (default:ffprobe)--python <path>: python executable path (used for--probe-engine pythonand quality) (default:python)--cadence: enable cadence gate (scene cut frequency) via ffmpeg (default: false)--cadence-engine <engine>: cadence engineffmpeg|pyscenedetect(default:ffmpeg)--cadence-max-median <seconds>: max median cut interval in seconds (default:3)--cadence-threshold <n>: scene change threshold (ffmpeg ~0-1, pyscenedetect ~0-100) (default:0.3)--quality: enable visual quality gate (BRISQUE) via Python (default: false)--quality-sample-rate <n>: analyze every Nth frame (BRISQUE) (default:30)-o, --output <path>: output report file path (default:validate.json)--report-json: print the full report JSON to stdout (not envelope) (default: false)
-v, --verbose: enable verbose logging--json: print a schema-versioned JSON envelope to stdout
0: validation passed1: validation failed or command error2: invalid arguments / missing files / invalid JSON
cm validate out/video.mp4 --profile portrait -o out/validate.json
cm validate out/video.mp4 --report-json
cm validate out/video.mp4 --cadence --cadence-engine ffmpeg --cadence-max-median 3 --cadence-threshold 0.3
cm validate out/video.mp4 --cadence --cadence-engine pyscenedetect --python python
cm validate out/video.mp4 --quality --python python --quality-sample-rate 30docs/dev/guides/guide-cli-ux-cm-validate-20260106.md