A small local path from product media to an editable demo
product-video-starter is a free, bounded workflow for a short vertical product demo. Give it one product image or video, three English copy blocks and a duration from 15 to 30 seconds. It uses the ffmpeg and ffprobe commands already available on your machine; it does not call a paid media service or download assets.
Extract the ZIP into a new project folder, keep the product-video-starter/ directory intact, and provide your own input JSON. The package is a local workflow and is not published to npm.
Inputs and dependencies
- A local product image (
.png,.jpg,.jpeg,.webpor.ppm) or an FFmpeg-readable product video. - A title of up to 60 characters and English
hook,bodyandctacopy of up to 84 characters each. - A duration between 15 and 30 seconds.
- Optional user supplied English voiceover audio. The Skill has no text-to-speech path.
- Node.js 18 or newer, plus
ffmpegandffprobeonPATH.
The input paths are resolved relative to the JSON file. Client media and voiceover files stay in the user’s project and are never placed in this download.
Outputs
Run this from the extracted Skill directory:
node scripts/render-video.mjs ./input.json --output ./output-01
Each fresh output directory contains:
video.mp4: a 720×1280 H.264 vertical render.captions.srt: the caption source used by the render.project.json: editable source paths, copy and caption timings.render-report.json: FFmpeg version, stream information and decode evidence.README.md: a local handoff note.
Use a new output directory for every revision. Existing output files are not overwritten. To change timing, edit the three contiguous captions start/end pairs in project.json; they must cover the full duration. Change the copy fields to change the words.
Preview and evidence
Open the self hosted technical preview
The preview uses a local demo input and a silent render. It demonstrates the package path and output shape; add a user provided voiceover when narration is needed. A passing decode check, a screenshot or this controlled input does not establish publishing quality, product performance or customer adoption.
Fixed limits
This is a small local renderer with one media input, three caption blocks and a fixed vertical layout. It has no general editor, transitions, music mixing, remote media, TTS, automatic publishing or platform-specific performance promise. If narration is required, supply a voiceover file you own and listen through the complete result to check delivery and sync.
The package contains no customer files or third-party stock media. Review the complete output for composition, claims, caption readability and audio before publishing.