mpv Subtitles Overlapping OSD: How to Fix It

  • Test mpv without configuration to isolate subtitle, OSC, profile, or script conflicts.
  • Adjust sub-pos, margins, ASS behavior, and OSC visibility without disrupting playback.
  • Compare fullscreen, windowed, streams, and screenshots before changing unrelated decoder settings.

When mpv subtitles overlap the OSD, progress bar, or on-screen controller, the player is usually not failing to decode the media. The problem is more often a layout conflict involving subtitle position, subtitle margins, OSD placement, OSC visibility, ASS styling, fullscreen geometry, or a custom script. The quickest solution is to reproduce the collision with a clean mpv command, identify whether the overlapping element is the OSD or OSC, and then change one relevant setting at a time. This guide covers Windows, Linux, and macOS while preserving your existing configuration until you know exactly what caused the problem.

Video player comparison showing subtitles overlapping controls and raised subtitles clearing the control bar.

1. Confirm the Symptom With a Minimal Clean mpv Command

Begin by determining whether the overlap comes from mpv itself or from your configuration. A temporary clean test disables configuration files, user scripts, custom input bindings, shaders, profiles, and most other personalized behavior without deleting anything.

Open a terminal, Command Prompt, or PowerShell window and run mpv with --no-config. Replace the example path with your media file:

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

On Windows, you may need to run mpv.exe or provide its full path. Keep quotes around paths containing spaces. On Linux and macOS, confirm that the shell is not expanding special characters in the filename or URL.

Enable the subtitle track, seek through the video, pause playback, and move the pointer near the player controls. Test both windowed and fullscreen modes. This distinguishes three elements that users commonly call the OSD:

  • The OSD displays messages such as volume, seek position, track changes, and status text.
  • The OSD bar is the temporary bar shown for actions such as seeking or changing volume.
  • The OSC is the interactive on-screen controller containing playback buttons and a timeline.

If subtitles no longer collide under --no-config, the media file, decoder, GPU driver, and subtitle renderer can probably display the content correctly. Stop investigating codecs or reinstalling mpv. The likely cause is now a config option, profile, script, or input binding.

If the overlap remains, repeat the test with a deliberately raised subtitle position:

mpv --no-config --sub-pos=90 "path/to/video.mkv"

Success means the subtitles move upward and remain readable while the OSD or OSC is visible. If that solves the practical problem, you can later add sub-pos=90 to your configuration. If the subtitle does not move, it may use ASS positioning that requires separate handling.

1.1 Compare Multiple Subtitle Types

Test another subtitle track or file when possible. Plain SRT subtitles are normally positioned by mpv, while ASS or SSA subtitles can contain authored placement, margins, and screen coordinates. Image-based subtitle formats also behave differently from text subtitles.

If only one subtitle track overlaps the controls, the track's authored placement is the likely cause. If every subtitle track overlaps, inspect mpv's global subtitle and interface settings instead. Once this distinction is clear, stop swapping unrelated audio or video settings.

2. Check the Options Directly Related to Subtitle and UI Placement

The reliable mpv subtitles overlapping OSD fix is usually found among a small group of options. Review command-line arguments first, followed by mpv.conf, profiles, input.conf, and script options.

2.1 Adjust sub-pos Carefully

The sub-pos option controls the subtitle position as a percentage of the screen height. A lower value moves normal subtitles upward. Start conservatively:

sub-pos=95

If the collision remains, try:

sub-pos=90

Test the same scene in windowed and fullscreen modes after each change. Success means the lowest subtitle line remains above the OSC and seek bar without moving unnecessarily close to the center of the picture. Stop lowering the value once the collision disappears.

You can test the option temporarily before saving it:

mpv --sub-pos=90 "video.mkv"

Search your configuration and active profiles for duplicate sub-pos entries. In a normal configuration sequence, a later applicable setting can replace an earlier one. A profile may therefore undo the value you placed near the beginning of mpv.conf.

2.2 Review Subtitle and OSD Margins

Subtitle margins reserve or use space around the rendered video area, depending on the subtitle format, video aspect ratio, and relevant mpv options. Check for settings involving sub-margin-x, sub-margin-y, sub-use-margins, sub-ass-force-margins, and sub-ass-override.

