How to burn subtitles into a video permanently

By Filewhisk Team Published

We burned the same SRT into a video with FFmpeg on Windows eight ways. Three common commands failed outright, and one finished without an error but left a line out. The working methods, and what to check first.

You have a video and a subtitle file, usually an .srt, and you want the words to stay on the picture: for Instagram or WhatsApp, which ignore subtitle tracks, for a screen at an event, or for someone who will never find the “CC” button. That is called burning in (or hard-coding) the subtitles. Each frame is redrawn with the text on it, so the subtitles show in every player and can no longer be switched off.

The short answer

  1. In the browser, no install: drop the video and the .srt on Add Subtitles to Video. Check the preview, pick a style, press Burn subtitles into video and download the MP4. Nothing is uploaded.
  2. HandBrake (Windows, Mac, Linux): open the video, go to the Subtitles tab, choose Import Subtitle and pick the .srt, tick Burn In for that track, then Start Encode.
  3. VLC: Media > Convert / Save, add the video, tick Use a subtitle file and choose the .srt, press Convert / Save. Click the spanner next to the profile, open the Subtitles tab and tick both Subtitles and Overlay subtitles on the video. Without that second tick the output has no text.
  4. FFmpeg: open the command prompt in the folder with both files and run ffmpeg -i video.mp4 -vf subtitles=subs.srt -c:a copy out.mp4. Read the next section before giving it a full path.

What went wrong when we did it with FFmpeg on Windows

FFmpeg is what most answers online suggest, and its subtitles filter does a good job once it runs. We burned the same three-line SRT into a 12-second 1080p clip with FFmpeg 7.1 on Windows 11 in eight different ways (23 October 2026). We then counted the new white pixels in the bottom quarter of the frame at each subtitle’s time, so “it worked” means the text is really in the picture:

How the subtitle file was givenResult
subtitles=C:\dev\videos\subs.srtStopped: “Unable to parse option value … as image size”
subtitles=C:/dev/videos/subs.srt (forward slashes)Stopped, same error
subtitles='C:/dev/videos/subs.srt' (in quotes)Stopped, same error
subtitles='C\:/dev/videos/subs.srt'Worked, all three lines
subtitles=subs.srt, run from the same folderWorked, all three lines
Same file saved in Windows-1252 (“ANSI”), first line “Café crème”Finished with no error, but the first line was missing from the video
ANSI file with subtitles=subs.srt:charenc=cp1252Worked, all three lines
SRT with no blank line between cuesWorked

The first problem is the colon after the drive letter. Inside -vf, a colon separates one filter option from the next, so FFmpeg reads C as the file name and the rest of the path as the next option (“original_size”), then gives up. Quotes and forward slashes alone do not help. You either escape the colon as C\: or, easier, run the command from the folder that holds the subtitle file and give just its name.

The second problem is worse because nothing looks wrong. An SRT saved by an old Windows program in ANSI encoding has accented letters that are not valid UTF-8. FFmpeg printed “Invalid UTF-8 in decoded subtitles text; maybe missing -sub_charenc option” in its scrolling log, skipped that subtitle, finished with exit code 0 and wrote the video without it. In a real film that can be dozens of missing lines, only the ones that happen to contain é, ü or ç. Adding :charenc=cp1252 fixes it, as does saving the file as UTF-8 first.

Check the subtitle file before you burn it

Burning is the slow step and you cannot undo it, so it pays to look at the file first. Open the .srt in Notepad and check:

Burned in or a separate file?

Burn the subtitles in when the video is going to a social app, a presentation or a phone gallery. Keep them as a separate file when viewers should be able to switch them off or pick a language. For YouTube, upload the .srt in YouTube Studio instead. For a video on your own website, use a .vtt file in a <track> element. In our Chrome test, a VTT that still had SRT-style commas loaded without an error and showed nothing, so convert it properly. For VLC, Plex or a TV, put the .srt next to the video with the same file name.

Size, style and quality

Subtitles meant for phones need to be bigger than film subtitles: about 5–7% of the short side of the picture, with a dark outline or box so they stay readable over a bright sky. Keep lines under about 40 characters and leave each one on screen for two to six seconds. Burning in re-encodes the whole picture, which costs a little quality. Use a bitrate at least as high as the original’s; the browser tool adds 15% for the sharp edges of the letters. If the result is too big to send, burn first and then shrink it with Resize Video. Resizing first and burning after gives smaller, blurrier text.

On a phone

Neither iPhone nor Android can burn a subtitle file into a video with the built-in apps. Editing apps such as CapCut can add captions you type or generate there. The browser tool above needs a browser with WebCodecs, the built-in video encoder: Chrome on Android, or Safari on iOS 16.4 and later. Long 4K videos are slow on a phone, so for a feature-length film use HandBrake on a computer.

Tools used in this guide