Identify the intended ending

video-assemble’s pairing and foreground paths preserve an existing picture interval; successful composition does not automatically create a branded ending. A black tail in the locked master can survive faithfully into the result.

Original tutorial: content ends at nine seconds, with one second reserved for a program card. Narration ends at 9.4 seconds, but the output shows only black. First establish that this is an unfinished card interval rather than an intentional pause.

Repair an upstream omission in the timeline, or provide media for the accepted reserved range. Compatible picture and audio durations do not prove the ending works editorially.

Place the card in an explicit interval

Example intervalContent and limits
0–9 secondsContent: Locked tutorial and packaging; Preserve: Action order and narration
9–10 secondsContent: Program endcard; Preserve: Complete final words and adopted mix
After 10 secondsContent: No accepted content; Preserve: No invented black or silent extension

This is a fictional ten-second master, not a one-second recommendation for all cards. Set duration with reading needs, audio and delivery requirements. If extension is necessary, revise the timeline instead of expecting hidden padding.

For frame handoff, include the start and exclude the end. At 30 fps, this card occupies output frames 270 through 299. Explicit bounds prevent a missing or duplicated boundary frame.

Use actual still or animated assets

Use a full-canvas PNG when the intended card is genuinely static. For a fade, moving text or other change, render every endcard frame; freezing the last image cannot reproduce the animation.

This version of foreground-compose accepts caller-rendered full-canvas RGBA sequences or an explicit still card. It does not generate copy, fonts or branding animation, and does not fill missing media by repeating a frame. Foreground and card ranges must meet, with the card ending at the verified master endpoint.

When no card is wanted, the foreground can cover the full master. Do not reserve an uncovered tail and expect “no endcard” to create an implicit filler.

Inspect the tail and listen to the last line

Inspect frames around the card entry for uncovered black, leftover image or captions that jump back. Play at normal speed to assess reading time and whether the intended fade actually occurs.

Listen to the final words and musical ending. Cutting to the shorter stream can remove required sounds. If duration changes, confirm both intervals again while preserving accepted content.

A rendered file is a result, not proof of a finished ending. If frame counts pass but black remains, inspect black pixels in the asset, uncovered transparent regions or misplaced ranges. Locate the failed content and produce a revised candidate.

FAQ

Is every black ending an export error?

No. Black may be an intentional pause or space for continuing sound. Check the intended range; repair missing required content or unintended frames.

Do it with the skill

Use $video-recap to inspect a black tail against content, audio and reserved card ranges. Supply an actual still or full animation when needed, preserve adopted audio and check boundary frames.

Read the method: Endcard assets and frame ranges · Packaging and final playback

About Video Recap SkillsThe video-assemble skill on GitHub

All guides