Loading...
Loading...
Add visuals to edited voiceovers: Overlay HTML layers on screen recordings (key point circling / full-screen black animation / zoom-in), bind layers to subtitle screens, drive frame by frame via the player, and preview directly. Use this when users mention creating storyboards, adding visuals, animations, key point annotations, B-roll, or making storyboards. Do NOT use for word-cutting editing, subtitle creation, physical clipping, or final video rendering.
npx skill4agent add agentchengfeng/chengfeng-videocut-skills chengfeng-visualRequires edit-list.json, transcript.json, subtitles.json
Outputs visuals.json + modules/<sequence-name>/index.html<plugin root>runtime.kind=desktop-managedlaunchd/windows-tasknode "<plugin root>/scripts/ensure-running.cjs" --json
node "<plugin root>/scripts/videocut-cli.cjs" visual get <project> --json
node "<plugin root>/scripts/videocut-cli.cjs" visual frame <project> --cues sub-0004,sub-0005 --count 12 --out <dir> --json
node "<plugin root>/scripts/videocut-cli.cjs" visual add <project> --module modules/01-xx/index.html --cues sub-0004,sub-0005 [--zoom x,y,w,h] [--id vis-0001] --json
node "<plugin root>/scripts/videocut-cli.cjs" visual remove <project> --id vis-0001 --jsonensure-running--cues① Define task via text Read subtitles.json, segment by semantics, and answer for each segment:
Is it a tutorial/demonstration/proof, or concept/logic/transition?
② Check frames for visuals Use visual frame to extract 8-12 frames, and actually check them visually.
In practice, 2 out of 12 segments had their text-based predictions overturned by visuals —— this step is not a formality
③ Measure motion windows Calculate pixel differences between adjacent frames to find moments of scrolling/switching/operations.
Layers only cover stable windows, and annotations exit before the screen starts moving
④ Create and place layers Write modules → visual add → verify layer by layer in previewVisuals exactly match what was mentioned → Annotation: Circle the area, circle where the corresponding word is spoken. Do not cover real evidence
Weakly related/blank visuals → Black animation: Full-screen white background, created from the style library
Visuals are clear enough on their own → Do nothing. This is the most common correct answer (4 out of 13 segments required no changes in practice)Annotation coordinates Calculated via pixel statistics (grayscale scan to find text lines), no visual estimation —— visual estimation can have errors over 50px
Interaction moments Find sudden changes via frame-by-frame pixel differences (one case jumped from 4 to 335 in practice), annotations must finish exiting 0.2s before this moment
Stable windows The start often has scrolling (the user is looking for content), layers start binding from the cue where the screen stabilizesZoom is disabled by default. 960x720 screen recordings become blurry when zoomed, and users will notice immediately
When zoom is absolutely necessary ≤1.6x magnification, select a 62.5% square area centered —— complete composition > reading small text
Text is too small to read Use annotations to guide attention; if reading is truly necessary, the solution is re-recording in high resolution, not zooming01-daily-report05-anim-task-splitAlways check the module when modifying layers After narrowing/extending a layer, hardcoded relative timings in the module will not update ——
the exit timing of annotations may fall after the layer ends, causing them to never appear
Check pixels during acceptance Check visuals via screenshots, do not check DOM attributes. An iframe with "correct visibility toggle"
once physically did not appear on the screen —— all attributes were correct, but the screen was blank