embedded-captions

Adds verbatim or cinematic captions to talking-head videos using transcription and subject matting.

Updated Aug 28, 2026
One-click install
npx skills add https://github.com/AnderHonorato/Mem-rias-IA---Infinity --skill embedded-captions-anderhonorato
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: embedded-captions
Source: https://github.com/AnderHonorato/Mem-rias-IA---Infinity/tree/main/Manus/Skills/html-video-production/references/embedded-captions
Command: npx skills add https://github.com/AnderHonorato/Mem-rias-IA---Infinity --skill embedded-captions-anderhonorato

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill requires ffmpeg, whisper, onnxruntime, gsap, and includes scripts (resource) and references (resource) and assets (resource) components.

What problem does it solve? Adding styled captions to talking-head video normally requires manual editing, keyframing, and masking work in a video editor. This Skill automates the full pipeline locally: it transcribes the speech, mattes the subject, and composites captions either as a clean lower-third rail or as typography embedded behind the subject, without altering the original footage. ## Core Features & Use Cases - 36-identity catalog: Pick one visual identity (e.g. anchor, cream, ink, neon, ordnance, terminal) from CATALOG.md; the engine, compiler, and authoring file are derived automatically. - Three rendering engines: Standard rail + embedded climax, pure Cinematic column-flow embeds, and Theme mode for VFX-grade themed compositions with plate reactions. - Local end-to-end pipeline: Whisper transcription, human subject matting (u2net/PP-MattingV2), safe-zone probing, deterministic compilation, preview-frame visual QA, and gated rendering to final.mp4. - Use Case: Given a 30-second founder update clip, probe the footage, pick the keynote identity, author a small JSON of caption choices, preview composite frames, and render a captioned video with the climax word embedded behind the speaker. ## Quick Start Add captions to my talking-head video clip.mp4 using the anchor identity and render the final captioned video.

Frequently Asked Questions about embedded-captions

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I add captions to a talking-head video automatically?

Run the skill's pipeline: probe the clip with ffprobe, pick one identity from the 36-entry catalog, author a small JSON of creative choices, preview composite frames, then render with render-and-composite.sh. Transcription and subject matting run locally in one prepare step.

What is the difference between rail, embed, and theme captions?

Rail is a verbatim lower-third subtitle carrying most text; embed is a scarce peak word composited behind the subject using the matte; theme mode composes a full themed constitution (body paradigm, hero setpiece, front effects, plate reaction). The quiet anchor rail is the default.

Can I use this on multi-speaker or multi-shot videos?

No. The decision gate refuses clips with multiple speakers, hard cuts, no human subject, or under 3 seconds. Split multi-shot footage into individual shots and render each separately before applying captions.

Why do my captions wash out on bright video backgrounds?

Screen-blend caption templates fail on backgrounds above 180 luminance. The luminance pre-flight probe detects this; pick the ink identity (near-black multiply built for bright scenes) or the opaque anchor rail instead of recoloring a locked template.

Does the caption tool modify or recolor the original footage?

No. The video ships untouched; captions are the only addition, and the matte only lets the subject occlude embedded text. Grading, scanlines, or vignettes over the footage are prohibited, except theme mode's register-gated plate reactions.

Why are my captions firing off-beat from the speech?

Word timings must match transcript.json within 80ms, enforced by check-timing.cjs in strict mode. Never pack multiple transcript words into one entry; split them into separate word entries with their own timings even on the same visual line.