A positive bottom subtitle margin can raise text, but margin behavior is not identical to sub-pos. Test margin changes independently rather than combining several options immediately. For example:

mpv --no-config --sub-margin-y=40 "video.mkv"

The best value depends on display scale, font size, video resolution, and whether the video leaves unused margins inside the window. Success means the subtitle gains enough clearance without being clipped or pushed into important picture content.

OSD margins affect OSD placement rather than subtitle placement. If customized OSD text is colliding with subtitles, inspect options such as osd-margin-x and osd-margin-y. Do not assume that increasing both subtitle and OSD margins is helpful. Moving both elements in the same direction can preserve the collision.

2.3 Handle ASS Subtitle Margins and Authored Placement

ASS subtitles may specify alignment, margins, font styles, and exact positions. Signs of authored placement include dialogue appearing at different screen locations, signs attached to objects, or one ASS track ignoring a sub-pos adjustment that works for SRT.

Test the file without configuration, then compare the relevant ASS override behavior documented by mpv. Options such as sub-ass-override can alter how strongly mpv replaces embedded styling, while sub-ass-force-margins can affect whether ASS subtitles are placed in available margins.

Use overrides cautiously. Aggressively replacing ASS styles can damage intentional typesetting, karaoke effects, sign positioning, and multi-speaker layouts. If only ordinary dialogue at the bottom causes trouble, prefer a restrained positioning or margin adjustment. Success means normal dialogue clears the controls while intentionally positioned signs still appear correctly.

2.4 Change OSC Visibility Instead of Moving Subtitles

If subtitles are positioned appropriately during normal playback and collide only when the pointer reveals the controller, changing OSC behavior may be better than permanently raising every subtitle.

Test with the OSC disabled:

mpv --no-config --osc=no "video.mkv"

If the overlap vanishes, the OSC is the competing element. You can keep keyboard controls, disable the OSC permanently, or configure its visibility through the built-in OSC's script options and bindings. mpv also provides an OSC visibility script binding that can cycle visibility modes when assigned in input.conf.

For example, a binding based on mpv's documented OSC script binding can let you hide the controller while watching subtitled content. Check the current manual because available script options can vary with the mpv build in use. Success means the OSC hides automatically or on demand, while subtitles retain a comfortable baseline.

2.5 Distinguish OSD-on-Seek Behavior From the OSC

If the collision happens only after seeking, inspect osd-on-seek. A seek command can display a bar, text, or both. Choosing less intrusive feedback may solve the symptom without moving subtitles.

Also inspect custom seek bindings in input.conf. Commands can include OSD prefixes or trigger messages through scripts. Temporarily remove or comment out only the suspect binding, then retest the same seek action. Do not erase the whole input file.

Success means seeking still works while its temporary display no longer covers the subtitle. At that point, stop changing subtitle rendering options because the problem was attached to the command feedback.

3. Inspect Profiles, Scripts, Tracks, and Playback Features

3.1 Find Profile-Specific Overrides

Profiles can activate for fullscreen playback, particular protocols, media characteristics, or manual selections. This explains why local files may work while network streams overlap, or why the problem appears only with HDR material.

Search mpv.conf for profile sections and relevant settings. Use mpv's profile inspection option for a named profile:

mpv --show-profile=PROFILE_NAME

Compare the result with your normal command and the clean --no-config test. Look specifically for subtitle position, margins, font size, OSD settings, geometry, autofit behavior, video zoom, panscan, and script options. Hardware decoding, HDR tone mapping, and output drivers are rarely direct causes of a simple subtitle-to-OSC collision, although they can affect video geometry or expose a driver-specific rendering defect.

3.2 Disable Scripts Selectively

Scripts can replace the OSC, display chapter information, create progress bars, change subtitle properties, or load profiles dynamically. If --no-config fixes the issue, test your regular configuration while preventing scripts from loading, or temporarily move only the suspected script out of its scripts directory.

Begin with scripts that draw overlays or manipulate subtitles. Restore and test one script at a time. Success means you identify a single script or script option that reproduces the overlap. Update its configuration from its trusted project documentation rather than downloading an unknown replacement.

3.3 Verify the Active Subtitle Track

Use mpv's track list or the interactive stats display to confirm which subtitle stream is active. A file may contain several tracks with different formats and styling. External subtitles may also be selected instead of the embedded track you expected.

