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
- See the short recipe: Add Subtitles to MP4.
- Build a custom command with the Add Subtitles tool.
- Learn how to convert video formats with FFmpeg.
- Debug subtitle and filter errors with the FFmpeg error explainer.
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