# Burn Subtitles Into a Video

Hard-burn an SRT or WebVTT subtitle track into your video so captions show even when muted — pick position, font size, color and a background bar. Free, in your browser.

## Run it

- **CLI:** `gizza tool video-caption-burner 'url=https://example.com/input' 'subtitles=1
00:00:01,000 --> 00:00:04,000
Hello, world!' 'position=bottom' 'font_size=24' 'background=true' 'background_opacity=0.5'`
- **Web:** https://gizza.ai/tools/video-caption-burner/
- **Agents:** machine-readable descriptor (parameters JSON Schema) at https://gizza.ai/tools/video-caption-burner/tool.json

## Inputs

- `file` — Video _(file; accept: video/*)_
- `subtitles` — Subtitles (SRT or WebVTT) _(field)_
- `position` — Position _(field)_
- `font_size` — Font size (px) _(field)_
- `font_color` — Text color _(field)_
- `background` — Background bar behind the captions _(field)_
- `background_color` — Background bar color _(field)_
- `background_opacity` — Background opacity _(field)_

## Output

- Captioned video (video)

## Query parameters

Open the tool pre-filled and auto-run via URL:

- `subtitles` — Subtitles (SRT or WebVTT)
- `position` — Position
- `font_size` — Font size (px)
- `font_color` — Text color
- `background` — Background bar behind the captions
- `background_color` — Background bar color
- `background_opacity` — Background opacity
- `url` — fetch the input file from a public URL (CORS-permitting)

Example: `https://gizza.ai/tools/video-caption-burner/?url=https://example.com/input&subtitles=1%0A00%3A00%3A01%2C000%20--%3E%2000%3A00%3A04%2C000%0AHello%2C%20world%21&position=bottom&font_size=24&background=true&background_opacity=0.5`

---

## About this tool

Burn an SRT or WebVTT subtitle track directly into a video so the captions are part of the pixels, not a separate sidecar file. That makes the result reliable on social feeds, messaging apps, muted autoplay, and players that do not load subtitle tracks.

Upload a video, paste the subtitle file contents, then choose the caption position, font size, text color, and optional background bar. Processing runs locally in your browser with ffmpeg; your source video is not uploaded to gizza.ai.

### Worked example

Paste a caption track like this:

```srt
1
00:00:00,000 --> 00:00:02,000
Welcome to the demo

2
00:00:02,000 --> 00:00:04,000
These captions are burned in
```

Then upload a clip and keep the default bottom position, 24 px white text, and semi-transparent black background. The output is a playable video with those two captions permanently visible at their timed windows.

### Limits and edge cases

- Accepts SRT and WebVTT timing lines. Inline styling tags such as `<i>` are stripped to plain text.
- Up to 200 KB of subtitle text and 400 cues are accepted to keep the browser ffmpeg filter graph bounded.
- Videos are limited by the browser and the shared gizza media cap; large server-style batch jobs are out of scope.
- Output is H.264 video. MP4, MOV, M4V, and MKV inputs keep their container when possible; other containers are returned as MP4.
- ASS/SSA styling, custom fonts, and per-word karaoke effects are not interpreted.

## FAQ

<details>
<summary>What does “burn subtitles into a video” mean?</summary>

It means the captions become part of every video frame. The result does not need a separate `.srt` file, so the text stays visible when you upload the clip to sites or apps that ignore subtitle tracks.

</details>

<details>
<summary>Can I use WebVTT as well as SRT?</summary>

Yes. Paste either SRT timing lines with commas, such as `00:00:01,000`, or WebVTT timing lines with periods, such as `00:00:01.000`. A `WEBVTT` header and cue settings are accepted.

</details>

<details>
<summary>Why are my italic or colored subtitle tags not preserved?</summary>

This tool intentionally renders a plain, consistent caption style across the whole video. Basic inline tags are stripped so they cannot break the ffmpeg filter graph; use the page controls for the global text color, size, position, and background bar.

</details>

<details>
<summary>Does the video leave my computer?</summary>

No. The page runs ffmpeg in your browser and returns a local data URL for the captioned result. The CLI version processes the file on your machine as well.

</details>

## Related tools

- [Add a Title or Lower Third to a Video](https://gizza.ai/tools/video-title-card/): Add a styled title or lower-third caption to your video over a set time range — pick position, font size, color and a background bar. Free, in your browser.
- [Pad a Video to an Aspect Ratio](https://gizza.ai/tools/video-aspect-pad/): Letterbox or pillarbox a video to 9:16, 1:1, 16:9 or any preset ratio with colored bars or a blurred background — free, in your browser, nothing is uploaded.
- [Change Video Speed](https://gizza.ai/tools/change-speed/): Speed up or slow down a video right in your browser, keeping audio in sync — pick a speed factor (0.25x–4x). Re-encodes locally with ffmpeg, nothing is uploaded, free.
- [Extract Video Frames to a Contact Sheet](https://gizza.ai/tools/extract-frames/): Sample frames from a video by interval, fps or scene change and tile them into one contact-sheet image. Free, in your browser with ffmpeg, nothing is uploaded.
- [GIF to MP4 / WebM](https://gizza.ai/tools/gif-to-mp4/): Convert an animated GIF into a much smaller MP4 or WebM video, right in your browser. Re-encodes locally with ffmpeg (H.264 / VP9), nothing is uploaded, free.
