mpv Subtitles Too Low Or High: How to Fix It

When mpv subtitles appear too low, too high, cut off, or detached from the picture, the cause is usually a subtitle-position option, an accidental keyboard adjustment, an ASS subtitle margin, or a mismatch between the visible video area and the player window. Cropping, panscan, fullscreen behavior, profiles, scripts, and per-file settings can also change the result. The safest approach is to reproduce the problem without your normal configuration, identify whether it affects every subtitle track or only one file, and then change one relevant setting at a time.

Video player showing correctly placed subtitles beside examples positioned too high and too low.

1. Confirm the Symptom With a Minimal Clean mpv Command

Before editing mpv.conf, establish whether the placement problem comes from mpv's defaults or your custom setup. A temporary clean test disables configuration files, scripts, profiles, and custom input bindings without deleting anything.

Open a terminal, Command Prompt, or PowerShell window and run mpv with --no-config followed by the media path. Quote paths containing spaces.

  • Windows: mpv.exe --no-config "C:\Videos\sample.mkv"
  • Linux: mpv --no-config "/home/user/Videos/sample.mkv"
  • macOS: mpv --no-config "/Users/user/Movies/sample.mkv"

If the subtitle file is external, load it explicitly to remove subtitle discovery from the test:

mpv --no-config --sub-file="sample.ass" "sample.mkv"

Success means the subtitles return to a sensible default position and remain fully visible. If that happens, stop investigating GPU drivers, hardware decoding, HDR, audio, networking, or the media itself. The cause is almost certainly in your configuration, input bindings, profile, script, or saved state.

If the problem remains under --no-config, test another subtitle track or a simple SRT file. An issue affecting only one ASS or SSA track usually comes from that track's authored styles, margins, positioning tags, or canvas assumptions. An issue affecting all tracks is more likely related to sub-pos, video geometry, cropping, or the window mode.

1.1 Compare Internal and External Subtitles

Use mpv's track list to confirm which subtitle track is selected. Press i for the information overlay, or use the console and terminal output if available. You can also cycle subtitle tracks with the configured subtitle-track binding.

Test an embedded subtitle and a known-good external SRT against the same video. If only the embedded ASS track is misplaced, do not compensate globally with an extreme sub-pos value. That could fix one file while making every other subtitle track wrong.

1.2 Check Whether the Position Changes During Playback

Watch whether the subtitles begin in the correct place and move only after you press keys. If so, an input binding is likely changing subtitle position. If placement changes at a chapter boundary or with a different file, inspect profiles, scripts, and file-specific options.

2. Fix Subtitle Position With r, R, and sub-pos

mpv provides direct subtitle-position controls. In the standard input configuration, lowercase r and uppercase R adjust subtitle position in opposite directions. Because uppercase input normally requires Shift, an accidental key press can move subtitles without an obvious warning.

While the affected subtitle is visible, press r or R a few times and observe the movement. Use the opposite key if the text moves the wrong way. Make small adjustments rather than holding the key down.

Success means the complete subtitle line sits inside the visible picture or intended bottom margin without touching the window edge. Once the position is correct, stop pressing the keys. If the setting becomes wrong again after restarting mpv, inspect your persistent configuration instead of repeatedly correcting it during playback.

2.1 Set a Predictable sub-pos Value

The sub-pos option controls the vertical subtitle position as a percentage of the screen area. The usual default is near the bottom of the display area. Lower values move subtitles upward, while higher values move them downward. Values can extend beyond the ordinary range, so an accidental extreme value can place text partly or entirely off-screen.

Test a temporary value from the command line:

mpv --no-config --sub-pos=100 "sample.mkv"

If you want the subtitles higher, try a modestly lower value, such as:

mpv --no-config --sub-pos=90 "sample.mkv"

When you find a suitable value, place it in mpv.conf without the leading dashes:

sub-pos=90

Do not add several subtitle-position options at once. First verify that sub-pos alone produces the intended result. Success is a stable position across several ordinary videos in both windowed and fullscreen modes.

2.2 Find Conflicting Input Bindings

Open your input.conf and search for sub-pos. A custom binding may set, add to, or multiply the value. Scripts can also define bindings that override or shadow defaults.

Temporarily comment out suspicious bindings by placing # at the beginning of the line. Restart mpv and test again. Do not remove the entire configuration directory. Isolating one line is safer and preserves unrelated settings for shaders, IPC, playlists, screenshots, and hardware decoding.

3. Check ASS Margins and Authored Subtitle Placement

ASS and SSA subtitles can contain detailed styling, including margins, alignment, coordinates, movement, and explicit positioning tags. These instructions can make one track appear unusually high or low even when mpv's global subtitle position is normal.

Compare the affected ASS track with an SRT file. If SRT placement is correct but ASS placement is not, inspect ASS-specific behavior before changing global options. Dialogue events may have nonzero vertical margins, while styles can specify alignment near the top, middle, or bottom. Explicit tags such as positioning or movement instructions can override ordinary placement for individual lines.

3.1 Distinguish Intended Styling From a Player Problem

