Home › Guides › Why Your Subtitles Aren't Showing Up

Why Your Subtitles Aren't Showing Up

Players fail silently with subtitles: no error, no warning, just nothing on screen. This walks the causes in the order most likely to be yours, so you stop guessing.

Work through the causes in this order

Resist the urge to re-download the file. Nearly every case is one of seven causes, and they are cheap to rule out one at a time.

SymptomMost likely causeFix
Nothing, ever, in any playerWrong format or empty fileConvert; check the file has cues
Works in VLC, not on the webSubRip instead of WebVTTConvert to VTT
Works on desktop, not on TVFilename or encodingMatch the video filename; save UTF-8
Appears, then stops halfwayMalformed section or section slipClean, then check sync
Garbled characters but visibleEncoding damageRepair encoding
Visible only at the very startTiming shorter than the videoRe-time the track
Only some viewers see itTrack not enabled by defaultMark it default, or tell them to enable it

1. The format does not match the destination

This is the most common cause by a wide margin. SubRip (.srt) is the universal file format, but an HTML5 <track> element accepts only WebVTT. Point a browser at an SRT and it will ignore it completely, with no console error. If your captions are on a web page, convert to VTT first.

Upload boxes are stricter still. Some platforms accept only one format regardless of what their documentation implies. See subtitle file formats for which one to send where.

2. The filename does not match

Desktop players and TVs load external subtitles by convention: the file sits beside the video and shares its name. movie.mp4 looks for movie.srt. A file called movie.eng.srt or subtitles.srt will often be ignored, and the behaviour differs between players — which is exactly why this cause is so confusing.

Rename to match the video exactly, or use the player's explicit "load subtitle file" menu item, which bypasses the convention entirely.

3. The track exists but is not enabled

With multiple language tracks, most players start with captions off unless one is marked default. On the web, that is the default attribute on the <track> element. In a media player, it is the subtitle or audio menu.

Before changing anything, switch captions on manually. If they appear, the file was fine all along.

4. The file is empty, or the cues are malformed

Open it in a text editor. A subtitle file must have a timestamp line containing --> for every cue, and a blank line between cues. WebVTT additionally needs the WEBVTT header and a blank line after it. A file missing the header parses as empty — valid-looking, zero cues.

Run the file through Clean subtitles to normalise spacing, drop empty cues and remove stray markup. If the output is still empty, the structure is broken and you should re-export from the original source.

5. The text is damaged, not missing

If captions appear but show Café, ’ or Cyrillic-looking garbage, the file is fine — it was read with the wrong character encoding. The bytes are intact, so this is fully recoverable: repair the encoding, then save the result as UTF-8.

If you see plain question marks or empty boxes instead, the characters were already lost when the file was written and cannot be recovered by any tool.

6. The timing is outside the video

Subtitles that appear for the first twenty seconds and then vanish are usually a timing problem, not a playback problem. It happens when a track was timed against a different cut of the video, or when the subtitle file is shorter than the recording.

Compare the last cue's timestamp with the video duration. If they differ by a constant amount, shift the track. If the error grows through the file, it is a frame-rate mismatch and you need to resample instead — see fixing out-of-sync subtitles.

7. Hardcoded versus soft subtitles

If captions are visible on every device, cannot be turned off and survive being uploaded anywhere, they are burned into the picture. No subtitle file will change them, and none needs to. Confusing the two leads people to chase a file problem that does not exist.

Soft subtitles are a separate track the player renders. If you need to go from soft to hard, that is a video encoding step, not a subtitle editing one.

A sixty-second checklist

  1. Open the file in a text editor — does it contain cues with --> timestamps?
  2. Is the text readable, or garbled?
  3. Does the extension match the destination's requirement?
  4. Does the filename match the video, if it is being auto-loaded?
  5. Are captions switched on in the player?
  6. Does the last timestamp roughly match the video length?

If all six pass and subtitles still do not appear, the problem is on the platform side — its upload may still be processing, or its caption settings may require the track to be published explicitly.

Tools mentioned in this guide

SRT to VTT Converter

Convert .srt subtitle files to WebVTT (.vtt) for HTML5 video, right in your browser.

Open tool →

VTT to SRT Converter

Turn WebVTT files back into SubRip (.srt) for editors, players and upload platforms.

Open tool →

Remove Timestamps from Subtitles

Strip timestamps and cue numbers to get a clean, readable transcript.

Open tool →

Clean Up AI-Generated Subtitles

Remove sound cues, HTML tags, speaker labels and duplicate cues from auto-generated captions.

Open tool →

Shift Subtitle Timing

Move every subtitle cue earlier or later to fix out-of-sync captions.

Open tool →

Resync Subtitles by Frame Rate or Speed

Fix subtitles that drift progressively out of sync by resampling them to your video's frame rate or playback speed.

Open tool →

SBV to SRT Converter

Convert YouTube .sbv caption files to SubRip (.srt), right in your browser.

Open tool →

Merge Subtitle Files

Combine two SRT or VTT files into one track, with the second file appended after the first.

Open tool →

Subtitles to CSV Converter

Export SRT or VTT cues to a CSV spreadsheet with start time, end time, duration and text.

Open tool →

Split Subtitle Files

Cut one SRT or VTT track into two files at any timestamp, right in your browser.

Open tool →

Fix Garbled Subtitles (Encoding Repair)

Repair mojibake — subtitles showing é, ’ or привет instead of real characters.

Open tool →

Subtitle Timing Checker

Audit an SRT or VTT file for cues that are too fast, too short, too long or overlapping.

Open tool →

ASS / SSA to SRT Converter

Turn SubStation Alpha (.ass, .ssa) subtitles into clean SubRip (.srt) — in your browser, with nothing uploaded.

Open tool →

SRT to ASS Converter

Turn SubRip (.srt) subtitles into a complete ASS v4+ script with a default style, ready for styled players.

Open tool →

TTML / DFXP to SRT Converter

Turn TTML and DFXP captions (.ttml, .dfxp, .xml) into SubRip (.srt) in your browser — including offset times such as 10s, 100ms and 30f.

Open tool →

Plain Text to SRT Converter

Turn a transcript — one line per caption — into a valid .srt file with evenly spaced timing you can retime later.

Open tool →

Last updated 2026-09-21. All tools run locally in your browser.