mpv Secondary Subtitles Not Showing: How to Fix It

When mpv secondary subtitles are not showing, the problem is usually more specific than a general subtitle failure. The secondary track may be unselected, hidden by the secondary-subtitle visibility toggle, unavailable in the source, obscured by styling, or affected by a config profile, script, or custom input binding. Start with a clean test that proves mpv can render two known subtitle tracks. Once that works, restore your normal configuration one component at a time and stop as soon as the failure returns.

Video player test setup displaying two distinct subtitle tracks with a clean terminal session.

1. Confirm the Symptom With a Minimal Clean mpv Command

Before editing configuration files, determine whether the issue survives without your normal mpv settings. A clean test separates an mpv or media limitation from a local configuration conflict.

1.1 Inspect the available subtitle tracks

Open the file from a terminal so you can see mpv's track list. Use a local file with at least two embedded subtitle tracks if possible:

mpv --no-config "path/to/video.mkv"

Near startup, mpv normally prints the video, audio, and subtitle tracks it detected. Look for two or more subtitle entries. If only one subtitle track appears, mpv cannot select a second embedded track from that file. That is a source limitation, not a secondary-subtitle visibility problem.

Track IDs are not necessarily the same as the order shown by another media player. Record the IDs reported by mpv rather than guessing them.

1.2 Select primary and secondary tracks explicitly

Run a temporary command with known subtitle IDs:

mpv --no-config --sid=1 --secondary-sid=2 --secondary-sub-visibility=yes "path/to/video.mkv"

Replace 1 and 2 with the actual IDs shown in your track list. The primary and secondary selections must refer to different subtitle tracks.

Success means both languages appear during portions of the video where both tracks contain active cues. Seek to a scene with dialogue because subtitle tracks often have gaps. If both tracks display correctly, stop investigating renderers, drivers, and codecs. mpv's basic secondary-subtitle support is working, and the fault is in your normal configuration, bindings, scripts, or source-selection workflow.

1.3 Test with two external subtitle files

If the media has only one embedded subtitle track, use two known external files:

mpv --no-config --sub-file="primary.srt" --sub-file="secondary.srt" --sid=1 --secondary-sid=2 --secondary-sub-visibility=yes "video.mkv"

Track numbering can vary when embedded and external tracks are combined, so verify the startup track list. Shell quoting matters when paths contain spaces, brackets, apostrophes, or shell metacharacters.

If both external files are loaded but only one renders, try simple SRT files with overlapping timestamps. This removes complex ASS positioning and styling from the test.

2. Check Secondary Subtitle Selection and Visibility

Primary and secondary subtitles have separate selection and visibility states. A visible primary subtitle does not prove that the secondary selection is valid or enabled.

2.1 Use Alt+v to restore secondary subtitle visibility

In mpv's default input bindings, Alt+v toggles secondary subtitle visibility. Press it once while both tracks should have active dialogue. If the second subtitle appears, the track was already selected but hidden.

A custom input.conf, desktop environment shortcut, window manager, or keyboard layout may intercept this combination. Confirm the toggle directly from the terminal when necessary:

mpv --secondary-sub-visibility=yes "video.mkv"

Success means the selected secondary track becomes visible. Stop changing track IDs if this fixes the problem because selection was not the cause.

2.2 Select the secondary track with g-S

The default g-S binding cycles the secondary subtitle track. This is a two-key sequence: press g, release it, and then press uppercase S. Uppercase S generally requires Shift. It is not the same action as cycling the primary subtitle track.

Watch mpv's on-screen message after each sequence. It should report a secondary subtitle selection or indicate that the selection is disabled. Continue until the intended track is selected, then wait for a timestamp containing cues in both tracks.

If g-S does nothing, test with --no-config. Custom input bindings can replace defaults, and scripts can claim multi-key sequences. You can also add an explicit binding to input.conf:

g-S cycle secondary-sid

Do not assume a graphical track menu assigns a subtitle as secondary. Many menus or front ends apply a selection to the primary sid property. The reliable indicators are mpv's on-screen message, terminal output, or a direct secondary-sid command.

2.3 Verify persistent configuration options

Inspect mpv.conf, included configuration files, and active profiles for lines involving:

  • sid or secondary-sid
  • sub-visibility or secondary-sub-visibility
  • automatic subtitle loading
  • subtitle file paths
  • subtitle styling and positioning

Options in mpv.conf normally omit the leading double hyphen. For example:

secondary-sub-visibility=yes
secondary-sid=2

A fixed numeric ID is fragile because track IDs differ among files. It is often better to select the secondary track per file or use carefully designed language-based automation. If removing a fixed selection restores normal cycling, stop there rather than changing video output options.

3. Isolate Profiles, Scripts, Bindings, and Styling Conflicts

A heavily customized mpv setup can alter subtitle properties after startup. Profiles, Lua or JavaScript scripts, front ends, and IPC clients can all change track selection or visibility.