Signs that the ASS file is controlling placement include signs translated next to objects, multiple lines appearing in different screen regions, karaoke effects, or only certain dialogue events being displaced. Those may be intentional typesetting rather than an mpv player issue.

If every dialogue line in the track is clipped, the script may have been authored for a different video canvas or visible image area. Test the same subtitle with the uncropped source if available. Also compare the subtitle in a clean mpv launch before editing the file.

3.2 Use Margin Overrides Carefully

mpv includes subtitle margin and ASS-related options, but their effect depends on subtitle format, styling, and whether authored settings are being honored. Options that force ASS subtitles into margins can help when letterbox space is available, but they can also disrupt carefully positioned signs and effects.

Use temporary command-line tests first. If an ASS override improves dialogue but breaks signs, keep the original rendering and address the specific subtitle file instead. The correct stopping point is when ordinary dialogue is readable and intended typesetting remains aligned with the picture.

4. Check Video Crop, Panscan, Aspect, and Fullscreen Behavior

Subtitles are positioned relative to a rendering area. If the video is cropped, zoomed, panned, or expanded beyond the window, text can appear too close to an edge or outside the visible image. This is especially common when users configure cinematic cropping, automatic aspect scripts, or fullscreen panscan.

Search mpv.conf, profiles, and input.conf for options involving video-crop, panscan, zoom, pan, aspect, autofit, or geometry. Then test the source without those options:

mpv --no-config --sub-pos=100 "sample.mkv"

If the clean result works, restore your video-layout settings individually. Test crop first, then panscan or zoom, and finally subtitle positioning. This order reveals whether subtitles are wrong or whether part of the rendering area has simply been pushed off-screen.

4.1 Compare Windowed and Fullscreen Playback

Press f to switch between windowed and fullscreen playback. Check the same subtitle line in both modes.

  • If only fullscreen is wrong, inspect panscan, display scaling, fullscreen geometry, and fullscreen-specific profiles.
  • If only windowed mode is wrong, enlarge the window and review autofit or geometry settings.
  • If both modes are wrong by the same amount, focus on sub-pos, ASS styling, or bindings.
  • If clipping changes with window size, investigate video scaling and visible-area calculations.

Success means subtitles remain visible and reasonably placed when switching modes. Once that is true, avoid compensating with separate extreme values unless you intentionally want distinct windowed and fullscreen layouts.

4.2 Separate OSD Margins From Subtitle Margins

mpv's on-screen display and subtitles are related visually but are not the same layer. Options such as osd-margin-x and osd-margin-y affect OSD elements, including messages and some interface text. They are not a reliable fix for dialogue subtitle placement.

If volume or seek messages are misplaced but subtitles are correct, adjust OSD margins. If dialogue subtitles are misplaced but OSD messages are correct, use subtitle options. Treating them separately prevents a fix for one overlay from creating a new problem in another.

Layered configuration sources being tested one at a time to identify a subtitle-position override.

5. Inspect Config Files, Profiles, Scripts, and File-Specific Settings

A clean launch that fixes the problem confirms that customization is involved. Re-enable your setup in controlled stages rather than changing everything at once.

  1. Run with --no-config and confirm correct placement.
  2. Load your main mpv.conf without optional scripts.
  3. Restore input.conf and test the r and R keys.
  4. Re-enable profiles one at a time.
  5. Restore scripts and script options individually.
  6. Check file-specific configuration or watch-later behavior last.

Search configuration files for sub-pos, subtitle margins, ASS overrides, crop, panscan, zoom, geometry, and profile conditions. A profile activated for HDR, fullscreen, a protocol, or a video size can indirectly change the visible region even when it contains no obvious subtitle option.

5.1 Use --show-profile to Inspect Profiles

If you use named profiles, ask mpv to display the options associated with a profile:

mpv --show-profile=profile-name

Review the output for subtitle and video-layout options. Also inspect conditional profiles in mpv.conf. A profile intended for HDR video, high-resolution files, online URLs, or a particular display may apply crop, scaling, or fullscreen settings that alter apparent subtitle placement.

5.2 Test Scripts Without Deleting Them

Start with --no-config, then load only the script you want to test if your setup supports doing so. Alternatively, move one suspect script temporarily to a separate backup location while mpv is closed. Avoid downloading replacement scripts or binaries from untrusted sources.

Subtitle automation, aspect-ratio detection, cropping, autoloading, and UI scripts are the most relevant categories. Shader scripts, IPC integrations, screenshot scripts, and yt-dlp settings normally do not position subtitles, but they can coincide with profiles or bindings that do.

6. Rule Out Operating System and Media-Pipeline Factors

GPU drivers, hardware decoding, HDR output, display servers, audio backends, yt-dlp, network access, and screenshot settings are not the first suspects for a simple vertical subtitle offset. Investigate them only when the symptom indicates a broader rendering problem.

Temporarily test software decoding with --hwdec=no if subtitles are corrupted, disappear, or are clipped together with the video. If only subtitle position changes while the picture remains geometrically correct, hardware decoding is unlikely to be responsible.

