How to add subtitles to a video
- Drop the video (MP4, MOV, M4V, WebM or MKV) into the first box.
- Drop the subtitle file into the second box — .srt, .vtt or .ass — or paste or type the lines.
- Play or drag through the video. The subtitles appear on top exactly as they will be written.
- Choose a style (white with a black outline, white on a dark box, or yellow), a size and the position.
- Press Burn subtitles into video, check the result and download the MP4.
Typing subtitles yourself
A subtitle file is plain text. Each line on screen is a number, a timing line, the words, and a blank line:
1
00:00:00,500 --> 00:00:03,000
Welcome to the kitchen.
2
00:00:03,200 --> 00:00:06,000
Today: bread with three ingredients.
Pause the video where a line should begin and read the time from the player. A line of about 40 characters is comfortable to read; longer lines wrap onto a second row automatically. Two to six seconds on screen per line works for most speech.
Burned-in or a separate file?
| Where the video is going | Use |
|---|---|
| Instagram, TikTok, WhatsApp, X, LinkedIn feed | Burned in — this page |
| A presentation, a screen at an event, a phone gallery | Burned in |
| YouTube | Upload the .srt in YouTube Studio; viewers can turn it off and it is searchable |
| Your own website’s <video> | A .vtt file in a <track> — SRT to VTT |
| A film for VLC, Plex or a TV | Keep the .srt next to the video with the same name |
Burned-in subtitles (also called hard-coded or open captions) cannot be switched off or translated by the viewer, but they show everywhere, including in apps that throw away subtitle tracks when you post.
Files that look fine but show nothing
When we tested subtitle files in Chrome 155, several common mistakes produced no subtitles and no error. One was
a VTT with commas in its timestamps. Others were timestamps like 00:00:01.5 and an SRT saved in
Windows-1252 (accents became �). An SRT with no blank line between cues put the next cue’s number
inside the text. This page reads all of those correctly. A line starting with {\an8} is placed at
the top, as VLC would show it, and other styling tags are ignored rather than printed. The line under the subtitle
box says what it found and fixed.
What happens to the video
Each frame is decoded by your browser, the subtitle for that moment is drawn on top, and the frame is encoded again as H.264. That is the only way to put text into the picture. Width, height and frame timing stay the same. The bitrate is the original plus 15%, because the sharp edges of letters need a little extra data; the sound is re-encoded as AAC. Afterwards the page lists how many subtitle lines fell inside the video and in how many frames text was drawn, so a timing mistake shows up as a number, not as a surprise later.
The text uses the fonts on your device, so Turkish, Arabic, Hindi, Chinese, Japanese and emoji work without downloading anything. Tools that run FFmpeg in the browser have to download it first, along with fonts for the scripts they support.
Privacy
The video and the subtitle file stay on your device. Nothing is uploaded, there is no account and no watermark. To change the size of the result for a particular app, use Resize video or Crop video.