Skip to content

Guides

Subtitles out of sync on a TV or Plex: fix the file

You fixed the delay on the laptop and it looked perfect. On the television the lines are still two seconds behind, the Plex app has no knob for it or forgets the one it has, and the stick behind the TV has no menu at all. That is not a TV problem. Every device in the house is reading the same subtitle file, and the file was never fixed. Fix it once and all of them are right.

Why the fix stops at the couch

A subtitle delay set in a player is a playback setting. VLC’s g and h keys, the offset slider in a phone app, the subtitle sync menu on a TV that happens to have one: each adjusts what that program shows during that play, and none of them changes a byte of the file. The setting lives on that device, and often only until you close the player. The next device starts from the file, and the file is still wrong.

A media server makes this worse in a way that feels backwards. Plex, Jellyfin, Emby and Kodi hold one copy of the film and one subtitle file, and stream them to every screen you own. So a correction made on one client is invisible to the others by design, and a TV app or streaming stick, which typically has the fewest settings of any player, is where you are most likely to have no delay control at all. The place the fix has to live is the one place all the clients read: the file on the server’s disk.

Measure where measuring is easy

Do the diagnosis on a laptop, not on the TV. Copy the exact video file and the exact subtitle file the server is using, open them in VLC, and nudge the delay until a line lands. Then check a line near the end as well, because the shape of the error decides the repair:

  • Same gap at the start and the end: a constant delay. One number fixes the whole file; the delay guide has the sign rule.
  • Small gap early, larger gap late, growing steadily: drift, usually a framerate mismatch. Two anchors or a preset; see the drift guide.
  • Fine for an hour, then suddenly off and staying off: a cut, and its own repair.

One check before any of that: the video on the server may not be the copy the subtitles were made for. Compare the file’s last cue time with the video’s runtime, as the matching-subtitles guide shows; a file made for your release may already exist and need no surgery at all.

Repair the file, then name it correctly

Load the subtitle file into the studio below, apply the shift, the preset or the two anchors, and download. The output keeps the format, the text and the styling; only the timestamps change. Then comes the step that catches most people: the download is named Film (2019).fixed.srt, and a media server or a TV will not connect that name to Film (2019).mkv.

  • Media servers (Plex, Jellyfin, Emby, Kodi) look for a sidecar whose name is the video’s name with the extension swapped, optionally with a language code before it: Film (2019).en.srt or Film (2019).eng.srt. A forced-only track adds a flag: Film (2019).en.forced.srt. Rename the fixed file to exactly that.
  • A TV playing from a USB stick is stricter: the plain form, Film (2019).srt, in the same folder as the video, and often only SRT. Give it that.
  • Move the old file out rather than leaving both. Two English tracks in one folder means a client can pick the wrong one, and you will spend an evening convinced the repair failed.

Make the server notice

A server indexes a folder when it scans it, not when a file changes under it. After copying the renamed file in, rescan the library or refresh that one title, then open the film on the TV and choose the subtitle track again. A client that was already playing may hold the old track until playback stops and starts. If the server burns subtitles into the picture for a client that cannot render them itself, the timing still comes from the file, so the fix holds there too.

If the track is inside the video

When there is no .srt beside the film and the subtitles still appear, they are a stream inside the MKV or MP4. Extract the track with one ffmpeg command, repair the extracted file, and drop it back in the folder as a sidecar with the name above; the server prefers an external track over an embedded one of the same language in most setups, and you can disable the old one in the player. Remux only for a TV that ignores sidecar files. The embedded-subtitles guide has both commands.

If it is still off

  • Off by the same amount as before. The server is still serving the old file. Check the folder for a second subtitle file, check the player is not using an embedded track, and rescan.
  • Off by a different amount. You measured on a different copy of the video than the server has. Measure again with the server’s own file; a stream, a disc rip and a TV recording of the same film can be minutes apart.
  • Right on the laptop, wrong on the TV, same file. The laptop player still has a delay set. Reset it to zero and play again; if the laptop is now wrong too, the file was never fixed.

The TV is not the problem and neither is the server; they are just the devices with the fewest knobs, so they show you the file as it is. Measure on a laptop, write the correction into the file, rename the download to the video’s exact name, replace the old one, rescan. Every screen in the house is fixed at once.