Audio and video track selection normally does not reposition subtitles. Nevertheless, verify tracks when the symptom occurs only with one edition, language, or external subtitle file. Stop adjusting audio backends or decoders if switching subtitle tracks alone changes the layout.

3.4 Treat yt-dlp and Streams as Source Tests

yt-dlp, network access, and the stream URL matter only if the overlap occurs with online media and the resulting video geometry or subtitle track differs from local playback. Test a legitimate local file with the same mpv interface settings. Then test the online URL with --no-config.

If both sources overlap identically, yt-dlp and the network are not the cause. If only one online subtitle track is affected, inspect its format and authored styles. Updating yt-dlp from its official distribution channel may fix extraction failures, but it is not a logical first fix for a working stream whose subtitles merely collide with the OSC.

Windowed and fullscreen video layouts showing how available space changes subtitle clearance.

4. Check Window Geometry, Display Behavior, and Screenshots

4.1 Compare Fullscreen and Windowed Layouts

Fullscreen and windowed playback can produce different usable margins. A wide video on a taller display may have space below the picture, while a tightly fitted window may not. Scaling, HiDPI behavior, video zoom, panscan, and window dimensions can also change where overlays appear relative to the image.

Test one scene in both modes using --no-config. If only windowed playback overlaps, enlarge the window and test again. Review geometry, autofit, video zoom, panscan, and border-related settings. If only fullscreen overlaps, inspect fullscreen-specific profiles and display scaling.

GPU drivers, Wayland, X11, Windows display scaling, and macOS window behavior deserve attention only when overlay coordinates, scaling, or clipping are visibly incorrect. If changing sub-pos predictably moves the subtitle and fixes the collision, a driver change is unnecessary.

4.2 Understand Screenshot Window Mode

mpv screenshot commands can capture different compositions. A video-oriented screenshot may exclude interface overlays, while window-mode capture is intended to capture the window's displayed result and can include the OSD, subtitles, and scaling. Therefore, subtitles overlapping an OSD only in a window screenshot may faithfully reflect what was visible at capture time rather than indicate a decoding problem.

Inspect the screenshot binding in input.conf. Determine whether it invokes screenshot behavior with video, subtitle, or window flags. If you need a clean frame, use a screenshot mode that excludes the interface. If you need documentation of the exact player window, window mode is appropriate, and the overlap must be corrected before capturing.

Success means the selected screenshot command produces the intended result consistently. Stop changing playback output drivers if live playback is correct and only the chosen screenshot composition includes the OSD.

4.3 Check Permissions and Paths Only When Evidence Points There

Permissions can matter if mpv cannot read mpv.conf, input.conf, an external subtitle file, or a script. A path problem may make a corrected setting appear ineffective because you edited the wrong configuration file.

Confirm the configuration location for your operating system and how your mpv build was packaged. Portable Windows builds can use a portable configuration directory, while packaged Linux or macOS installations may follow platform-specific locations. Do not create duplicate configurations in several possible locations. Use terminal output to confirm what mpv actually loads.

Audio backends have no normal role in subtitle placement. Media-file limitations matter chiefly when a subtitle track contains fixed image placement or authored ASS coordinates. Keep troubleshooting tied to observable evidence.

5. Use Logs and Runtime Information to Isolate the Cause

Run mpv from a terminal so warnings remain visible. Increase logging selectively and save it when the console scrolls too quickly:

mpv --log-file=mpv.log --msg-level=all=v "video.mkv"

Verbose logs can be large. Reproduce the overlap briefly, close mpv, and search the log for configuration loading, script initialization, subtitle format, selected tracks, OSC messages, and errors. Avoid publishing logs without checking them for local usernames, file paths, URLs, tokens, or other sensitive information.

The stats overlay can help identify the active video, audio, and subtitle tracks and show rendering information. It may itself cover part of the screen, so use it diagnostically and close it before judging the final layout.

Useful comparisons include:

  1. Normal playback with your full configuration.
  2. The same file with --no-config.
  3. The same file with --no-config --sub-pos=90.
  4. The same file with --no-config --osc=no.
  5. A plain SRT track compared with the affected ASS or image subtitle track.