3.1 Identify active profiles

Use the profile inspection option to see what a named profile applies:

mpv --show-profile=PROFILE_NAME

Replace PROFILE_NAME with the profile you use. Also inspect auto profiles that match file extensions, protocols, display characteristics, HDR content, or other properties. A profile that appears unrelated to subtitles may still contain shared include files or reset track selections.

Temporarily disable one relevant profile rather than deleting the entire configuration directory. Success means the secondary subtitle remains selected and visible when the problematic profile is absent.

3.2 Test scripts and IPC controllers

Begin with --no-config. If the clean test works, return to the normal configuration but temporarily move or disable only suspected subtitle, track-selection, menu, history, or auto-language scripts. Scripts that observe file-loaded events may overwrite a manual secondary selection shortly after playback begins.

An external program connected through IPC can do the same thing. Close remote controls, front ends, automation tools, or custom clients for one test. If the track initially appears and then disappears, a delayed script or IPC command is especially likely.

Success means the secondary selection remains stable after the file loads and after seeking. Once you identify the responsible component, update its settings or remove only that component.

3.3 Separate ASS overlay limitations from selection failures

ASS subtitles can define fonts, margins, alignment, screen positions, animations, and drawing commands. Two ASS tracks may place text in the same area, making one look absent even though both are rendered. Secondary subtitle handling also cannot guarantee that two independently authored ASS layouts will combine cleanly.

Test the same tracks with simplified styling or convert copies to plain SRT for diagnosis. Keep the originals unchanged. Also temporarily remove subtitle position, scale, margin, font, and ASS override options from the command line or active profile.

Look near the top and bottom edges of the image. The secondary text may be clipped, placed outside the expected region, or covered by the primary track. If plain SRT versions display together, track selection is working and the remaining issue is ASS layout or styling.

Avoid stacking global subtitle overrides until the cause is clear. Fix the conflicting alignment, margins, or track-specific style instead. Success means both tracks are readable at the same timestamp without unintended overlap.

Visual comparison of local subtitle files, online streams, and video rendering paths.

4. Check External Files, Streams, and Platform-Specific Causes

4.1 Confirm external subtitle paths and permissions

External subtitles must be readable by the user running mpv. Confirm that the file exists, has nonzero content, and is not blocked by directory permissions. On Windows, verify the exact extension because a file displayed as subtitles.srt may actually be named subtitles.srt.txt. On Linux and macOS, remember that filename case can matter.

Pass the file explicitly with --sub-file instead of relying on automatic filename matching. Quote every path. If the explicit file appears in mpv's track list, loading succeeded. If it does not, correct the path, permission, or subtitle format before changing secondary visibility.

4.2 Understand online URL and yt-dlp limitations

For online playback, mpv can only select subtitle tracks that the extractor or stream manifest exposes. An online service may offer multiple subtitle languages in its website interface without delivering both as simultaneously selectable media tracks.

Review the terminal track list after opening the URL. If only one subtitle track is reported, secondary-sid cannot create another one. An outdated, missing, or incorrectly configured yt-dlp executable can also affect extraction, but update or install external tools only from their official project sources or trusted package managers.

Test a local file before blaming network access. If local dual subtitles work but a particular URL does not, the limitation is probably the extractor, manifest, service, or selected stream. Hardware decoding, HDR, and high bitrate do not manufacture missing subtitle tracks.

4.3 Distinguish rendering issues from unrelated audio and video settings

Audio backends do not normally control subtitle selection. Video output, GPU drivers, display servers, shaders, HDR processing, and hardware decoding can matter if all overlays or on-screen messages are missing, corrupted, or captured incorrectly. They are less likely when the primary subtitle and mpv on-screen display work normally.

As a targeted test, disable hardware decoding temporarily:

mpv --no-config --hwdec=no --sid=1 --secondary-sid=2 "video.mkv"

If both subtitles now appear, retest your normal video output and hardware-decoding configuration. Update GPU drivers through the operating system or hardware vendor's official channel. Do not install random codec packs because mpv generally uses its own multimedia stack, and unrelated system codec packs can add risk without fixing track selection.

On Linux, compare sessions or video output settings only if the on-screen display is also affected under Wayland or X11. On macOS and Windows, check whether a front end is embedding mpv and applying its own renderer or track controls.

4.4 Check screenshots separately

A subtitle may be visible during playback but absent from screenshots depending on the screenshot mode and whether subtitles or the on-screen display are included. That does not mean the secondary track failed to render on screen.

First confirm live playback. Then inspect your screenshot command and binding. Custom bindings may use a video-only screenshot command that intentionally excludes subtitles. Test the default screenshot behavior with --no-config. Success should be defined separately: visible during playback, and included in the screenshot only when the selected screenshot mode includes subtitles.

5. Use Logs and Runtime Information to Find the Exact Failure

