About this tool
Burn styled subtitles permanently into a video file.
The Burn-In Subtitle Encoder permanently renders an SRT or WebVTT subtitle file into the picture of your video, producing an MP4 whose captions are part of the frames and cannot be switched off. It runs FFmpeg compiled to WebAssembly inside the browser tab — the video is written to an in-memory filesystem rather than uploaded — and applies the subtitles filter at one of three type sizes (16, 22 or 28 points) while re-encoding video with H.264 and copying the original audio stream untouched. It is the fix for platforms and players that ignore a separate subtitle track.
Open Burn-In Subtitle Encoder on AltFTool — it loads instantly in your browser.
Choose the video under Source file, then the caption track under Secondary file — the picker accepts .srt and .vtt.
Set Subtitle size to small, medium or large (FFmpeg force_style FontSize 16, 22 or 28) and press 'Process locally'.
FFmpeg WebAssembly re-encodes the video to H.264 and stream-copies the audio inside the tab, then downloads altftool-burn-in-subtitle-encoder.mp4.
FFmpeg WebAssembly is loaded only after you press Process, and the source is written to a browser in-memory filesystem, so nothing is uploaded to a server.
Only the video stream is re-encoded to H.264; the audio track is stream-copied, so a second generation of lossy audio damage is avoided.
Font size is set to 16, 22 or 28 points through FFmpeg's force_style, so a mobile-first vertical clip and a desktop lecture recording get suitable caption sizes.
Burned-in (open) captions are drawn into the video pixels and cannot be turned off, resized or translated; soft subtitles ride as a separate track the player renders on top. This tool produces burned-in captions, which is what you want when the destination player ignores subtitle tracks.
SRT and WebVTT — the file picker accepts .srt and .vtt. Cue timings and line breaks come from that file as written, so fix any overlapping or mistimed cues in the subtitle file before encoding, because they cannot be edited once burned in.
Slightly, because the video stream is re-encoded to H.264 to draw the text, which is one extra lossy generation. The audio is stream-copied rather than re-encoded, so sound quality is unchanged.
It is bounded by the memory the tab can allocate, since the file is decoded and re-encoded entirely in browser memory, so short clips finish comfortably while long or high-resolution files can be slow or run out of memory. Trim to the section you need first, and expect encoding to take longer than it would with a native FFmpeg install.