The most important fact about social video: most of it plays on mute. Feeds autoplay silently, and viewers decide in a second or two whether to stay — which means captions are not an accessibility extra, they are the script your audience actually reads. The platforms' own data has said this for years; the working standard everywhere is burned-in captions.
Hard subs, in plain terms
"Hard" subtitles are rendered into the picture itself — every player, every platform, every embedded preview shows them, because they are pixels, not metadata. "Soft" subtitles (a separate track) are technically nicer but practically invisible on social: most feed players simply do not render them. This is why professional social clips all carry that white-with-outline text — and why this guide exists.
The flow, end to end
- Get your caption file — an
.srtor.vtt(see the FAQ for sources). Fix any typos now; after burning, the text is permanent. - Open Add Subtitles to Video and drop the video and the caption file together.
- Pick the text size — err larger for phone screens — and burn. Re-encoding runs at roughly real-time speed, in your browser.
- Preview in the page: the captions are part of the picture now.
libass — the professional subtitle renderer — running in your browser. The video never uploads.
Finishing for each platform
Feeds are kinder to right-sized files: resize to 1080 wide for feed posts (720 is fine for chat), then compress if the platform's size limit still complains. If the clip needs trimming to the good part first, trim before burning so the caption timing still lines up. Converting a snippet to a GIF for docs or chat? Video to GIF keeps the burned captions, since they are part of the frames.