5.1 Create a focused log file

Run mpv with more detailed subtitle and track messages:

mpv --no-config --msg-level=all=v --log-file=mpv-secondary-subtitles.log --sid=1 --secondary-sid=2 "video.mkv"

Reproduce the issue, close mpv, and search the log for sub, secondary, track, the subtitle filename, and parsing errors. Logs may reveal an unreadable file, unsupported or malformed subtitle data, incorrect track ID, or an option that was rejected.

Verbose logs can include local paths and URLs. Review and redact sensitive information before sharing them publicly.

5.2 Compare the track list before and after selection

Use terminal output and mpv's on-screen messages to answer three separate questions:

  1. Was the subtitle source detected?
  2. Was it assigned to secondary-sid?
  3. Was secondary subtitle visibility enabled?

If detection fails, fix the source or path. If assignment fails, fix the track ID or binding. If visibility is off, use Alt+v or set the property directly. This sequence prevents unrelated mpv troubleshooting.

5.3 Use the stats overlay carefully

mpv's stats overlay is useful for confirming playback characteristics, dropped frames, decoding, and output behavior. It is not a complete replacement for the startup track list or log when diagnosing secondary subtitle selection. If severe GPU or decoding trouble affects all overlays, stats can support that diagnosis. Otherwise, focus on subtitle properties.

6. Run a Clean Temporary Test Before Permanent Changes

Create a repeatable test with one local video, two short SRT files, and overlapping cue times. Store them in a simple directory without unusual characters. Then follow this order:

  1. Run mpv with --no-config.
  2. Confirm both subtitle files appear in the track list.
  3. Assign one with --sid and the other with --secondary-sid.
  4. Force --secondary-sub-visibility=yes.
  5. Verify both cues appear at the same timestamp.
  6. Add your normal mpv.conf options in small groups.
  7. Restore input bindings, profiles, scripts, shaders, and front ends one at a time.

Stop changing settings as soon as the secondary subtitles work reliably. If the problem returns immediately after one component is restored, you have a strong cause-and-effect result. Reconfigure that component instead of deleting your entire mpv setup.

7. Quick Fix Checklist

  • Press Alt+v once to enable secondary subtitle visibility.
  • Use g-S as a two-key sequence to cycle secondary tracks.
  • Confirm at least two subtitle tracks exist in mpv's terminal track list.
  • Select different valid IDs with --sid and --secondary-sid.
  • Test with --no-config before editing permanent files.
  • Load external subtitles explicitly with quoted --sub-file paths.
  • Use simple overlapping SRT cues to rule out ASS layout conflicts.
  • Check profiles, subtitle scripts, menus, and IPC tools for property changes.
  • Use a log file to find parsing, path, and track-selection errors.
  • Investigate GPU or hwdec settings only when other overlays also fail.

8. Frequently Asked Questions

8.1 Why does mpv show primary subtitles but not secondary subtitles?

The secondary track may be set to no, its visibility may be disabled, or its cues may overlap the primary track. Press Alt+v, cycle the secondary track with g-S, and verify the selected ID using terminal output. If a clean --no-config test works, inspect your configuration and scripts.

8.2 Can mpv display two external subtitle files simultaneously?

Yes, provided both files load as subtitle tracks and one is selected as primary while the other is selected as secondary. Pass both with --sub-file, inspect their IDs, and assign different IDs to sid and secondary-sid.

8.3 Why does g-S not open a secondary subtitle menu?

g-S is normally a key sequence that cycles the secondary subtitle selection. It is not necessarily a graphical menu. Custom bindings or scripts may override it, and a front end's track menu may control only the primary subtitle. Test the sequence with --no-config or bind cycle secondary-sid explicitly.

8.4 Why do two ASS subtitle tracks overlap?

ASS files can carry independent positioning and styling instructions. Two tracks authored for the same screen region may cover each other. Test plain SRT copies or temporarily remove styling overrides. If both simplified tracks appear, the mpv player issue is layout-related rather than failed selection.

8.5 Do HDR, hardware decoding, or shaders prevent secondary subtitles?

They usually do not affect only the secondary track. Investigate them when subtitles, the on-screen display, or other overlays are all missing or corrupted. A temporary --hwdec=no clean test can determine whether the rendering path contributes to the problem.

8.6 Why are secondary subtitles missing only on an online stream?

The stream manifest or extractor may expose only one subtitle track. Check mpv's terminal track list. If the second track is absent there but local dual-subtitle files work, focus on the URL, service, network access, yt-dlp integration, or stream limitation rather than subtitle visibility settings.


Citations

  1. Official documentation for subtitle options, track selection, profiles, logging, and video output. (mpv Manual)
  2. Official repository containing mpv source code, documentation, and example configuration files. (mpv GitHub Repository)
  3. Official yt-dlp project repository and installation guidance. (yt-dlp GitHub Repository)
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.