← ClaudeAtlas

wjs-burning-subtitleslisted

Use when the user has a video + an SRT and wants the subtitles either burned into the pixels (libass, always-visible) or soft-muxed as a togglable track. Also handles the final composite step for the localization pipeline — burn subs, mix a dub track, and keep the original audio as a low-volume bed, all in ONE ffmpeg encode (no cascade). Verifies libass availability and auto-downloads a static evermeet ffmpeg build when Homebrew's stripped binary lacks it. Triggers — "烧字幕", "硬字幕", "burn subtitles", "burn-in subs", "embed subtitle", "soft mux SRT", "把字幕烧进视频", "做最终合成".
jianshuo/claude-skills · ★ 77 · AI & Automation · score 85
Install: claude install-skill jianshuo/claude-skills
# wjs-burning-subtitles Video + SRT → video with subtitles. Also the final-encode stage for the localization pipeline: takes a video, an optional dub track from `/wjs-dubbing-video`, and an optional SRT to burn, and produces the upload-ready MP4 in **one** ffmpeg pass. No cascade of decodes/re-encodes. ## When to use - User has an SRT and wants it always-visible on the video (burn-in for 微信视频号 / 抖音 / WeChat — players that won't honor embedded subtitle tracks). - User wants a togglable subtitle track (soft-mux) for QuickTime / VLC / IINA / mobile players that support `mov_text`. - Final composite after `/wjs-dubbing-video`: burn target-language subs + mix dub over original-as-bed in one encode. ## When NOT to use - No SRT yet → run `/wjs-transcribing-audio` then `/wjs-translating-subtitles` first. - HTML/CSS captions (kinetic, per-word highlights, custom fonts) on a clip composed in HyperFrames → use `/wjs-overlaying-video` instead. Don't mix libass burn-in with HyperFrames captions on the same output. - The "subtitles" are actually motion graphics (animated callouts, lower-thirds with logos, kinetic typography) → that's `/wjs-overlaying-video`, not this skill. ## The 3 modes of `render.py` `scripts/render.py` auto-detects mode from flags: 1. **Subtitles only** — `--video + --srt` → re-encodes video with burned subs, original audio passes through. 2. **Dub only** — `--video + --dub` → keeps original video stream; replaces or mixes the audio track. 3. **Full localized c