Each comparison answers a specific question. Once one test isolates the cause, stop adding diagnostics and apply the smallest persistent change.

6. Run a Clean Temporary Test Before Editing Multiple Options

A controlled test prevents several settings from masking one another. Use the following sequence:

  1. Choose a short scene where a two-line subtitle appears near the bottom.
  2. Run the file with --no-config and reveal the OSC.
  3. Repeat with --sub-pos=90.
  4. Return to the default position and repeat with --osc=no.
  5. If it is an ASS track, compare it with a simple SRT subtitle.
  6. Test windowed and fullscreen playback at the same scene.
  7. Enable your normal configuration, then disable only likely overlay scripts.

Record which single change removes the collision. Add only that change to the correct configuration file or profile. For example, use a global sub-pos setting if all subtitles need clearance, but use a profile or binding if the issue occurs only in fullscreen, with one script, or while the OSC is forced visible.

Success is not merely that the overlap disappears once. The fix should survive seeking, pausing, fullscreen transitions, subtitle-track changes, and a fresh mpv launch. When those checks pass, stop modifying unrelated video output, hardware decoding, HDR, audio, or network options.

7. Quick Fix Checklist

  • Run mpv --no-config "video.mkv" to separate configuration problems from media behavior.
  • Try --sub-pos=95, then --sub-pos=90 if more clearance is needed.
  • Check subtitle and OSD margins for conflicting or duplicated values.
  • Test --osc=no to confirm whether the on-screen controller causes the collision.
  • Inspect ASS override and forced-margin settings when only ASS subtitles are affected.
  • Check osd-on-seek and custom seek bindings if overlap occurs only after seeking.
  • Compare fullscreen and windowed playback before changing permanent geometry settings.
  • Inspect profiles with --show-profile and look for later overrides.
  • Disable overlay and subtitle scripts selectively rather than removing your entire configuration.
  • Check screenshot command flags if overlap appears only in captured images.
  • Use a log file and verbose message level when mpv loads unexpected settings.
  • Stop once one reproducible, minimal change fixes every relevant test.

8. Frequently Asked Questions

8.1 What is the fastest mpv subtitles overlapping OSD fix?

First run the affected file with --no-config. If the collision remains, try --sub-pos=90. If it disappears only with --osc=no, adjust OSC visibility instead of permanently moving subtitles. These tests quickly distinguish a subtitle-position issue from a controller-layout issue.

8.2 Why does sub-pos work for SRT but not for ASS subtitles?

ASS subtitles can include authored alignment, margins, and explicit positions. Their behavior can also be influenced by mpv's ASS override and margin options. Compare the track with a plain SRT file, then review sub-ass-override and sub-ass-force-margins. Avoid overriding all styling unless you accept losing intentional typesetting.

8.3 Why does the overlap happen only in fullscreen?

A fullscreen profile, different aspect-ratio margins, display scaling, video zoom, or OSC layout may become active. Compare fullscreen and windowed playback under --no-config, then inspect fullscreen-specific profiles. If clean playback works in both modes, the cause is in your configuration rather than the operating system.

8.4 Is hardware decoding causing the subtitle overlap?

Usually not. Hardware decoding affects video decoding, while mpv renders subtitles and interface overlays separately. Investigate hardware decoding or the GPU driver only if overlays are clipped, scaled incorrectly, corrupted, or misplaced in a way that simple subtitle and OSC settings cannot explain.

8.5 Why is the OSD visible in my screenshot?

Your screenshot binding may be capturing the displayed window, including subtitles and interface overlays. Review the command and its flags in input.conf. Select video-oriented capture for a clean frame or window capture when you intentionally need the complete player view.

8.6 Should I delete my mpv configuration directory?

No. Use --no-config for a safe temporary test, then disable individual options, profiles, bindings, or scripts. Deleting the directory destroys useful customization and makes the actual cause harder to identify. Preserve the configuration until a specific setting has been proven responsible.


Citations

  1. Official mpv manual covering subtitle, OSD, screenshot, logging, profile, and playback options. (mpv Manual)
  2. Official documentation for configuring mpv through mpv.conf and command-line options. (mpv Configuration Files)
  3. Official documentation for mpv's built-in on-screen controller and its script options. (mpv On-Screen Controller)
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.