How do you burn subtitles into a video for Instagram Reels?
Bring the clip into Captivo, let it transcribe and time the captions, style them in the editor, then export a subtitled MP4 or WebM. The encoding is done by your own browser, so the video file never leaves it. One thing to plan ahead: Captivo keeps whatever frame it is given, so crop the clip to 9:16 before you add the captions, not after.
What a Reel needs, and who does what
| What the Reel needs | Does Captivo do it? | Where it happens |
|---|---|---|
| Captions timed to the speech | Yes | Automatic recognition with word-level timing, corrected in the browser editor |
| Captions in another language | Yes | Recognition in 99 languages, translation into 99 |
| Captions burned into the picture | Yes | Your browser encodes a subtitled MP4 (H.264 and AAC) or WebM (VP9 and Opus) |
| A 9:16 frame | No | Crop in your video editor or in the Reels composer, before the clip reaches Captivo |
| Trimming, music, transitions | No | Your video editor |
| A subtitle file for another editor | Yes | Download SRT, VTT, TXT or ASS instead of a burned-in video |
| Publishing the Reel | No | The Instagram app |
Doing it, step by step
- Crop to 9:16 firstCut the clip to the vertical frame in your editor before anything else. The export writes the picture back at the size it received, so cropping afterwards would slice through the captions.
- Open the clip in CaptivoThe audio is separated in your browser and only that goes out for recognition; the video stays in the browser storage, and the audio copy is deleted as soon as the job ends.
- Fix the wordsRecognition is good, not perfect. Names, numbers and slang are what a short clip is usually made of, so this is the one step worth a minute of reading.
- Translate, if the Reel is for another audienceA translated track sits next to the original, and both can be burned into the same export.
- Style the captionsStart from a built-in preset or set the font, size, colour, outline, background and position yourself. Word-by-word highlighting is available, and the export draws it from the same code as the preview.
- Export the subtitled videoPick MP4 or WebM and an output height, then let the browser encode. Nothing is uploaded for this step, and the finished file downloads straight to your machine.
What Captivo will not do to your frame
The export composites the captions onto the picture it was handed and writes it back at the same aspect ratio. The only size control is the output height: the original, 1080p, 720p or 480p. There is no crop, no padding and no reframe, so a 16:9 clip comes back as a 16:9 clip with captions on it. That is why the vertical crop belongs at the start of the workflow.
Fonts, and the Cyrillic trap
The browser export draws the captions in the font you actually picked, using the same renderer as the preview. Several of the display faces in the font list carry Latin glyphs only, and a caption in Ukrainian, Russian or Serbian set in one of them is drawn with a substitute face instead. It shows in the preview too, so look at the preview in the caption language you are shipping, not in English.
Do the export on a computer
The in-browser encoder needs WebCodecs, which older browsers do not have (Firefox before version 130, older Safari). Captivo sends exports from iPhone and iPad to a server-side encoder instead, and that server path is switched off in every environment today, so a phone export falls back to the same in-browser encoder that mobile Safari handles poorly. Until the server path is turned on, burn the captions in on a desktop browser and move the finished file to the phone.
The badge on free exports
A video exported on the free plan carries a small Captivo badge in the corner; Pro and Business exports do not. Subtitle files never carry it, because the badge is painted into the picture and nowhere else.
Where these claims were checked
- The burn-in is encoded by the browser, and the video file is read from local browser storage rather than uploaded.frontend/src/services/videoExport/webcodecsExport.ts
- The export keeps the source aspect ratio; only the output height can be changed.frontend/src/services/videoExport/quality.ts
- Server-side burn-in is disabled by default and refuses the request without it, so exports run through the browser engine.backend/app/core/config.py, backend/app/api/api_v1/endpoints/burnin_export.py
- Only free-plan exports get the Captivo badge.frontend/src/utils/exportWatermark.ts
- The audio copy used for recognition is deleted once the job finishes or fails.backend/app/services/webhook_processor.py
Caption your next Reel
Start on the free plan, no card. Bring one cropped clip, get captions timed to the speech, and export it with them burned in.
Create a free account