- Test ASS subtitles cleanly without deleting your mpv configuration.
- Control embedded styling with the correct sub-ass-override mode.
- Diagnose fonts, tracks, profiles, scripts, bindings, and forced styles.
- Confirm the Symptom With a Minimal Clean mpv Command
- Check ASS Override Modes and the u Key
- Check Embedded Styles, Fonts, and Forced Styling
- Inspect Configurations, Profiles, Bindings, and Scripts
- Rule Out Track, File, and Platform Limitations
- Use Logs and Runtime Information
- Run a Clean Temporary Test Before Permanent Changes
- Quick Fix Checklist
- Frequently Asked Questions
When mpv ignores the expected font, border, color, size, or placement of ASS or SSA subtitles, the cause is usually not the video decoder. The most common causes are an active --sub-ass-override mode, the default u key changing that mode, embedded ASS styles taking precedence, a missing font, an incorrectly formatted sub-ass-force-style value, or a profile or script changing subtitle options after startup. The safest approach is to reproduce the symptom without your normal configuration, identify which styling layer is winning, and stop as soon as the expected appearance returns.

Start with free Canva bundles
Browse the freebies page to claim ready-to-use Canva bundles, then get 25% off your first premium bundle after you sign up.
Free to claim. Canva-ready. Instant access.
1. Confirm the Symptom With a Minimal Clean mpv Command
Start with the exact video and subtitle combination that shows the problem. Do not edit several configuration files first. A clean test tells you whether the issue comes from the media, the subtitle renderer, or your mpv configuration.
1.1 Test the file without your normal configuration
Open a terminal or command prompt and run mpv with configuration loading disabled:
mpv --no-config "path/to/video.mkv"
On Windows, use the full path to mpv.exe if its directory is not in PATH. Keep paths containing spaces inside quotes. On Linux and macOS, quoting also prevents the shell from treating spaces and special characters as separate arguments.
If the subtitle is external, specify it directly:
mpv --no-config --sub-file="path/to/subtitles.ass" "path/to/video.mkv"
Success means the subtitle now uses the font, outline, color, and position defined by the ASS file. If it does, stop changing renderer or driver settings. The file and libass rendering path work, so the problem is in your normal configuration, a profile, an input binding, or a script.
If the style is still wrong, continue with track identification, override testing, and font checks. Confirm that mpv selected the intended subtitle track rather than another embedded or external track with similar language metadata.
1.2 Compare the ASS subtitle with a simple SRT
Create a small UTF-8 text file named test.srt:
1
00:00:01,000 --> 00:00:06,000
Subtitle renderer test
Load it explicitly:
mpv --no-config --sub-file="test.srt" "path/to/video.mkv"
SRT does not carry the same rich style definitions as ASS. mpv and its subtitle renderer therefore apply the selected default subtitle styling. If SRT responds to options such as --sub-font and --sub-color, but the ASS file does not, the renderer is functioning. The difference is likely ASS style precedence or the current override mode.
If neither SRT nor ASS appears, this is not merely an ASS styling problem. Check subtitle visibility, track selection, timing, and whether the subtitle file loaded successfully.
2. Check ASS Override Modes and the u Key
The option most directly associated with an mpv ASS subtitle style ignored report is --sub-ass-override. ASS subtitles can contain named styles and inline tags controlling typography, colors, margins, alignment, borders, shadows, and positioning. mpv must decide whether those authored instructions or the user's subtitle options should win.
2.1 Understand the override modes
Current mpv documentation lists modes including no, yes, force, scale, and strip. Their practical purposes are:
nopreserves the ASS script's authored styling as closely as possible.yesallows applicable user subtitle style overrides while retaining more of the subtitle's own formatting than aggressive modes.forceapplies user choices more aggressively when embedded ASS styling would otherwise win.scaleis intended for changing subtitle scale without broadly replacing ASS styling.stripremoves substantial ASS formatting and is useful only when deliberately simplifying heavily styled subtitles.
Exact interactions can depend on the option and mpv build, so verify the option description in the manual shipped with your installation. For a subtitle that should retain its embedded appearance, test:
mpv --no-config --sub-ass-override=no "video.mkv"
Success means the script's expected font, color, border, and placement return. Stop there unless you intentionally want to replace those attributes.
To test whether your own subtitle settings can override the embedded style, use:
mpv --no-config --sub-ass-override=force --sub-font="Arial" --sub-color="#FFFF00" "video.mkv"
Success means the subtitle visibly changes to the requested font and yellow color. That proves the previous appearance came from ASS style precedence, not a broken video output or hardware decoder.
2.2 Check what the u key changed
mpv's default input bindings commonly assign the lowercase u key to switching ASS override behavior. Pressing it accidentally can make a subtitle suddenly follow user styling or revert to embedded styling. An on-screen message may report the new state.
Press u once while the affected subtitle is visible and observe whether its appearance changes. Do not repeatedly press it without noting the state, because you may simply alternate between two behaviors.
Your own input.conf, a frontend, or a script can replace this binding. Search input.conf for sub-ass-override and for any line beginning with u. If you need a predictable test, set the mode explicitly on the command line rather than relying on the key.
3. Check Embedded Styles, Fonts, and Forced Styling
3.1 Embedded ASS styles normally have precedence
An ASS file normally contains a style table and dialogue events that reference those styles. Dialogue can also include inline override tags. This is why a global option such as sub-font may visibly affect an SRT file but appear to do nothing to a carefully typeset ASS file.
Open the ASS file in a text editor and inspect the [V4+ Styles] and [Events] sections. Do not save changes unless you understand the format. Look for the style used by the affected dialogue and for inline tags such as font, color, alignment, or position instructions.
If the subtitles are embedded in an MKV file, they can still contain the same ASS style information. The fact that the track is embedded does not make mpv's global font setting automatically stronger.
3.2 Verify that the requested font is available
If the ASS file requests a font that is unavailable, the subtitle renderer substitutes another font. The result can look like ignored styling even when the style was parsed correctly. Font substitution also changes text width, line wrapping, and sign placement.
- On Windows, check the installed fonts in Settings or the Fonts control panel.
- On Linux, use
fc-match "Font Name"to see which font Fontconfig selects. - On macOS, use Font Book to confirm that the font is installed and enabled.
Matroska files can include font attachments. Review terminal output for attachment and font-related messages. If an attached font is malformed or uses an unexpected internal family name, the visible result may differ from the filename.
Use only fonts you are licensed to install and obtain them from trustworthy sources. A random codec pack is not a valid fix for missing ASS fonts.
Success means the requested family is selected and the subtitle's width and appearance match expectations. Once font selection is correct, do not change video decoding or GPU settings.
3.3 Use sub-ass-force-style correctly
When you intentionally want to replace ASS style fields, use --sub-ass-force-style. It accepts ASS style field assignments, commonly separated by commas. For example:
mpv --no-config --sub-ass-override=force --sub-ass-force-style="FontName=Arial,FontSize=36,Outline=2,Shadow=0" "video.mkv"
For a persistent setting in mpv.conf, omit the leading dashes:
Shell quoting matters. A font name containing spaces and an argument containing commas should be passed as one argument. ASS colors also use ASS-specific notation in style fields, which may not match ordinary CSS color notation. Test font size or outline first because those changes are easy to recognize, then add color fields after confirming that the option is being applied.
Success means the chosen fields change while the subtitle remains visible and synchronized. If a field does not change, inspect the dialogue for inline tags that may supersede a named style and compare force with strip only in a temporary test.
4. Inspect Configurations, Profiles, Bindings, and Scripts
If --no-config fixes the problem, re-enable your configuration methodically. Search mpv.conf and included configuration files for these terms:
sub-ass-overridesub-ass-force-stylesub-font,sub-color,sub-border, andsub-scalesub-file,sid, andslanginclude, profile sections, and conditional profiles
A later option can replace an earlier one. A profile may activate only for certain protocols, filenames, extensions, resolutions, or other properties, making the problem appear limited to local files or streams.
4.1 Use show-profile to inspect named profiles
If you suspect a named profile, ask mpv to print it:
mpv --show-profile=profile-name
This is especially useful when a profile bundles subtitle options with HDR, hardware decoding, shaders, or streaming settings. Those video options are not normally responsible for ASS style precedence, but the same profile may contain the subtitle option that is responsible.
4.2 Temporarily isolate scripts
Scripts can change properties at startup, after file load, or in response to key bindings. First run --no-config. If that works, test your normal configuration while temporarily disabling only the suspected script or script option rather than deleting the entire configuration directory.
Also check frontend launch arguments. A graphical launcher may add options after those in mpv.conf. IPC clients can change sub-ass-override while mpv is running, so close automation tools during the clean test.

