GUIDE / LOCAL VIDEO WORKFLOW / 15–30 SECONDS
Render a local product video you can edit and rerun.
This tutorial follows one complete path: download the free Product video starter Skill, run its verified sample, then replace the sample image and English copy with your own local files. The renderer uses Node.js and the FFmpeg binaries already on your machine; it does not upload media, generate narration or publish for you.
BEFORE YOU RUN IT
Keep the boundary visible.
- Use a local PNG, JPEG, WebP, PPM or an FFmpeg-readable product video.
- Keep the title within 60 characters. Write three short English blocks:
hook,bodyandcta. Each must be 84 characters or fewer; long words are wrapped. - Choose 15–30 seconds. Add your own voiceover only when you have a local audio file; the Skill has no text-to-speech path.
- Render into a new output directory for every revision. Existing output files are never silently replaced.
01 / VERIFIED SAMPLE
Run the same input that produced the public preview.
These commands make a clean folder, download the v0.1.1 package and use the public sample image. The sample is an original synthetic interface illustration. It is not a recording of the current FeedSkills website or a customer result.
mkdir -p feedskills-video-demo/assets
cd feedskills-video-demo
curl -fL https://feedskills.com/downloads/product-video-starter-0.1.1.zip -o product-video-starter.zip
unzip -q product-video-starter.zip
curl -fL https://feedskills.com/examples/product-video-starter/alpha-revision/product-media.png -o assets/product-media.png Save this input as input.json in feedskills-video-demo/:
{
"title": "Make the next revision easier to review",
"product_media": "./assets/product-media.png",
"duration_seconds": 15,
"copy": {
"hook": "Compare the message before you publish.",
"body": "Keep the same product view while the copy changes.",
"cta": "Edit the project, then render another cut."
}
} Render from the extracted Skill folder and inspect the technical result:
node product-video-starter/scripts/render-video.mjs ./input.json --output ./output-verified
ffprobe -v error -show_entries format=duration:stream=codec_type,width,height -of default=noprint_wrappers=1 ./output-verified/video.mp4 The expected output is a 15-second silent MP4 plus captions.srt, project.json, render-report.json and README.md. Compare it with the verified public sample and its inspectable files; the recorded review passed FFmpeg decode and FFprobe checks, while the preview remains silent and does not claim narration acceptance.
02 / YOUR INPUT
Replace the media and copy without touching the Skill.
Put your own file beside the sample asset, then save this as my-input.json in the project root. Keep the paths relative to that JSON file. Remove voiceover_audio when the intended result is silent.
{
"title": "A useful product detail",
"product_media": "./assets/my-product.png",
"duration_seconds": 15,
"copy": {
"hook": "Make the first detail easy to see.",
"body": "Move through the product in one clear step.",
"cta": "Try the workflow with your own asset."
},
"voiceover_audio": "./assets/my-voiceover.wav"
} Render the revision into a different directory:
node product-video-starter/scripts/render-video.mjs ./my-input.json --output ./output-01 The command rejects missing files, unsupported audio, non-English caption blocks and overlong captions before rendering. A passing technical check means the file decoded and the declared streams exist; watch the complete MP4 and listen through any supplied narration before publishing.
03 / HUMAN REVIEW
Check the handoff, then decide whether to edit again.
- Open
video.mp4from start to finish. Check that the product media stays readable and that each caption arrives in the intended part of the message. - Open
project.jsonand confirm the source paths, copy and caption timings are editable. Keep the source files in your own project. - Read
render-report.json. Confirmdecode_checkandffprobe_checkpassed; treat visual quality, product claims and voiceover sync as human review. - Edit the JSON or the original input, then use a new output directory such as
output-02. Do not overwrite an earlier review.