Add a selectable subtitle track
subtitles
// what it does
Muxes the external SRT into the MP4 as a selectable soft subtitle track. -c copy stream-copies the existing video and audio untouched, while -c:s mov_text overrides just the subtitle codec to convert SRT into MP4's native timed-text (tx3g) format. This is the fast, lossless way to add toggleable captions without touching the video.
// shell
$ ffmpeg -i input.mp4 -i subtitles.srt -c copy -c:s mov_text output.mp4// gotcha
MP4 can't carry raw SRT, so the -c:s mov_text conversion is mandatory here; plain -c copy alone would fail. mov_text is also styling-poor, so ASS positioning and colors are flattened. For an MKV output you'd instead use -c:s srt or -c:s copy.