5. Rule Out Track, File, and Platform Limitations
5.1 Confirm the active subtitle track
Use mpv's track list or on-screen track controls to verify the selected subtitle track. Terminal startup output identifies available audio, video, and subtitle tracks. Two English subtitle tracks may use completely different styling, and an automatically discovered external subtitle can be selected instead of the embedded ASS track.
For a controlled test, specify the subtitle file explicitly or select the intended subtitle ID. Success means the displayed text matches the dialogue in the file you are inspecting.
5.2 Separate relevant settings from unrelated settings
Hardware decoding, GPU output, HDR tone mapping, audio backends, shaders, screenshot formats, and yt-dlp generally do not determine ASS font or style precedence. Do not disable them at random when the only symptom is an incorrect subtitle font or border.
They become relevant only when subtitles fail to appear, rendering is corrupted, the entire frame has wrong colors, playback cannot start, or a remote URL does not provide the expected subtitle track. For an online URL, confirm that the source actually exposes an ASS or SSA subtitle track. Many services provide WebVTT or another format instead, so embedded ASS styling cannot exist there.
For network streams, test the resulting local subtitle file when possible. If local ASS playback works but a URL lacks that track, the limitation is the media source or extraction path rather than mpv's ASS renderer.
5.3 Check file access and path handling
Permissions matter when an external subtitle or font attachment cannot be read. Confirm that your user account can read the video and subtitle files. Avoid testing from protected directories when a normal user-owned folder is available.
Paths beginning with special shell characters, containing brackets, or containing spaces require careful quoting. If mpv reports that the subtitle file cannot be opened, styling options cannot fix it. Success means startup output confirms the intended subtitle file or embedded track was loaded.
6. Use Logs and Runtime Information
When the source remains unclear, create a log from a single controlled launch:
mpv --no-config --msg-level=all=v --log-file="mpv-ass-test.log" --sub-file="subtitles.ass" "video.mkv"
Review the log for subtitle track selection, file loading errors, font matching, attachments, libass messages, and command-line option parsing. Verbose logs can contain local paths and media URLs, so remove private information before sharing them.
The stats overlay is useful for verifying playback and selected tracks, although it does not replace subtitle-specific logging. Runtime property information and on-screen messages can reveal when a key binding or script changes the override mode.
If mpv reports an unknown option, check the documentation corresponding to your installed build. Do not solve that message by downloading an unverified binary. Use an official project source or a reputable operating-system package channel.
7. Run a Clean Temporary Test Before Permanent Changes
Use a short, repeatable sequence that changes only one variable at a time:
- Run the affected ASS file with
--no-config --sub-ass-override=no. - Confirm the intended subtitle track is active.
- Check whether the ASS-requested font exists or is attached.
- Run a simple SRT to confirm that user subtitle styling works.
- Test
--sub-ass-override=forcewith an obvious font size or outline change. - Add one
sub-ass-force-stylefield at a time. - Re-enable your normal configuration, profiles, bindings, and scripts in small groups.
Stop as soon as the expected result appears. If override=no restores the authored style, there is no reason to change GPU drivers, audio settings, hardware decoding, yt-dlp, or screenshot options. If installing or enabling the correct font fixes the shape and placement, keep the renderer settings unchanged.
8. Quick Fix Checklist
- Run
mpv --no-configwith the exact video and ASS file. - Use
--sub-ass-override=noto preserve embedded ASS styling. - Use
--sub-ass-override=forceonly when user styling should win. - Press
uonce and watch for an override-mode message. - Confirm the intended subtitle track is selected.
- Verify the ASS-requested font is installed, enabled, or attached.
- Quote
sub-ass-force-stylecorrectly and test one field first. - Compare with a simple SRT to separate ASS precedence from renderer failure.
- Search configs, profiles, input bindings, scripts, frontends, and IPC tools.
- Use verbose terminal output and a log file before changing unrelated video options.
9. Frequently Asked Questions
9.1 Why does sub-font work with SRT but not ASS?
SRT normally lacks rich embedded styling, so mpv's default subtitle options control its appearance. ASS includes style definitions and may include inline formatting. Use --sub-ass-override=force if you intentionally want user settings to override those instructions, or no if you want the authored ASS design.
9.2 Why did pressing u fix or cause the problem?
The default u binding commonly switches ASS override behavior. The visible subtitle can therefore alternate between embedded styling and stronger user overrides. A custom input.conf or script may change this behavior, so inspect your bindings if the result differs.
9.3 Can a missing font change subtitle placement?
Yes. A substitute font can have different glyph widths and metrics, changing line wrapping, spacing, and apparent alignment. Confirm font matching before assuming that ASS positioning tags are being ignored.
9.4 Does hardware decoding cause ignored ASS styles?
Normally, no. Hardware decoding processes video, while ASS subtitle styling is handled separately. Investigate hardware decoding only if subtitles are missing, frames are corrupted, or the entire output path is failing, not merely because the font or border differs.
9.5 Should I use strip mode permanently?
Usually not if you want to preserve typesetting, signs, karaoke effects, or intentional placement. strip is an aggressive simplification tool. Test it temporarily when you specifically want plain, consistently styled subtitles.
9.6 How do I know the problem is fixed?
The fix is successful when the selected ASS track consistently uses either its authored style or your deliberate override after a fresh launch. The terminal should show no subtitle loading or font matching error relevant to the symptom. Once that happens, stop changing unrelated playback settings and make only the proven option permanent.