mpv MKV Subtitles Not In Track Menu: How to Fix It

  • Verify embedded MKV subtitles with clean mpv, F9, and ffprobe tests.
  • Separate container damage from config, script, binding, and frontend problems.
  • Use focused logs before changing hardware decoding or unrelated playback settings.

When mpv plays an MKV but its subtitle tracks do not appear in the track menu, the problem usually falls into one of four categories: the container does not actually contain subtitle streams, the streams are disabled or damaged, mpv is being changed by a configuration or script, or a graphical frontend is displaying an incomplete track list. The safest approach is to verify the file and mpv separately before changing drivers, installing software, or rewriting your configuration. The steps below apply to Windows, Linux, and macOS, with command syntax adjusted where necessary.

Video player, MKV file, and terminal arranged for a clean subtitle track test.

1. Confirm the Symptom With a Minimal Clean mpv Command

Begin by removing your normal configuration from the test without deleting it. The --no-config option tells mpv not to load the usual configuration files, profiles, scripts, or user input bindings. It is temporary and affects only that launch.

1.1 Open the MKV without your configuration

Run one of these commands in a terminal, replacing the example path with the real file path.

On Windows Command Prompt:

mpv --no-config "C:\Videos\example.mkv"

On PowerShell:

mpv --no-config 'C:\Videos\example.mkv'

On Linux or macOS:

mpv --no-config '/home/user/Videos/example.mkv'

Keep the path quoted if it contains spaces, brackets, apostrophes, or shell-sensitive characters. If the command says that the file cannot be opened, resolve the path or permission problem before investigating subtitles.

1.2 Inspect mpv's own track list

After playback starts, press F9 in the standard mpv input configuration. This normally displays a list of available audio and subtitle tracks. You can also press j to cycle subtitle tracks or use the console and properties if your setup provides them.

If F9 now shows the embedded subtitles, the MKV and mpv's demuxer are functioning. Stop changing container metadata or codecs. Your regular config, a profile, a script, an input binding, or the graphical frontend is responsible.

If F9 still shows no subtitle tracks, continue by verifying the container. A clean launch cannot reveal streams that are absent, disabled at the container level, or unreadable.

2. Verify That the MKV Actually Contains Subtitle Streams

An MKV filename, release description, or operating-system thumbnail does not prove that subtitles are embedded. Subtitle files may have been distributed separately, omitted during remuxing, or present in a different copy of the video.

2.1 Compare mpv with ffprobe

If FFmpeg is already installed from a trusted source, use ffprobe to list the file's streams:

ffprobe -v error -show_entries stream=index,codec_type,codec_name:stream_tags=language,title -of default=noprint_wrappers=1 "example.mkv"

Look for one or more entries where codec_type=subtitle. Common Matroska subtitle formats include SubRip text, ASS or SSA, WebVTT, and image-based subtitle formats such as PGS.

Interpret the result carefully:

  • If neither ffprobe nor mpv finds a subtitle stream, the file probably has no embedded subtitles.
  • If ffprobe lists subtitles but mpv does not, inspect stream metadata, damage, format support, and mpv's terminal log.
  • If both list the tracks but a frontend menu does not, the frontend or its menu-refresh logic is the likely cause.

Success means that at least one subtitle stream is shown by both tools. At that point, stop investigating whether the tracks exist and move to selection or frontend troubleshooting.

2.2 Check track flags and metadata

Matroska tracks can carry default, forced, and enabled flags. A forced flag does not mean that every player must select the track automatically. A default flag influences selection, while an enabled or disabled state can determine whether a track is considered usable.

Inspect detailed stream information with:

ffprobe -v error -show_streams "example.mkv"

Also consider using the trusted Matroska tools mkvinfo or the MKVToolNix graphical interface to inspect track headers. If a subtitle track is explicitly disabled, enable it in a copied test file or remux the file with appropriate track flags. Preserve the original until the result has been verified.

Do not treat a missing language tag or title as proof of a broken stream. Such metadata affects labels and automatic selection, but a healthy track can still be playable without it.

2.3 Test another known-good MKV

Open a different MKV that you know contains working embedded subtitles. Use the same clean command:

mpv --no-config "known-good.mkv"

If the second file's tracks appear, the first MKV is the variable. Stop modifying global mpv settings. Concentrate on the first file's streams, flags, or integrity. If subtitles are missing from every known-good MKV, continue with mpv installation and logging checks.

3. Check Configurations, Profiles, Bindings, and Scripts

Options that disable subtitle display do not always remove tracks from mpv's internal track list. For example, selecting no subtitle track can produce no visible text while the track remains available. This distinction helps separate a selection problem from an enumeration problem.

