Run a QA pass on a finished video render before it ships: export specs against the order, measured loudness and true peak against the delivery target, on-screen text against safe zones and phone player overlays, captions checked against the final audio, and pacing defects (black or frozen frames, dead pauses, flash cuts, filler), ending in a fix list ranked by viewer impact and a ship, re-export, or re-edit verdict. Runs on any platform with ffmpeg and ffprobe. Use when a render is done and needs checking before upload, delivery, or handoff, or when a shipped video came back with a quality complaint.
./install.sh video-render-qaname: video_render_qa description: Run a QA pass on a finished video render before it ships: export specs against the order, measured loudness and true peak against the delivery target, on-screen text against safe zones and phone player overlays, captions checked against the final audio, and pacing defects (black or frozen frames, dead pauses, flash cuts, filler), ending in a fix list ranked by viewer impact and a ship, re-export, or re-edit verdict. Runs on any platform with ffmpeg and ffprobe. Use when a render is done and needs checking before upload, delivery, or handoff, or when a shipped video came back with a quality complaint.
Catch the defects a finished render hides until a viewer or a delivery system finds them: a black opening, captions written for a cut that changed, text sitting under a phone app button, audio mastered for the wrong target. The pass mixes machine measurements (ffmpeg and ffprobe do the counting) with a human watch (only a person can tell an intentional black frame from a broken one), and it ends in one ranked fix list, not a pile of notes.
This skill checks a render of any length and any origin: edited, generated, recorded, or animated. For checking raw generated clips for visual artifacts before editing, use generated-media-qa instead. For basic deliverable verification only (container, codec, duration, resolution, audio presence), the older video-qc skill covers that narrower job.
references/targets.md holds the common loudness targets and the spec list to compare.python3 scripts/render_qa.py <render> from this skill folder. It prints the ffprobe specs, integrated loudness and true peak from loudnorm, and timestamped black, freeze and silence intervals plus a hard cut list. Save the output, the report quotes it.references/targets.md, true peak against its ceiling. Remember the direction of platform normalization: loud uploads get turned down, quiet ones stay quiet.references/check-sheet.md: pull a still at every title card, lower third, price and end card, and test it against the action safe and title safe boxes for widescreen, or the phone player overlay guide for vertical. Text under a platform button or outside title safe is a fix, with the timestamp named.python3 scripts/caption_check.py <captions.srt> for line length, reading speed, duration and gaps. Then compare wording against the shipped audio, not the script: transcribe the render audio or spot check the opening, every name, number and price by ear. Late edits change words after caption files are written, and a caption for a deleted scene is a common find. Check sync on five spread-out cues and placement against on-screen text.Every QA pass returns:
references/targets.md or the buyer spec sheet. Never quote a target from memory when the sheet is in the skill.references/worked-example.md, with real tool output: a black frozen opening, two seconds of dead air, loudness 8.9 LU under target, two broken caption cues, and the ranked fix list they produced.references/: targets.md (loudness targets and export spec list), check-sheet.md (safe zone boxes with worked pixel sizes, phone player overlay guide, caption form and wording checks), worked-example.md (a full pass on a flawed render). Working tools live in scripts/: render_qa.py (specs, loudness, black, freeze, silence, cuts) and caption_check.py (SRT form checks). Both were run against a real test render before this skill shipped.publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e
No ratings yet — be the first to rate it.