talking-head-b-roll

Installation
SKILL.md

Talking-head b-roll

The user's recording is already good: the words and delivery are final. A talking head alone is dull to watch, so the film's job is to decide, for each stretch of speech, what the picture shows. The voice never stops; only the picture changes.

The recording is never cut, moved, cropped or scaled. Everything you make is a layer drawn above it: transparent where the speaker should show, opaque where a graphic covers them. scripts/render.mjs lays that layer over the recording and keeps its sound.

Make it in one go: don't ask questions the recording or a sensible default answers, and list what you chose when you deliver. Work in a folder that holds the recording and run the scripts from there; outputs land there. Below, <skill> is this skill's folder (the one holding this file).

1. Transcribe

node <skill>/scripts/transcribe.mjs talk.mp4            # → transcript.json, and prints every line with its start and end

It prints the video's size, frame rate and length (they go into the page) and the transcript split at sentence ends, with every word timed in transcript.json. Read the whole transcript before deciding anything. It uses local whisper.cpp when installed, otherwise ELEVENLABS_API_KEY; with neither, it prints how to set one up. Pauses come from the audio itself, so the gaps between sentences are where the speaker actually stops; times inside a sentence are within a few tenths of a second. A transcript can mishear a figure: if one doesn't add up with the rest of what is said, keep it off screen and say so when you deliver.

2. Plan: three treatments

A. Speaker. The video alone, nothing over it. Use where the person is the point: the opening line, a personal opinion or story, an emotional beat, the call to action, the closing line.

Installs
49
First Seen
3 days ago