3.1 Review subtitle selection options

Search your mpv.conf, included configuration files, launch shortcuts, and frontend arguments for options such as:

  • sid=no, which starts with subtitle selection disabled
  • sub-visibility=no, which hides rendered subtitles
  • slang=..., which influences automatic language selection
  • sub-auto=..., which controls discovery of external subtitle files
  • edition=..., which can affect track availability in complex containers
  • lavfi-complex=... or unusual filter graphs that alter normal track handling

sid=no and sub-visibility=no usually do not erase embedded tracks from the track list, but they explain cases where tracks exist and nothing appears on screen. Try selecting a subtitle explicitly:

mpv --no-config --sid=1 "example.mkv"

The correct subtitle ID is mpv's displayed track ID, not necessarily the stream index reported by ffprobe.

3.2 Check F9 and custom input bindings

A custom input.conf can replace F9's normal action. Pressing F9 might therefore open a script menu, do nothing, or show a frontend-generated list rather than mpv's native track list.

Test with --no-config. If F9 works there, search input.conf and script bindings for F9. Remove or change only the conflicting line, then retest. Do not delete the entire configuration directory.

3.3 Separate mpv from a GUI frontend

Frontends can maintain their own menus through IPC, cache track information, or populate menus only when a file first opens. A frontend menu can therefore omit a track even when mpv has detected it.

Launch the same executable directly from a terminal and press F9. If mpv shows the subtitle while the GUI menu does not, update or reconfigure the frontend, refresh its track menu, and review its launch arguments. The player core does not need codec changes in this situation.

3.4 Disable scripts temporarily

Scripts can observe file-loading events, change sid, replace menus, or issue IPC commands. Rename only the suspected script or temporarily launch with --no-config. Then reintroduce scripts one at a time.

Success means the track disappears only after one specific script returns. Stop there and review that script's options or compatibility rather than changing unrelated video settings.

4. Rule Out Unrelated Playback Options

Hardware decoding, HDR output, GPU shaders, audio backends, screenshot settings, and video output drivers can cause important mpv problems, but they normally do not determine whether an embedded subtitle stream appears in the demuxed track list.

4.1 Hardware decoding and output drivers

If video renders incorrectly while subtitle tracks remain listed, test --hwdec=no and a standard video output configuration. This can diagnose rendering issues, especially with image-based subtitles or complex GPU pipelines. It is not the first fix when the subtitle stream itself is absent from F9.

Likewise, HDR tone mapping, shaders, display-server differences, and GPU drivers may affect how subtitles look or whether the video window renders correctly. They should not make ffprobe stop seeing a subtitle stream in the container.

4.2 Audio and video track settings

Options such as aid, vid, audio-device selection, and audio backends affect other track types. Review them if several kinds of tracks are missing or the wrong edition is selected, but do not change audio drivers merely because one subtitle track is absent.

4.3 yt-dlp, URLs, and network streams

For a local MKV, yt-dlp is not involved. Its path, cookies, and format selection cannot repair a subtitle stream that should already be inside the file.

For an online URL, the situation differs. Subtitles may be separate resources, unavailable in the selected format, blocked by authentication, or not exposed by the server. First reproduce the issue with a local MKV. If local subtitles work, inspect yt-dlp's format and subtitle output or the stream manifest rather than changing mpv's local Matroska settings.

4.4 External subtitles versus embedded tracks

sub-auto, subtitle filename matching, and directory scanning concern external files such as movie.en.srt. They do not control whether an embedded MKV subtitle stream exists. You can load a trusted external subtitle manually, but doing so does not fix a damaged or missing embedded track.

5. Check Paths, Permissions, and File Integrity

A path or permission problem generally prevents the whole file from opening, not just one subtitle stream. However, incomplete downloads, interrupted copies, damaged storage, and malformed Matroska structures can affect individual tracks.

5.1 Confirm access to the exact file

Make sure the terminal command opens the same file as the frontend. Duplicate filenames, mounted network shares, symbolic links, and playlist entries can make two apparent tests use different copies.

On network storage, copy the file locally and run the clean test. If the local copy works but the network copy does not, investigate transfer integrity, filesystem access, or an incomplete remote file.

5.2 Look for demuxing errors

Errors mentioning invalid data, unsupported codecs, malformed packets, or failed stream initialization are more useful than generic playback symptoms. If only one MKV fails and ffprobe also reports errors, obtain a valid copy from the legitimate source or remux your own file with trusted Matroska tools.

Remuxing can rebuild container structure, but it cannot recreate subtitle data that is absent or severely corrupted. Always work on a copy.

