Add an SRT Subtitle Track to a Video with FFmpeg

Mux an external .srt file into an MP4 as a soft subtitle track that viewers can turn on or off, without re-encoding the video.

LinuxvideosubtitlecliffmpegLow risk
Run ffmpeg -i movie.mp4 -i movie.srt -c copy -c:s mov_text -metadata:s:s:0 language=eng output.mp4 to embed the subtitles as a toggleable track.

01Command

Command
$ ffmpeg -i movie.mp4 -i movie.srt -c copy -c:s mov_text -metadata:s:s:0 language=eng output.mp4

02What it does

This command adds the .srt file as a second input and copies the existing video and audio streams untouched (-c copy), so it finishes in seconds with no quality loss. The subtitles are converted to mov_text, the subtitle format the MP4 container supports, and tagged with a language code that players use to label the track. Because the track is soft, viewers can switch it on or off in their player, and the original picture is never altered.

03Risk

RiskLow risk
Requirementsffmpeg (sudo apt install ffmpeg / sudo dnf install ffmpeg)
!Warning: Some standalone TV and media-box players ignore mov_text subtitles; if you need text visible on any device, use a burn-in (hardsub) approach instead.

04Undo

✓No undo needed — this command does not change persistent state.

05Sources

Last verified: 2026-09-18 · Category: Media