50% off your first payment with code SAVE50Claim 50% off

How to add captions to a product demo video

The deciding fact about demo captions: almost everywhere a product demo plays, it plays muted. Landing pages autoplay muted by browser policy, and social feeds do the same. So captions are not an accessibility extra on a demo, they are the narration, and that decides most of the technical choices below.

Burned in, not a subtitle file

A subtitle file (.srt, .vtt) is the right tool for films and lectures, where the player is a real player. A demo lives in a landing-page video tag, a README, an embedded tweet: players that either ignore subtitle tracks or hide them behind a control nobody taps on an autoplaying clip. Burning the captions into the pixels is the only delivery that survives every one of those surfaces.

Transcribe locally

Cloud transcription APIs work, but a screen recording of your own product routinely shows real data, and uploading it to transcribe it is an avoidable leak. whisper.cpp runs the Whisper model locally with no API key; Vidlet's CLI uses it (vidlet caption video.mp4), so the file never leaves the machine, and the web app burns the captions in-browser with FFmpeg.wasm. Then proofread: speech models miss product names and jargon, because they have never seen yours.

Style for a muted feed

High contrast over a busy product UI, few words on screen, and in vertical formats keep captions in the middle safe zone, because TikTok, Reels and Shorts draw their own UI over the bottom of the frame. Vidlet ships four burned-in presets: word-by-word highlight, karaoke fill, classic outlined, and minimal boxed, with configurable size and position.

Doing it with Vidlet

One command transcribes locally and burns styled captions in; the same toolkit covers the rest of the demo pipeline (trimming, silence removal, speed-up, masking, compression) described in how to turn a screen recording into a demo video. The CLI is free with no subscription, and an MCP server lets an AI assistant drive it.

FAQ

Should demo captions be burned in or a separate subtitle file?

Burned in. An .srt or .vtt file only works where the player supports and enables it; a landing-page <video> tag, an embedded tweet, and most feed players autoplay muted with no subtitle track showing. Burned-in captions are part of the pixels, so every viewer sees them everywhere the video plays.

Can I generate captions without sending the video to a cloud API?

Yes. whisper.cpp runs OpenAI's Whisper speech-to-text model locally on your CPU with no API key and no upload. Vidlet's CLI and MCP server use it for transcription, so a demo that shows real customer data never leaves your machine. The web app burns captions in-browser with FFmpeg.wasm.

How accurate is automatic transcription on product names?

General speech transcribes well; your product's name and technical jargon are the usual misses, because no speech model has seen them. Always read the transcript before burning it in. Fixing three words in a text file takes a minute; a published demo that misspells your own product name costs more.

Where should captions sit in a vertical (9:16) demo?

In the middle band of the frame. TikTok, Reels and Shorts all overlay their own UI over the bottom of the video and username chrome near the top, so captions placed at the conventional bottom get covered by the like button and the caption box. Keep them inside the safe zone.

What caption style works best for demos?

High contrast and few words on screen at once. Word-by-word highlight styles carry attention in fast social cuts; a plain outlined style reads better in a long-form walkthrough where the viewer is also watching the UI. The style matters less than contrast: thin grey text over a light product UI is the common failure.