Terminal logs and track properties being inspected for a missing subtitle stream.

6. Use mpv Logs and Track Properties

Terminal output can show whether mpv recognized a subtitle stream, rejected it, or received no such stream from the demuxer.

6.1 Create a focused log

Run:

mpv --no-config --msg-level=demuxer=trace,ffmpeg=debug --log-file=mpv-subtitle-test.log "example.mkv"

Close mpv after the file loads, then search the log for subtitle, sub, track, unsupported, invalid, and error. Logs can contain local paths and URLs, so remove sensitive information before sharing them.

6.2 Inspect profiles and runtime information

If a named profile may be involved, use --show-profile=PROFILE_NAME to print its contents. Also inspect auto profiles that match file extensions, protocols, display properties, or other conditions.

The stats overlay is useful for rendering and performance information, but F9 and mpv's track properties are more directly relevant to missing container tracks. When using JSON IPC, query the track-list property. A subtitle entry there proves mpv knows about the track even if a GUI menu omits it.

Once the log and track-list show the subtitle correctly, stop altering demuxer or decoder settings. The remaining problem lies in selection, rendering, bindings, or frontend presentation.

7. Run a Clean Temporary Test Before Permanent Changes

Use a controlled sequence so that each result identifies one cause.

  1. Test the affected MKV with --no-config.
  2. Press F9 and record whether a subtitle track appears.
  3. Run ffprobe against the exact same file.
  4. Test a second known-good MKV.
  5. If clean mpv works, restore your config and disable one profile or script at a time.
  6. If ffprobe sees a track but clean mpv rejects it, create a focused log.
  7. If neither tool sees it, verify the source file or inspect it with MKVToolNix.

Avoid changing hardware decoding, HDR, audio output, yt-dlp, scripts, and container metadata simultaneously. Multiple changes may hide the cause and create a second mpv player issue.

8. Quick Fix Checklist

  • Launch the exact MKV with mpv --no-config.
  • Press F9 to inspect mpv's native track list.
  • Confirm subtitle streams with ffprobe or MKVToolNix.
  • Check whether the subtitle track is flagged as disabled.
  • Test a different known-good MKV.
  • Compare mpv's F9 list with the frontend menu.
  • Review sid, subtitle visibility, editions, profiles, and scripts.
  • Check whether F9 was replaced in input.conf.
  • Generate a focused demuxer log for unsupported or damaged streams.
  • Change one setting at a time and stop when the track appears consistently.

9. Frequently Asked Questions

9.1 Why does ffprobe show subtitles while the GUI menu does not?

The frontend may be caching tracks, querying IPC incorrectly, or displaying its own menu. Check F9 in a direct mpv --no-config session and query track-list through IPC. If those show the subtitle, troubleshoot the frontend rather than the MKV.

9.2 Can hardware decoding hide an MKV subtitle track?

Hardware decoding usually affects video decoding, not demuxer track discovery. It can contribute to subtitle rendering problems in unusual pipelines, but it is unlikely to explain a track missing from F9 and track-list.

9.3 Why is the subtitle listed but not visible?

The track may not be selected, subtitle visibility may be disabled, timestamps may not overlap the current scene, or styling and positioning may place text unexpectedly. Select the track with j or --sid=ID, confirm visibility, and seek to a scene known to contain dialogue.

9.4 Does F9 always show mpv's track list?

It does with the standard binding, but a custom input.conf, script, or frontend can replace the key. A --no-config test is the fastest way to determine whether F9 has been overridden.

9.5 Can remuxing fix missing subtitles?

Remuxing may repair container structure or change track flags when the subtitle data still exists. It cannot recover a stream that was never included. Verify the stream first and remux only a copy with trusted tools.

9.6 When should I stop changing mpv settings?

Stop when clean mpv and ffprobe both show the track. At that point, the stream is available and broad system changes are unnecessary. Focus only on the frontend, selection option, visibility setting, binding, profile, or script that differs from the successful test.


Citations

  1. Official mpv manual covering configuration, track selection, logging, profiles, input bindings, and properties. (mpv Manual)
  2. Official FFmpeg documentation for ffprobe stream and container inspection. (ffprobe Documentation)
  3. Official MKVToolNix documentation for inspecting and editing Matroska containers. (MKVToolNix Documentation)
  4. Matroska technical specifications describing container tracks and track flags. (Matroska Specifications)
Cindy, ContentBASE creator assistant

MEET CINDY

Your ContentBASE creator assistant

Cindy helps creators find Canva templates, content ideas, and simple ways to make better social media posts faster.

Want ready-to-use templates? Claim the free Canva bundles or browse the full bundle store.