On Linux, compare display-server sessions only if window sizing, DPI scaling, or fullscreen geometry is also wrong. On Windows and macOS, check display scaling when the mpv window or OSD is incorrectly sized, not merely because one ASS track has unusual margins.

6.1 Online URLs, yt-dlp, and Network Streams

For an online URL or network stream, determine whether mpv receives a real subtitle track. Use the track list and compare it with a local file. yt-dlp may help mpv discover media and subtitle resources, but it does not normally control the rendered vertical position.

If a downloaded or streamed subtitle alone is misplaced, save or test an equivalent local subtitle when permitted. If the same track remains wrong locally, the issue is in its formatting or mpv's subtitle settings rather than network access. Do not troubleshoot DNS, bandwidth, or the audio backend when subtitles load reliably and are merely too high or low.

6.2 Screenshots and the Visible Playback Result

Clarify whether subtitles are wrong during playback, only in screenshots, or both. Screenshot options can determine whether subtitles and OSD elements are included, but they do not generally fix live subtitle position.

If playback looks correct but screenshots do not, inspect screenshot inclusion settings and compare a screenshot taken with subtitles against the actual window. If both show identical clipping, return to subtitle position, ASS margins, and crop settings.

7. Use Logs and Runtime Information to Find the Override

Run mpv from a terminal so startup messages remain visible. A practical diagnostic command is:

mpv --no-config --msg-level=all=v --log-file=mpv-subtitles.log "sample.mkv"

This creates a verbose log for the clean test. You can then repeat without --no-config and compare behavior. Avoid publishing logs without reviewing them because paths, URLs, usernames, and network details may be present.

The stats overlay and track list can confirm the selected subtitle track, video dimensions, scaling behavior, and active playback state. They are more useful here than audio diagnostics. If the selected track changes unexpectedly, fix track selection before evaluating placement.

Success means you can connect the symptom to a specific option, profile, binding, script, or subtitle file. At that point, stop broad troubleshooting and modify only that source.

8. Run a Clean Temporary Test Before Permanent Changes

Use this controlled sequence to avoid masking the cause:

  1. Choose one local video with a known-good SRT subtitle.
  2. Run it with --no-config.
  3. Confirm placement in windowed and fullscreen modes.
  4. Test --sub-pos=100, then a modest lower value if needed.
  5. Repeat with the original subtitle track.
  6. Restore your main configuration.
  7. Reintroduce profiles, bindings, and scripts one category at a time.

Do not combine a new sub-pos, ASS override, crop adjustment, and fullscreen profile in the same test. If the result improves, you will not know which change fixed it. One-variable testing is faster overall and makes the solution reproducible.

9. Quick Fix Checklist

  • Press r and R briefly to reverse an accidental subtitle-position change.
  • Test the file with mpv --no-config.
  • Try --sub-pos=100, then reduce it slightly to move subtitles upward.
  • Compare the affected ASS track with a simple SRT subtitle.
  • Search mpv.conf and input.conf for sub-pos and subtitle-margin settings.
  • Disable crop, panscan, zoom, and aspect scripts temporarily.
  • Compare windowed and fullscreen playback.
  • Keep OSD margin options separate from subtitle placement options.
  • Inspect active profiles with --show-profile.
  • Use a log only after the clean test narrows the problem.

10. Frequently Asked Questions

10.1 How do I move subtitles up in mpv?

Use the standard r or R bindings and observe which direction the subtitle moves. For a repeatable setting, test a lower sub-pos value from the command line and then add the confirmed value to mpv.conf.

10.2 Why are mpv subtitles cut off at the bottom?

The position may be too low, the video may be zoomed or cropped, or an ASS track may contain large margins or explicit placement. Test --no-config --sub-pos=100, compare an SRT track, and disable panscan or crop before changing unrelated playback options.

10.3 Why does the problem happen only in fullscreen?

A fullscreen profile, panscan value, display-scaling issue, or geometry change may alter the visible rendering area. Compare the same frame in windowed mode and inspect fullscreen-specific profile options.

10.4 Can hardware decoding or HDR move subtitles?

Not usually. Hardware decoding and HDR primarily affect video decoding and presentation. Test --hwdec=no only when video geometry, clipping, corruption, or overlay rendering also looks wrong. A consistent vertical offset is more likely a subtitle or layout setting.

10.5 Why is only one ASS subtitle track positioned incorrectly?

ASS subtitles can contain authored margins, alignment, coordinates, and positioning tags. If SRT subtitles and other ASS tracks work, avoid changing global placement for one track. Confirm the file's intended styling and canvas first.

10.6 When should I stop troubleshooting?

Stop when subtitles are fully visible, stable across seeking, and correctly placed in the playback modes you use. If a clean test works and one restored option recreates the problem, you have found the cause. There is no benefit in changing GPU, audio, network, yt-dlp, or screenshot settings after the relevant subtitle or video-layout option is identified.


Citations

  1. Official mpv manual covering subtitle, video, OSD, logging, profile, and configuration options. (mpv Manual)
  2. Official mpv project repository with source code, documentation, and configuration examples. (mpv on GitHub)
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.