All tools

Subtitle Soft-Embed Tool

Add toggleable subtitle tracks inside a video container. The video and audio aren't re-encoded, so the mux completes in seconds. Pick MP4, MKV, or WebM.

  • In your browser
  • Files never uploaded
  • Free

Frequently asked questions

How is this different from the Burn-In tool?
Burn-in renders subtitles into video pixels, so they are always visible and cannot be turned off. Soft-embed adds subtitles as separate, toggleable tracks inside the container. Use burn-in for a finished video that must display captions everywhere; use soft-embed for multi-language options or editable text tracks.
Why two outputs (MP4 + WebM)?
MP4 with mov_text plays almost everywhere but is plain text only. WebM with WebVTT preserves basic subtitle styling and is used for the post-embed preview. Choose MP4 for compatibility and WebM for styling.
Why does the WebM output sometimes take much longer than the MP4?
WebM requires VP8/VP9 video plus Opus or Vorbis audio. If your source already uses them, muxing is fast. Otherwise, the video and audio must be re-encoded in WebAssembly, while the MP4 can still finish quickly.
Why is my WebM output downscaled to 720p when my source is 1080p / 4K?
Browser WebAssembly has a per-page memory ceiling, and full-resolution VP8 encoding can exceed it. To keep WebM output reliable, it is capped at 1280px wide (about 720p for 16:9 video). The MP4 output keeps the original pixels unchanged.
Will the new subtitle track be the default in the downloaded file?
Yes. The track you mark Default, or the first added track if none is marked, receives the container default flag. Some players may still prioritize existing source tracks or require viewers to turn captions on manually.
Why does my MP4 lose subtitle styling like font size or color?
MP4 uses the plain-text mov_text subtitle codec, which cannot carry font, color, position, or other styling. Use the WebM download to preserve basic styling, or use Burn-In to render styled subtitles into the video pixels.
Does my video get uploaded to a server?
No. FFmpeg reads the video from your local file handle, and subtitle parsing plus both mux passes run entirely in your browser. Nothing leaves the page.
How many subtitle tracks can I add?
You can add as many as you want. Each track has its own language code, display title, and default setting. Some players display only the first few tracks, but every selected track remains in the file.
Will the existing subtitle tracks in my video be kept?
No. By default, existing subtitle tracks are removed and replaced with the tracks you add. Turn on Keep existing subtitle tracks when you need to preserve them alongside the new tracks.
Which subtitle formats can I drop in?
SRT, VTT, ASS, SSA, SMI, TTML, DFXP, SBV, LRC, MicroDVD, and SubViewer are supported. MP4 uses plain-text mov_text and WebM uses WebVTT with basic styling. For ASS karaoke or transform effects, use Burn-In.
My player will not show the subtitles — what do I do?
Turn subtitles on in the player caption menu. For MP4, confirm that your player supports mov_text. If needed, try the WebM download or Burn-In, which renders captions directly into the pixels.