Burn Subtitles Into Video
Make SRT or VTT subtitles a permanent part of the picture, styled exactly how you want, with a live preview and readability checks before you commit. No watermark, and nothing is uploaded.
Drop your video here
MP4, MOV, WebM or MKV. Then add an SRT or VTT file, or paste the text.
Nothing is uploaded. The video is decoded and re-encoded on this device.
Burnt-in subtitles are pixels. There is no track to switch off, no captions menu to find, no font for the player to substitute and nothing to fail to load — which is exactly why people burn them, and exactly why the styling matters more here than for a sidecar file. A soft subtitle that looks wrong can be changed by whoever is watching. A burnt one is the video.
So this is built around seeing the result before committing to it. The preview runs the same renderer the export uses, at the same proportions, because a preview that is not to scale is worse than none — it makes text look right at a size that will be wrong. And the problems that are usually only obvious in hindsight are raised as warnings: a cue too fast to read, two cues overlapping so only one can show, subtitles timed past the end of the video. All three are trivial to fix now and impossible to fix once the file is rendered.
The render pulls frames rather than recording playback. Every frame the output needs is decoded, captioned and encoded, which runs faster than the video plays and cannot drop a frame because the machine was briefly busy — and a dropped frame here is a subtitle that flashes or never appears. The audio is carried through untouched.
How to burn in subtitles
-
1. Add your video
Drop in an MP4, MOV, WebM or MKV. It is decoded in your browser and never uploaded, whatever its size.
-
2. Load the subtitles
Open an SRT or WebVTT file, or paste the text straight in. Both formats are read by the same parser, and inline styling tags are stripped so they do not appear on screen as literal angle brackets.
-
3. Style them
Start from a preset — Classic, Streaming, Boxed, Band, Social, Yellow or Minimal — then adjust font, size, colour, outline, background, position, margin, width and line spacing. Size is a percentage of the frame height, so it means the same thing whatever the resolution.
-
4. Check the timing
Scrub the preview, or click any cue in the list to jump straight to it. If the subtitles are consistently early or late, nudge the timing offset until they land on the speech.
-
5. Read the warnings
Cues too fast to read, cues that overlap, and cues timed past the end of the video are all flagged before you commit. Once subtitles are burnt in they cannot be edited, so this is the moment to catch them.
-
6. Burn and download
Every frame is decoded, captioned and re-encoded, and the audio is carried through untouched. The file is written on your machine.
Burnt in, or a separate file?
Burn them when you do not control the player. Instagram, TikTok, most embedded players and anything shared as a plain file will either ignore a sidecar SRT or bury it behind a menu nobody opens. Most social video is watched with the sound off, so captions that are optional are captions that are missed.
Keep them separate when you do control the player, when you need more than one language, or when accessibility guidance applies. A viewer who needs larger text can resize a real caption track; they cannot resize a burnt one. If in doubt, do both — upload the subtitled file where it is needed and keep the SRT alongside the original.
Fixing the subtitles, not just burning them
Flagging a problem and leaving you to fix it somewhere else is only half the job, so each warning comes with the repair for it. Cues that read too fast are extended into the silence that follows them. Overlapping cues are separated by trimming the earlier one, which is safer than delaying the later one — the later cue is the one still being spoken. Cues carrying too much text are split at a sentence end where there is one, and at the nearest word boundary otherwise, with the time divided in proportion to the text.
Where a repair cannot work, it says so. A cue with another right behind it has nowhere to grow, and reporting that honestly is more useful than silently overlapping them — which would trade a readability problem for a correctness one. Anything the automatic repairs cannot reach, you can edit by hand: click a cue to change its text or its timings, with the reading speed updating as you type. And you can save the corrected subtitles back out as SRT or VTT, so the work is not trapped inside one render.
Animation, and when to use it
Broadcast subtitles do not move, and that is a decision rather than a limitation: movement pulls the eye away from the picture, and across a feature-length film it is exhausting. If you are captioning something long — a documentary, a lecture, an interview — leave the animation off, or use nothing stronger than a fade.
Short-form social video is the opposite case. Most of that audience is watching without sound, the clip is over in thirty seconds, and captions that arrive word by word measurably hold attention. That is why the look is everywhere. Word by word and word pop bring one word in at a time; karaoke highlight shows the whole line and runs a colour across it as it is spoken, which keeps the sentence readable ahead of the voice rather than making people wait for it.
Every animation is driven by where the frame sits inside its cue, never by wall-clock time. So what you see in the preview is what lands in the file, and re-rendering the same video at a different frame rate produces the same motion rather than a faster or slower version of it. Turn on the looping preview to judge one: a still frame shows a single instant of an entrance and tells you almost nothing.
Making them readable
-
Outline over box
An outline follows the letters and hides almost none of the picture. A box is more legible over busy footage but covers more of the frame.
-
Stay off the edge
Players and social apps overlay controls, progress bars and usernames along the bottom. Text flush to the edge disappears behind them.
-
Even lines, not full ones
Long cues are split into lines of similar length rather than one full line and an orphan word. Breaks already in your file are kept.
-
Two lines, no more
Three lines cover the picture and read slowly. Reduce the size or the maximum width until cues fit in two.
-
Watch the reading speed
Above about 17 characters a second the text is gone before it is read. Automatic transcripts produce these constantly.
Frequently asked questions
What does burning subtitles in actually mean? +
It means the text becomes part of the picture — the same pixels as the video itself. There is no separate track, so there is no captions menu to find, nothing for a player to fail to load, and no font for it to substitute. They are also called hardcoded or open captions. The trade is that they are permanent: a viewer cannot switch them off, change the size, or pick another language, and you cannot edit them afterwards without re-rendering from the original.
When should I burn subtitles rather than use a separate SRT? +
Burn them when you do not control the player. Instagram, TikTok, most embedded players and anything shared as a file will either ignore a sidecar SRT or bury it behind a menu nobody opens — and the majority of social video is watched with the sound off, so captions that are optional are captions that are missed. Keep them separate when you do control the player, when you need more than one language, or when accessibility guidance applies: a viewer who needs larger text can resize a real caption track and cannot resize a burnt one.
Is my video uploaded anywhere? +
No. It is decoded, captioned and re-encoded entirely in your browser, and no part of it is transmitted. There is no file size limit for the same reason — there is nothing to upload.
What subtitle formats can I use? +
SRT and WebVTT, either as a file or pasted straight in. Both are handled by the same parser, since they differ in almost nothing that matters: a header line, a comma or a full stop before the milliseconds, and optional cue settings after the arrow. Blocks that cannot be read are skipped rather than rejected, because a file with one malformed cue in the middle is still a file worth using.
What is the characters-per-second warning? +
It is a readability check. Subtitling standards cap reading speed — Netflix uses 17 characters per second for English, and lower for children’s programming — because a subtitle that is accurate but gone before it can be read is no more useful than a wrong one. Automatic transcription produces these constantly, since it times cues to the speech rather than to reading. The tool flags them before you burn, which is the only moment the fix is cheap.
Why does it warn about overlapping cues? +
Because only one of them will appear. If a cue starts before the previous one has ended, this tool shows the earlier one and the later one is simply lost for the overlapping stretch. Most players behave the same way. It is a common artefact of hand-edited timing and of merging two subtitle files, and it is invisible until the exact moment it matters.
My subtitles are out of sync. Can I fix that here? +
If they are consistently early or late, yes — the timing offset shifts every cue together, up to ten seconds either way. Scrub to a line of speech and nudge it until the text lands. What the offset cannot fix is drift, where the error grows through the video: that usually means the subtitles were written against a different frame rate or a differently edited cut, and no single shift will line them up.
Will the quality drop? +
Slightly, as with any re-encode, and you control how much. Every frame is decoded, captioned and encoded again, so the output is a second generation. The bitrate is derived from your source file rather than from a fixed number, and High or Maximum keeps that generation from showing. What the tool never does is record playback into a recorder — that approach drops frames under load, and a dropped frame here can mean a subtitle that flashes or never appears at all.
Can I fix the problems it finds? +
Yes, and that is the point of flagging them. Cues that read too fast can be extended into the silence that follows them, in one click; the tool reports honestly how many it could not help, because a cue with another right behind it has nowhere to grow and needs splitting or shortening instead. Overlapping cues can be separated by trimming the earlier one, which is the safer repair since the later cue is the one still being spoken. Cues carrying more text than fits in two lines can be split, at a sentence end where there is one in the middle third and at the nearest word boundary otherwise, with the time shared in proportion to the text on each side. Every repair can be undone, and you can also edit any cue text or timing by hand with the reading speed updating as you type.
Can I get the corrected subtitles back out? +
Yes — save them as SRT or VTT at any point. Repairs and hand edits are included, so the work is not trapped inside one render. It is worth doing before you burn: the corrected file is the one you will want next time, and for uploading alongside the video where a real caption track is accepted.
Do I have to render the whole video to check the styling? +
No. Render a ten-second sample from wherever the playhead is, at the real settings, and check it before committing. It starts at the playhead rather than at zero because the opening of a video is usually a title card with nothing to caption. A twenty-minute burn is an expensive way to discover the text is too small.
What are the safe-area guides for? +
They shade the part of the frame the platform covers with its own interface. TikTok stacks a caption, a username, a music credit and a button rail over roughly the bottom fifth and right sixth of the frame; Reels and Shorts are similar; broadcast uses a traditional ten per cent margin. Subtitles placed there are not clipped, they are simply covered — and you will never see it happen in your own player, because your player shows none of that furniture. The guides are preview only and never burnt in, and the tool warns when your margin would put the text underneath.
Can the subtitles be animated? +
Yes, ten ways. Fade, pop, slide up, slide in and blur in animate the cue as a whole. Typewriter reveals letters across the cue. Word by word and word pop bring in one word at a time, which is the look most short-form social video uses. Karaoke highlight shows the whole line from the start and moves a colour across it as each word is spoken. Every one is a pure function of where the frame sits inside its cue rather than of wall-clock time, so the animation is identical in the preview, in the export, and again if you re-render at a different frame rate.
How do the word-by-word animations know when each word is spoken? +
They spread the words evenly across the cue. Neither SRT nor WebVTT carries word-level timestamps — only the start and end of each cue — so an even distribution is the honest approximation, and it is a good one: the animation starts and finishes exactly with the cue, which is the part a viewer notices. Keeping cues short makes it more accurate, which is what you want for readability anyway.
Should I animate at all? +
It depends on where it is going. For film, television, documentary or anything long, no — broadcast subtitles do not move because movement pulls the eye away from the picture, and over an hour that is exhausting. For short-form social video, yes: word-by-word captions measurably hold attention, most of that audience is watching with the sound off, and the clip is over in thirty seconds. The looping preview is there so you can judge it rather than guess, and a still frame will not tell you — it shows one instant of an entrance.
How does it decide where to break a long line? +
It balances the lines rather than filling them. The obvious approach is to pack the first line until it will not take another word and drop the rest onto the second, which is how you end up with a full line followed by the single orphan word "letter." — the text was not too long, it was badly divided. So the number of lines is settled first, and then the narrowest width that still fits in that many lines is used, which pushes the break towards the middle at no cost: the same words, the same number of lines, spread evenly. On a real example the difference between the two lines went from 806 pixels to 31. Line breaks already present in your subtitle file are treated as deliberate and kept, since whoever wrote them usually broke at the sense.
Why is the size set as a percentage of the frame? +
Because a subtitle in points or pixels means something different at every resolution — 24 pixels is comfortable on a 480p clip and nearly invisible on 4K. Expressed as a percentage of frame height, one setting looks the same on every video, and you can change the output resolution without restyling.
Should I use an outline or a background box? +
An outline follows the shape of the letters and covers almost none of the picture, which is why broadcast subtitles use one. A box is more legible over busy, bright or fast-moving footage but hides more of the frame. The band is a compromise for talking heads, where the bottom of the frame is rarely doing anything. Over unpredictable footage a heavy outline is usually the safest single choice.
Where should subtitles sit on the frame? +
Bottom, with a margin, for almost everything. Keep them well inside the edge: players, phone interfaces and social apps all overlay controls, progress bars and usernames along the bottom, and text flush to the edge disappears behind them. For vertical social video the Social preset places them nearer the middle for exactly this reason. Move them to the top only when something important sits at the bottom of the shot.
Can I get subtitles if I do not have a file? +
Yes — our video transcription tool generates them from the speech, on your own machine, and exports SRT or VTT you can load straight in here. It is the natural pairing: transcribe first, correct the text, then burn it in.
How long does it take? +
It depends on the length, resolution and frame rate, but it is faster than the video plays, because frames are pulled and encoded as fast as the machine allows rather than in real time. A minute of 1080p at 30 fps is a few thousand frames, each decoded, drawn and encoded. Lowering the frame rate or the output size is the quickest way to speed it up.