Add / Extract Subtitles

Add or Extract Subtitles Online — Add subtitles to a video in two ways: soft embed (adds the subtitle as a separate track inside an MKV file, so players can turn it on and off) or hard burn (renders the subtitles into the pixels of a WebM video, baked in permanently). You can also extract embedded subtitle tracks from MKV/MP4/WebM files and download them as SRT, WebVTT or ASS. All processing is done locally in your browser , so your files are never uploaded to any server and your privacy is fully protected.
Supported input: Videos using open royalty-free codecs such as VP8/VP9/AV1/MPEG-4/FFV1 (WebM, MKV, MP4, MOV, AVI containers). Subtitle files in SRT / WebVTT / ASS format (UTF-8 or GBK). Soft embed outputs MKV; hard burn outputs WebM (VP8 + Vorbis).
First use loads an ~30MB video processing engine into the current browser. It is cached and reused afterwards, so please be patient.
🎥
Click or drag a video here (WebM / MKV / MP4 / MOV / AVI)
📝
Click or drag a subtitle file here (SRT / VTT / ASS)

Options

Soft subtitles vs hard subtitles: embedded or burned in?

There are exactly two ways subtitles can live in a video, and every workflow decision flows from which one you have. Soft subtitles are a text track stored alongside the video stream — the frames are untouched, and the player renders the text at playback time. Hard subtitles are painted into the pixels during encoding: the letters are part of the image, forever. Soft subs can be turned off, switched between languages, restyled and extracted as text; hard subs play identically on literally anything that plays the video, at the cost of being permanent. One is data next to the picture; the other is the picture.

Five facts to anchor the rest of the page:
• soft = text track muxed into the container (SRT/VTT/ASS); hard = subtitles burned into the frames
• soft embed is a remux — seconds, zero quality loss; hard burn is a re-encode — every frame is re-rendered and re-compressed
• soft subs weigh kilobytes; hard subs cost nothing extra in size but cannot be removed
• extraction works on soft subs (they are text); burned-in text is pixels — that needs OCR, and quality is never guaranteed
• SRT timestamps are HH:MM:SS,mmm — e.g. 00:01:22,480 → 00:01:25,120 is a 2,640 ms line
Soft embed: adding a text track

Soft embedding writes your subtitle file into the container as an additional track, beside the video and audio tracks — the video stream itself is copied byte-for-byte. That is why it finishes in seconds and loses nothing: it is the same "remux" operation as changing containers (see the MP4 page for container basics). The catch is support: the container must accept subtitle tracks (MKV and MP4 do; some devices ignore them anyway), and the player must render them — smart TVs and stock phone players are notoriously inconsistent, which is exactly why hard burns still exist.

Hard burn: painting text into frames

Burning subtitles re-renders every frame of the video with the text composited on top, then re-compresses the result — a full re-encode with everything that implies: it takes as long as encoding, and each frame passes through a second compression generation. Fonts are baked in (no "missing font" surprises on the viewer's machine), positioning and styling are exact, and playback compatibility is total because the output is just an ordinary video. The trade is finality: the text is inseparable from the picture, and re-typing a typo means re-encoding again from the original source.

SRT, VTT and ASS: three subtitle formats

SRT (SubRip) is the universal minimum: numbered lines, start → end timestamps, plain text. Every player on earth reads it. VTT (WebVTT) is its web-native sibling — same idea, . milliseconds instead of ,, plus hooks for styling and positioning that the HTML5 <track> element uses. ASS (Advanced SubStation Alpha) is the enthusiast's format: fonts, colors, outlines, rotation, per-character animation — the format behind styled anime subtitles — which is precisely why MKV can attach the fonts a track needs inside the file (see the MKV page). Burning ASS styling requires fonts to be available at encode time; soft-playing it requires them at playback time.

Extraction: why it only really works on soft subs

Extracting a soft subtitle track is unzipping text out of the container — perfect, because that is what was stored. Recovering subtitles from a hard-burned video is a computer-vision problem (OCR on each frame, guessing where the text region is, cleaning the background behind letters); it works reasonably on clean, static text and degrades quickly with styled fonts, motion and grain. If you need the text back later, keep (or request) the soft version.

Common misconceptions
  • "Subtitles that came with the file can be turned off, always." Only soft ones. If they never toggle off, they are burned into the pixels and no player can remove them.
  • "Embedding subtitles re-encodes the video." Soft embedding remuxes — instant and lossless. Only a hard burn re-encodes.
  • "Subtitle files make videos much bigger." A soft track is text: a full-movie subtitle file is tens to a couple hundred kilobytes, lost in the rounding error of a video's megabytes.
  • "Hard burn is just safer, so always burn." It is safer for playback compatibility and permanently worse for editing, translating and accessibility later. Burn when distributing to unknown devices; embed when the text should stay data.

Related tools: SRT/VTT/ASS Converter to move subtitle text between the three formats, Speech to Subtitles to generate a subtitle file from audio, Video to MKV for the container with the best multi-track subtitle support, and Video to MP4 for remuxing basics.