Communitygithub.com

Image Story Assembly Hardening

Use when assembling a long (≥5 min / ≥40 shots) image-story or slideshow video with ffmpeg — push-in (Ken Burns / zoompan) motion, crossfades, burned-in or layered subtitles, and pre-delivery QC.

What is Image Story Assembly Hardening?

The Image Story Assembly Hardening skill provides a comprehensive framework for assembling long-form image-story or slideshow videos (≥5 minutes or ≥40 shots) using ffmpeg. It addresses four critical failure modes that only manifest at this scale: multi-branch filtergraph OOM/throttling, crossfade subtitle ghosting, zoompan jitter, and generation artifacts such as scan-lines and baked watermarks. This skill equips developers and AI agent users with quantitative criteria to detect and mitigate these issues, ensuring stable and high-quality output. It supports push-in (Ken Burns/zoompan) motion, crossfades, and both burned-in and layered subtitles, making it ideal for producing polished, delivery-ready video assemblies.

Works with~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/pangpang888/image-story-assembly-hardening/tree/main

Ask in your favorite AI

Open a new chat with this agent skill pre-loaded.

Documentation

What does Image Story Assembly Hardening do?

Use when assembling a long (≥5 min / ≥40 shots) image-story or slideshow video with ffmpeg — push-in (Ken Burns / zoompan) motion, crossfades, burned-in or layered subtitles, and pre-delivery QC. Covers the four failure modes that only show up at this scale (multi-branch filtergraph OOM/throttle, crossfade subtitle ghosting, zoompan jitter, generation artifacts like scan-lines and baked watermarks) plus the quantitative criteria to catch them. 触发词:图片联播、静态图叙事、长片装配、推镜卡顿、转场字幕叠影、去水印、扫描线伪影、成片 QA.

Failure ModeSymptomQuantitative CriteriaMitigation Strategy
Multi-branch filtergraph OOM/throttleffmpeg crashes with "Cannot allocate memory" or excessive frame dropsMemory usage > 80% of available RAM; frame drops > 5% of total framesSplit into smaller chunks (e.g., ≤20 shots per pass); use hardware acceleration (hwupload_cuda); reduce concurrent filter branches
Crossfade subtitle ghostingSubtitles remain visible during crossfade transition, creating overlapping textVisual inspection: subtitle text appears for > 1 frame after transition start; subtitle opacity > 0.5 during crossfadeApply setpts=PTS-STARTPTS before overlay; use fade filter on subtitle stream; or render subtitles as separate video stream and crossfade after overlay
Zoompan jitterKen Burns pan/zoom motion appears jerky or stutteringFrame-to-frame displacement > 2 pixels for smooth motion; inconsistent zoom rate (per-frame scale factor varies > 5%)Use zoompan with d (duration) parameter set to shot length; apply fps=30 filter; use scale before zoompan for high-res images
Generation artifacts (scan-lines, baked watermarks)Horizontal scan-lines or persistent watermark remnants in outputArtifact visibility at 1:1 pixel ratio; peak signal-to-noise ratio (PSNR) < 30 dB compared to sourceUse zscale or sws_flags=lanczos for high-quality scaling; apply unsharp filter (5:5:0.8:3:3:0.4) to reduce scan-lines; mask or inpaint watermarks before assembly

Related Skills