Burn subtitles into video

SRT text is painted on actual frames throughout each active cue. Basic markup becomes plain text; wrapping, four simultaneous cues and eight lines are bounded.

  • Runs in your browser
  • No upload
  • Check before download

Files, frames and subtitles stay on this device. No upload or storage. SRT text is painted on actual frames throughout each active cue. Basic markup becomes plain text; wrapping, four simultaneous cues and eight lines are bounded. Cue boundaries follow the 30fps grid (up to33.34ms quantization). Works with local MP4 or MOV (H.264) and WebM (8-bit VP8 or VP9) files, up to 10 seconds and 32 MiB each and 64 MiB in total, with one video track and at most one audio track, up to 1280×720 and 600 coded frames. SDR only; if the color information is unknown, you have to confirm it explicitly. Audio is kept as mono or stereo at 32, 44.1 or 48 kHz. MP4 output is AVC at 30 fps with AAC at 48 kHz, up to 100 seconds and 32 MiB, and source metadata is dropped. AAC may add up to 2048 tail samples. Reverse keeps at most 8 RGBA frames (32 MiB), PCM is limited to 64 MiB, and the deadline is 90 seconds. Native codec and GPU memory and device performance vary. Subtitles: up to 1 MiB, 500 cues, 2048 characters each and 24 hours. Static PNG: up to 1 MiB and 512². Your originals stay unchanged; unsupported or DRM-protected files are rejected.

    Profile and limits

    How to use

    1. Choose local files

      Load a supported short video and an SRT file, or edit the cues. Choose explicitly whether to keep or mute the audio, and confirm unknown color information only when that fits the source.

    2. Profile and limits

      A cue 00:00:01,000 → 00:00:02,000 containing Hello should appear at 1.5 s. Preview a point inside the cue before you prepare the video export.

    3. Export

      Replay the saved MP4 before, during and after that cue. Check the wrapping, the audio choice and the timing. The 30 fps grid rounds boundaries by up to 33.34 ms.

    Profile and limits

    What does this result mean?

    Burn-in paints the text into the pixels of the video. It can't be switched off like a separate subtitle track, and basic markup becomes plain text.

    How do I resolve rejected or missing input?

    Correct malformed SRT times or input codecs that aren't supported. Overlapping text is limited to four active cues and eight lines, so shorten or separate cues that crowd each other.

    What are the limits of this tool?

    A browser-local SDR workflow: H.264 MP4/MOV or 8-bit VP8/VP9 WebM, source ≤10 s, ≤1280×720. Native codec support varies, and there is no promise of DRM or HDR.

    Some audio workflows use Mediabunny1.60.0 (MPL-2.0). Copyright notices and original license · Download preferred TypeScript source1.60.0