When VLC plays a video but nothing appears at the bottom of the screen, the thing to check first is the step before rendering: whether VLC ever picked the subtitle file up. Whether it picks one up automatically is governed by a setting with five distinct levels, not an on/off checkbox.
What "subtitles not showing" actually means
VLC's official documentation is blunt about the default state: "Subtitles are enabled by default in VLC media player." So the useful question is not "are subtitles turned on" but "did VLC ever load a subtitle stream at all." There are two separate paths into that state, and they fail for different reasons.
Embedded subtitles live inside the video file. VLC's documentation lists the media formats it reads embedded subtitles from as "DVD, SVCD, OGM files, Matroska (MKV) files", while VideoLAN's separate Subtitles wiki page lists containers that can carry subtitles as "MOV / MP4 / OGM / Matroska / AVI / TS". The two lists do not line up, so treat neither as a guarantee for your particular file.
External subtitle files are the other path, and the official documentation explains why they exist: "While modern file formats like Matroska or OGM can handle subtitles directly, older formats like AVI can't." You then need two files, "the video file and the subtitles file that only contains the text of the subtitles and timestamps". That second path is where almost all "not showing" reports come from — and it is the one that is quietly configurable.
The fastest fix: autodetection is a fuzziness level
Every article on this topic tells you to give the subtitle file the same name as the video. That advice is real. VideoLAN's wiki spells it out with an example:
Dark Star.avi <= the movie file
Dark Star.srt <= the external subtitle file"If both names match, then VLC will automatically open the subtitle file and display subtitles, as soon as you double click the movie file name."
What nobody mentions is that exact name matching is only the strictest setting of five. VideoLAN's wiki publishes the output of vlc -H (the page states it is from a vlc-4.0.0-dev build under Windows, so run vlc -H yourself to confirm the option exists in your build), and the entry for --sub-autodetect-fuzzy documents every level verbatim:
| Value | Official meaning |
|---|---|
0 | "no subtitles autodetected" |
1 | "any subtitle file" |
2 | "any subtitle file containing the movie name" |
3 | "subtitle file matching the movie name with additional chars" |
4 | "subtitle file matching the movie name exactly" |
Read level 0 again. If this value is 0, autodetection is off entirely — renaming your file, re-downloading it, reinstalling VLC, none of it will ever produce a subtitle. Check that before you touch anything else.
Levels 1 and 2 run the other direction: 1 grabs any subtitle file it finds, 2 accepts any file containing the movie name. Level 3 allows the movie name plus extra characters; 4 demands an exact match, the scenario every tutorial assumes you are in.
The switch gating the whole mechanism is --sub-autodetect-file, documented as "(default enabled)": "Automatically detect a subtitle file, if no subtitle filename is specified (based on the filename of the movie)." Note the condition — autodetection is what happens when you have not specified a subtitle filename yourself.
When the subtitle file is in a different folder
Renaming does nothing if the .srt is sitting in a Subs subfolder, and the official option for that case is --sub-autodetect-path: "Look for a subtitle file in those paths too, if your subtitle file was not found in the current directory."
To skip detection entirely for one file, --sub-file exists for exactly that: "Load this subtitle file. To be used when autodetect cannot detect your subtitle file."
So the decision tree is: fuzziness too strict → loosen it; file in another directory → add the path; one-off awkward file → load it explicitly.
If you need the subtitles to survive the player
Everything above is player-side configuration, so it only helps on your copy of VLC. Send the video to someone else and the same detection problems start over on their machine. Burning the text into the picture removes the mechanism from the equation:
Try it right here
Runs in your browser. Your file is not uploaded anywhere.
This runs in your browser — video and subtitle file are read from disk, composited locally, handed back, nothing uploaded. Right call for a chat app, a social upload or a client review link; wrong call for a personal library where you want to switch languages. Note VideoLAN's trade-off: once burned in, "there is no way to make them disappear properly, as they're totally part of the image." Keep your original.
If the subtitle file itself is the wrong format for where it is going, convert it first with SRT to VTT, or compare what each format can actually carry in subtitle formats compared.
Other causes, in order of likelihood
The Subtitle Track ID preference is set to −1. This is the trap almost nobody documents. VLC's official documentation gives it as the way to turn subtitles off by default: 'select "Preferences", then "Show All". Select "Input/Codecs". On the "Subtitle Track ID" selection window, change the value to "-1".' Then comes the warning that explains a lot of wasted evenings: '(NOTE: Changing the value in the "Subtitle Track" menu will not disable the subtitle file.)' Those are two different controls. If subtitles vanished for every file at once, check that preference — and note that numbering starts at zero: 'a value of "0" will enable subtitle track 1, a value of "1" will enable subtitle track 2, and so on.'
They are loading but arriving at the wrong moment. VideoLAN's own (self-described informal) support guide documents g and h during playback to shift subtitle delay, with the adjustment step at 50 ms, and Tools → Track Synchronization for a specific value. Those keys are not universal: the same page lists a separate set for one Mac release — 'OS X v2.2.1 keys: "h" (decrease delay, subtitles display after sound) and "j" (increase delay, subtitles display before sound)' — so check which pair your build responds to. There is also a three-key method — Shift+H on a line you hear, Shift+J when you read it, Shift+K to correct — but the guide restricts it explicitly: "When subtitles are late compared to the audio, and only in this case." It does not apply to early subtitles.
They are showing, but as question marks or squares. VideoLAN's support guide separates these into two faults that every listicle merges into one: "If you see question marks or weird characters, this means that the selected encoding is wrong." Versus: "If you see boxes or squares, it means the selected font lacks the needed characters." Changing the encoding will never fix boxes. The encoding path is Tools → Preferences → Subtitles / OSD → Default encoding, and the guide adds: "Remember to press Save to save VLC settings and restart VLC after that to make sure changes are enabled." In that same published vlc -H output (again, a vlc-4.0.0-dev build under Windows — check your own build), UTF-8 subtitle autodetection is listed as "(default enabled)", so a correct UTF-8 file should not be garbling in the first place.
It is a VobSub pair. The official documentation is specific: "For Vobsub subtitles, you need to select the .idx file, not the .sub file."
It is SSA/ASS and the renderer is missing. For badly rendered SSA/ASS the support guide says "Support is better in VLC media player 1.1.9 or over", then: "If you still have issues check that the libass plugin is present." On Linux it adds that your distribution's maintainer may not have compiled libass support in.
How to tell it worked
Open Video → Subtitles Track — the informal support guide points there for choosing between multiple tracks — and confirm the track you want is listed and selected.
One diagnostic that saves time: if changing the subtitle font size does nothing, that is expected for some formats. VideoLAN's own (self-described informal) support guide says "The font settings can be adjusted for plain text subtitle formats. Font settings cannot be changed for rich text (e.g. ASS) or bitmap (e.g. DVD) subtitle formats."
FAQ
Why won't VLC automatically load my .srt file?
Most often because the filename match is stricter than your file allows. --sub-autodetect-fuzzy has five levels, and at 0 nothing is autodetected at all. Check that value before renaming anything. Autodetection also only applies "if no subtitle filename is specified".
How do I make VLC find subtitles stored in a Subs folder?
Use --sub-autodetect-path, documented as looking "for a subtitle file in those paths too, if your subtitle file was not found in the current directory." For a single file, --sub-file loads it directly.
I turned subtitles off once and now they never come back. Why?
Check the Subtitle Track ID preference under Input/Codecs. The documented way to disable subtitles by default is setting it to -1, and VLC's documentation warns that the "Subtitle Track" menu is a separate control that "will not disable the subtitle file."
Why are my subtitles question marks instead of text? Wrong encoding, per VideoLAN's support guide. Squares or boxes are a different fault — a font missing those glyphs — and changing the encoding will not fix them.
Can I turn off subtitles that are burned into the video? No. VideoLAN's support guide answers this directly: "'You can't' is the short answer." It adds that this "isn't a feature currently in VLC, and probably won't ever come."
Quoted from VideoLAN's official documentation on subtitles, its published vlc -H output (a vlc-4.0.0-dev build) and its self-described informal support guide, checked 16 September 2026. VideoLAN notes parts of its wiki are outdated or incomplete — verify option names against your own build with vlc -H. More in fixes, the same problem in HandBrake, more VLC in keep the original track, and all Clapr tools.