Yatoshi Video playback
Technical index
Diagnostic entry 04

Missing Subtitles: Why the Track Exists and Never Reaches the Screen

Subtitles are in the file and never appear. Soft, hard and image subtitles, why SRT and ASS behave differently, and how to select the right track.

Stage 1 Container

MKV, MP4, AVI. Identifies what is inside the file.

Stage 2 Splitter

Separates the container into video, audio and subtitle tracks.

Stage 3 Decoder

Turns a compressed track into frames or samples.

Stage 4 Renderer

Draws frames, outputs audio and paints subtitles.

Where this symptom sits in the chain: everything before stage 4 completed, and nothing after it was reached.

Subtitles are the one part of playback where the track being present proves almost nothing. Video and audio have exactly one path to the screen; subtitles have several, and they can fail at a point that has no equivalent on the other tracks. A file can hold a perfectly good subtitle track that nothing in the chain was ever asked to draw.

Three kinds of subtitle, three kinds of failure

Soft subtitles are a separate track inside the container, and a renderer draws them over the picture at playback time. They can be switched, styled and turned off. Almost everything in this article is about them.

Hard subtitles are not subtitles at all by the time the file exists. They were drawn into the video frames during encoding and are now pixels like any other. If text is visible and cannot be switched off, this is why, and no setting will remove it.

External subtitles sit beside the video as a separate file, usually SRT or ASS. They depend on the player finding them, which depends entirely on how they are named.

The naming rule for external files

Players match an external subtitle to a video by base filename. The two files must share a folder, and the subtitle must carry the video’s name with a different extension, optionally with a language suffix that the player recognises. A video called episode-04.mkv is matched by episode-04.srt and by episode-04.en.srt, and is not matched by subs.srt or by Episode 4 English.srt.

This accounts for a large share of reports in which one file in a folder shows subtitles and the next does not. Nothing is broken and nothing needs installing; the second file simply has a name the player does not connect to anything.

Inside a container, the track can be there and unselected

A Matroska file can hold several subtitle tracks, and which one plays by default depends on flags set when the file was created — one of several behaviours that belong to the container rather than to the codec. A track marked default is chosen; if none is marked, behaviour differs between players, and some select nothing at all. Cycling subtitle tracks from the player menu is the first thing to try, and it costs one keystroke.

Forced tracks add a wrinkle worth knowing. A track flagged as forced is meant to carry only the lines that must always be shown, such as foreign dialogue in an otherwise English film. A player honouring that flag correctly will show almost no text and appear broken, when it is doing exactly what the file asked.

Text subtitles and image subtitles are not interchangeable

SRT is plain text with timings, and everything can read it. ASS and SSA are text with a styling block that specifies fonts, colours, positions and sometimes animation, which is why fansub releases use them. A renderer that ignores the styling puts the lines in the wrong place at the wrong size; a renderer with full support reproduces what the author intended, including any fonts the file carries as attachments.

PGS and VobSub are images. They came from Blu-ray and DVD sources respectively, and each subtitle is a small bitmap rather than a string. They cannot be resized meaningfully, restyled, or converted to text without character recognition. A renderer that handles SRT and ASS may show nothing for a PGS track, and the fix is a different renderer rather than a different setting.

What actually draws them on Windows

Players with internal rendering, VLC and mpv among them, handle every category above without help. On a DirectShow chain the renderer is a separate component, historically DirectVobSub and now more often the player’s own. DirectVobSub was in most codec packs of the era for exactly this reason, and a chain assembled without it decodes video and audio correctly while drawing no text at all.

That is the specific case where a missing component really is the answer, and it is the reason subtitle support was a selling point for a codec pack rather than an afterthought. The modern equivalent is to let the player render subtitles itself and leave the system chain out of it.

Encoding, the last common fault

Text that appears as boxes, question marks or accented letters replaced by pairs of symbols is not a subtitle problem but a character encoding one. Subtitle files written years ago in a regional code page are read as UTF-8 by current players, and the bytes no longer mean what they meant. Setting the subtitle encoding in the player confirms the diagnosis, and re-saving the file as UTF-8 fixes it for good.

Common questions

What is the difference between soft and hard subtitles?

Soft subtitles are a separate track that a renderer draws over the picture, so they can be switched off, restyled or replaced. Hard subtitles were burned into the video frames when the file was encoded and are part of the picture forever. If text cannot be turned off, it is hard, and nothing in the player will remove it.

Why does an external SRT file sometimes load and sometimes not?

Players match external subtitles by filename. The subtitle file has to sit in the same folder and carry the same base name as the video, with only the extension differing, or with a recognised language suffix. Any other name and the player never looks at it, which is why one file in a folder works and its neighbour does not.

Why do subtitles show as boxes or question marks?

That is a text encoding mismatch rather than a missing track. A subtitle file saved in a regional code page and read as UTF-8, or the reverse, produces exactly that result. Most players allow the encoding to be set for the subtitle track, and saving the file as UTF-8 fixes it permanently.

What are PGS subtitles and why do they behave differently?

PGS subtitles, which come from Blu-ray sources, are images rather than text. They cannot be restyled, resized or converted without optical character recognition, and a renderer that handles text subtitles perfectly may not handle image ones at all. A track listed as PGS or VobSub is in this category.

Why are subtitles positioned wrongly or the wrong size?

ASS and SSA subtitles carry their own styling, including fonts, positions and effects, and they assume the resolution they were authored for. Played at a different resolution, or rendered by something that ignores the styling block, they land in the wrong place or at the wrong scale. A renderer with full ASS support is the fix.

Published