Install
$ agentstack add skill-godot-fun-godot-framework-storyboard-av-mix ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Storyboard AV Mix
Take a work directory with per-shot video and bilingual VO. For each shot, retime the video to the full VO duration (audio master), drop original video audio, mux, and write language-specific folders.
| Input | Path | |-------|------| | Shot video | /Video/.* | | Chinese VO | /Chinese/.* | | English VO | /English/.* |
| Output | Path | |--------|------| | Chinese mux | /Video-Chinese/. | | English mux | /Video-English/. |
Rules
- Follow [skill-dependency-manager](../../rules/skill-dependency-manager.md).
- VO timing is immutable. Never stretch, shrink, pad, trim, or
atempothe voice-over. Duration of the VO file is the master clock. - Video serves audio. Only change video duration (FFmpeg
setpts) so it equals that shot’s VO length, then mux. - Drop all audio from the source video; replace with the VO track. Prefer
-c:a copy; if the container cannot hold the VO codec (e.g. WAV→MP4), encode AAC without changing length. - Do not downgrade video.
setptsrequires a re-encode, but match the source: codec family (H.265 Main10 when source is 10-bit HEVC),pix_fmt, bitrate, color tags, and HDR side data (mastering display / MaxCLL). Copy container + video-stream metadata from the source clip. - Match shots by filename stem (
01.mp4↔01.wav). - Batch only via
scripts/mix.py— do not hand-write FFmpeg mux/retime commands. - Never overwrite inputs under
Video/,Chinese/, orEnglish/.
Layout
/
Video/
01.mp4
02.mp4
Chinese/
01.wav
02.wav
English/
01.wav
02.wav
Video-Chinese/ # written by this skill
01.mp4
02.mp4
Video-English/
01.mp4
02.mp4
Typical ` is a storyboard-tts audio dir that also has a sibling or nested Video/ of cut clips — confirm the folder that contains Video/, Chinese/, and English/`.
Workflow
Task Progress:
- [ ] Confirm (has Video/, Chinese/, English/)
- [ ] Ensure .dependency python + ffmpeg populated
- [ ] Optional trial: mix.py --limit 1
- [ ] Full batch: mix.py
- [ ] Chat: counts written, output dirs, any skipped shots
One command
From project root:
.dependency/python/python .cursor/skills/storyboard-av-mix/scripts/mix.py path/to/
Per shot / language:
- Probe VO duration (source of truth) and video duration
setpts=PTS*(vo_dur/video_dur)— stretch or compress video only (plus short freeze-tail so video ≥ VO)- Mux with
-shortestso container duration == VO duration (never cut VO by making video the short side) - Write
/Video-Chinese|/.
Trial / one language
.dependency/python/python .cursor/skills/storyboard-av-mix/scripts/mix.py path/to/ --limit 1
.dependency/python/python .cursor/skills/storyboard-av-mix/scripts/mix.py path/to/ --lang chinese
Flags
| Flag | Notes | |------|--------| | root | Work dir with Video/, Chinese/, English/ | | --lang | both (default), chinese, english | | --limit N | First N shot ids only (sorted) | | --force | Overwrite existing outputs | | --dry-run | Plan only | | --crf | Optional CRF override (default: match source bitrate) | | --preset | x264/x265 preset (default medium) |
Skip existing outputs unless --force. Missing VO for a language → skip that job with a warning. Missing video → skip shot.
Agent notes
- Audio first: if durations disagree, change video, never VO.
- Prefer one
mix.pyrun for the whole board. - Re-encode must preserve source quality tags (Main10 / HDR / bitrate) — never force 8-bit H.264.
- Chat summary: `
, jobs done / skipped, paths toVideo-Chinese/andVideo-English/`. - Upstream VO usually from [storyboard-tts](../storyboard-tts/SKILL.md); this skill does not synthesize speech.
Related
- [storyboard-tts](../storyboard-tts/SKILL.md) — bilingual VO under
Chinese//English/ - [storyboard](../storyboard/SKILL.md) — source markdown
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: godot-fun
- Source: godot-fun/godot-framework
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.