Put dialogue or captions on a video from an SRT or VTT file. Burned text becomes part of the picture and shows everywhere; a subtitle track stays separate so viewers can switch it off.
Load the subtitles
Pick an .srt or .vtt file, or paste the cues into the text box. Each cue needs a time line such as 00:00:01,000 --> 00:00:03,500 followed by its text. The Cues panel counts what was read, flags blocks whose times could not be parsed, and warns when cues run past the end of the video, which usually means the file belongs to a different cut.
The preview shows the cue under the playhead as it plays, so scrub to a few lines and check the timing before exporting.
Burn in vs subtitle track
- Burn in draws the text into every frame and re-encodes the video. It works on Instagram, TikTok, WhatsApp, and any browser, and it cannot be turned off.
- Subtitle track writes the cues as a WebVTT track next to the video and audio, which are copied untouched when the container allows it. VLC, mpv, and most TV players list it as a subtitle option. Browsers and most upload sites ignore embedded tracks.
MKV is the default container for a track because it can copy any source codec. MP4 re-encodes VP9 and AV1 sources to H.264, and WebM re-encodes H.264 to VP9.
Style
The style controls apply to burned text.
- Text size is a percentage of the frame height.
5%is about 54px on a 1080p frame, a common size for dialogue. - Position puts the block at the bottom or top. Top is for clips with on-screen text or a lower third already at the bottom.
- Margin is the gap from that edge, also a percentage of the height.
- Background chooses a dark outline around the letters, a translucent box behind each line, or neither. The outline keeps more of the picture visible; the box reads better over busy, bright footage.
Long lines wrap at 90% of the frame width. A cue that already has line breaks keeps them.
Timing offset
Shift timing moves every cue by the same amount, to a hundredth of a second. Cues pushed before zero are clamped to the start, and cues that end before zero are dropped. A drift that grows over the length of the video is a frame rate mismatch, not an offset, and needs retiming in a subtitle editor.