Burn-in vs soft subtitles: which should you use?

When you finish a video and need to deliver it with subtitles, you face a choice: bake the subtitles into the video (burn-in / hardcoded) or deliver them as a separate stream (soft subtitles). Each approach has real tradeoffs, and the right answer depends on your distribution channel.

What "burn-in" means

Burning in subtitles means rendering the text on top of every frame of the video, so it becomes part of the picture. Once burned in, subtitles cannot be turned off. They survive any re-encode. They appear on every player that can play the video.

Common software for burning in subtitles: FFmpeg (-vf subtitles=file.srt), Handbrake, Adobe Premiere, DaVinci Resolve.

What "soft subtitles" means

Soft subtitles are delivered as a separate stream — either embedded in the container (e.g. MKV with an internal SRT track, or MP4 with a WebVTT track) or as a separate file sitting next to the video (e.g. movie.mp4 + movie.srt). The viewer's player can turn them on or off.

SRT, WebVTT, ASS and similar formats are designed for soft subtitle workflows.

Tradeoffs

ConsiderationBurn-inSoft subtitles
Can be turned offNoYes
Preserved through re-encodeYesNo (can be lost)
Searchable/selectable textNoYes
Editable after deliveryNoYes
Accessibility (screen readers)NoYes
Works in social media uploadsYesPlatform-dependent
Smaller file sizeNo (subtitles increase bitrate slightly)Yes

When to burn in

When to use soft subtitles

Can you have both?

Yes. Deliver the video with a soft subtitle track and also publish a separate version with burned-in subtitles for platforms that need it. This is common for content that appears on both a streaming service and social media.

Burning in from an SRT file

If you have an SRT file and need to burn in the subtitles, use FFmpeg:

ffmpeg -i input.mp4 -vf "subtitles=file.srt" -c:a copy output.mp4

FFmpeg reads the SRT and renders it onto every frame. Quality is high, but the video must be re-encoded (which takes time and may slightly reduce quality).

Extracting soft subtitles from a video

If you have a video with soft subtitles and want the subtitle file, use FFmpeg:

ffmpeg -i input.mkv -map 0:s:0 output.srt

This extracts the first subtitle stream and saves it as SRT. The tool may also work with .vtt output if the stream is WebVTT.

Related tools