FFmpeg · Command Guide

How to Burn Subtitles Into a Video With FFmpeg

Burning subtitles means rendering them directly into the video frames, so they show up everywhere — unlike a soft subtitle track, which some players and platforms ignore.

Burning subtitles means rendering them directly into the video frames, so they show up everywhere — unlike a soft subtitle track, which some players and platforms ignore.

The command

ffmpeg -i input.mp4 -vf "subtitles=captions.srt:force_style='FontSize=24,PrimaryColour=&H00FFFFFF'" -c:a copy output.mp4

What each flag does

-i input.mp4The source video.
-vf "subtitles=..."A video filter that renders the .srt file into the frames.
force_style=...Optional — overrides the subtitle file's default font size and color.
-c:a copyCopies the audio stream unchanged instead of re-encoding it, which is faster and lossless.

Where this goes wrong

The single most common failure is a path or filename with spaces or a colon in it — the subtitles filter parses its argument with colons as separators, so subtitles=C:/captions.srt on Windows breaks unless you escape the colon. Keep the .srt file in the same folder as the command and reference it by filename only.

If you want word-by-word instead of line-by-line

A standard .srt file shows subtitles in multi-word chunks, timed per line, not per word. FFmpeg can burn whatever is in the file — it doesn't generate word-level timing itself. Getting true word-by-word reveal requires a transcription step that outputs per-word timestamps (Whisper with word-level timestamps enabled is the common tool for this), then generating an .srt or .ass file with one entry per word before you run the burn command above.

After the command

Manually timed .srt files get old fast. The NULLFRAME kit generates word-by-word captions directly from your audio's real timestamps — no .srt file, no font wrangling.

Get the kit

Common questions

Does burning subtitles reduce video quality?+
Only if you re-encode the video at a lower bitrate than the source. The subtitle burn itself doesn't degrade quality — set -crf 18 or copy the original bitrate to avoid any loss.
Can I style the subtitles (color, size, position)?+
Yes, through force_style in the filter, using ASS-style parameters like FontSize, PrimaryColour, and Alignment.
Why do my subtitles show a box or wrong font?+
The subtitles filter uses libass, which needs the font installed on the system running FFmpeg — install the font system-wide or reference a font file with fontsdir.