3/18/2026

Add subtitles to MP4 with FFmpeg by burning SRT or ASS subtitles into video. Includes styling, font notes, common errors, and copyable commands.

How to Add Subtitles to MP4 with FFmpeg

FFmpeg can add subtitles in two different ways. You can burn subtitles into the video so they are always visible, or you can attach subtitles as a separate selectable track. This guide focuses on burned-in subtitles because they work everywhere.

For the short command page, see Add Subtitles to MP4 with FFmpeg. For a form-based command builder, use the Add Subtitles tool.

Burn SRT Subtitles into MP4

ffmpeg -i input.mp4 -vf "subtitles=subtitles.srt" -c:v libx264 -crf 23 -preset medium -c:a copy subtitled.mp4

This renders the subtitles directly onto the video frames. The result is a normal MP4 file with permanent subtitles.

Use this when:

  • The video must show subtitles on every player.
  • You are posting to a platform that may not support separate subtitle files.
  • You want a single final video file.

Burn ASS Subtitles

ASS subtitles can include styling, positioning, colors, and effects:

ffmpeg -i input.mp4 -vf "subtitles=subtitles.ass" -c:v libx264 -crf 23 -preset medium -c:a copy subtitled.mp4

If your subtitle file already has styling, ASS is usually better than SRT.

Style SRT Subtitles

You can force simple styling while burning an SRT file:

ffmpeg -i input.mp4 -vf "subtitles=subtitles.srt:force_style='FontName=Arial,FontSize=28,PrimaryColour=&HFFFFFF'" -c:v libx264 -crf 23 -preset medium -c:a copy subtitled.mp4

Common style values:

Style Example
Font FontName=Arial
Size FontSize=28
White text PrimaryColour=&HFFFFFF
Yellow text PrimaryColour=&H00FFFF

ASS color values use a different order than normal web hex colors, so test the result before publishing.

Can Subtitles Be Added Without Re-encoding?

Burned-in subtitles require re-encoding because FFmpeg must draw text onto each frame. You can still copy audio with -c:a copy.

If you only want a selectable subtitle track, the command is different:

ffmpeg -i input.mp4 -i subtitles.srt -c copy -c:s mov_text output.mp4

This keeps subtitles separate. Not every player will show them by default.

Common Problems

Chinese, Japanese, or Korean characters do not display.
Use a font that supports those characters:

ffmpeg -i input.mp4 -vf "subtitles=subtitles.srt:force_style='FontName=Microsoft YaHei'" -c:v libx264 -crf 23 -c:a copy subtitled.mp4

FFmpeg says it cannot find the subtitle file.
Check the path and quote filenames that contain spaces.

The subtitle filter is not available.
Your FFmpeg build may not include libass support. Install a fuller FFmpeg build.

The output quality dropped.
Use a lower CRF value such as 18 or 20.

Related FFmpeg Pages

Related tool

Add Subtitles with FFmpeg

Generate FFmpeg commands to burn SRT or ASS subtitles into video, or attach selectable subtitle tracks.

Open the command generator