- Test subtitle seeking safely with clean mpv settings and a simple timed SRT.
- Repair Ctrl+arrow bindings, subtitle parsing, selector scripts, and FFmpeg path problems.
- Separate configuration conflicts from non-seekable streams and malformed subtitle files.
- Confirm the Symptom With a Minimal Clean mpv Command
- Check Commands, Bindings, Profiles, and Subtitle Settings
- Validate External Subtitles and the Subtitle Line Selector
- Rule Out Source, File, and Operating System Limitations
- Use mpv Diagnostics Without Guessing
- Run a Clean Temporary Test Before Permanent Changes
- Quick Fix Checklist
- Frequently Asked Questions
When subtitle seeking in mpv stops working, pressing Ctrl+Left or Ctrl+Right may do nothing, seek in the wrong direction, jump inconsistently, or follow keyframes instead of subtitle lines. The usual causes are a changed input binding, a subtitle track without usable timing information, an external subtitle parsing problem, a script or profile overriding the command, or limitations in a network stream. The fastest solution is to isolate subtitle seeking from unrelated playback features, test it with a simple local SRT file, and then restore custom settings one at a time.

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 by determining whether mpv itself can seek between subtitle events. Do not begin by changing hardware decoding, HDR, shaders, audio output, or GPU drivers. Those settings affect playback, but they normally do not control the subtitle timeline used by the subtitle-seek command.
1.1 Create a simple timed SRT test
Use a short local video and create a text file named test.srt in the same directory. Save the following content as UTF-8:
1
00:00:02,000 --> 00:00:04,000
First subtitle line
2
00:00:07,000 --> 00:00:09,000
Second subtitle line
3
00:00:13,000 --> 00:00:15,000
Third subtitle lineThe timestamps are essential. Subtitle seeking operates on timed subtitle events, not merely visible lines of text. A transcript, malformed SRT, or subtitle format that mpv cannot parse into timed events will not provide reliable targets.
1.2 Start mpv without loading the normal configuration
Open a terminal in the media directory and run a clean test. Replace the example filenames with the actual paths:
mpv --no-config --sub-file=test.srt video.mp4On Windows, use mpv.exe if necessary. Quote paths containing spaces:
mpv.exe --no-config --sub-file="C:\Media Files\test.srt" "C:\Media Files\video.mp4"On Linux or macOS, a typical quoted command is:
mpv --no-config --sub-file="/path/to/test.srt" "/path/to/video.mp4"Once playback starts, move past the first subtitle and test Ctrl+Left and Ctrl+Right. Depending on the default bindings supplied by the installed mpv build, these combinations should invoke backward or forward subtitle seeking. If they do not, test the command directly through a temporary input file as described below.
Success means playback moves to the start time of the preceding or following subtitle event. If the clean local test works, stop changing core playback options. mpv and the subtitle-seek command are functional, so the problem is in the normal configuration, selected subtitle track, script environment, or original media source.
2. Check Commands, Bindings, Profiles, and Subtitle Settings
2.1 Verify the Ctrl+arrow subtitle seek bindings
mpv key behavior is controlled by input commands. A custom input.conf, script, frontend, or build-specific default can replace Ctrl+Left and Ctrl+Right. Add explicit bindings to a temporary file named test-input.conf:
Ctrl+LEFT no-osd sub-seek -1
Ctrl+RIGHT no-osd sub-seek 1Run mpv with that file while keeping the rest of the configuration disabled:
mpv --no-config --input-conf=test-input.conf --sub-file=test.srt video.mp4If the terminal or window manager intercepts a key combination, test uncomplicated keys temporarily:
F7 no-osd sub-seek -1
F8 no-osd sub-seek 1Success means F7 and F8 move between the timed SRT entries. At that point, the subtitle command works and the Ctrl+arrow combination is being overridden or intercepted. Keep the working binding or find the conflicting assignment instead of modifying unrelated video settings.
2.2 Inspect the active input.conf
Search your normal input.conf for Ctrl+LEFT, Ctrl+RIGHT, and sub-seek. A later binding for the same key can supersede an earlier one. Also check whether the key name uses the syntax mpv expects. Avoid assuming that a binding copied from a desktop environment, media player, or old configuration uses mpv command syntax.
Scripts can register their own key bindings as well. Temporarily disable scripts without deleting them by running --no-config, or test a minimal configuration that loads only the subtitle bindings. If the clean command succeeds but normal playback fails, re-enable scripts individually. Stop when the conflict reappears.
2.3 Check profiles and conditional settings
A profile can make the issue appear limited to HDR files, online URLs, playlists, high-resolution media, or particular file extensions. The apparent connection may be indirect. For example, a profile may load a script, choose a different subtitle track, or redefine input behavior when a certain protocol is used.
Use the command-line option --show-profile=PROFILE_NAME to print the contents of a named profile. Review any profile applied to the failing media and look for script options, subtitle selection, input configuration, or commands that alter tracks. Hardware decoding and output-driver options are not normal causes of subtitle-event seeking failure, so change them only if playback itself is unstable.
2.4 Confirm that a timed subtitle track is selected
Press the key bound to mpv's track list or use the stats overlay to confirm that a subtitle track exists and is selected. You can also cycle subtitle tracks during playback. A file may contain several subtitle streams, including forced subtitles, image-based subtitles, commentary, or an empty track.
The sub-seek command needs subtitle event timing from the active track. Text subtitles such as correctly formed SRT, ASS, or WebVTT commonly provide suitable timing. Image-based subtitle formats also carry timestamps, but behavior can depend on demuxing and available event data. If one track fails and another works, the issue is track-specific rather than a global mpv player issue.
Success means the track list shows the intended subtitle stream, its text appears at expected times, and subtitle seeking lands on those times. Once that happens, do not keep adjusting audio or video track settings.
2.5 Check subtitle delay and timing offsets
A subtitle delay shifts when events are displayed. If a large positive or negative delay was set accidentally, subtitle seeking can seem incorrect even though mpv is following the adjusted timeline. Reset subtitle delay to zero for the test. Also remove temporary speed changes or external synchronization scripts that alter subtitle timing.
If subtitles visibly appear at the wrong times in multiple players, the subtitle file itself may be out of sync. Correcting the timestamps is different from repairing the key binding. The command cannot infer where dialogue should occur when the source timing is wrong.
3. Validate External Subtitles and the Subtitle Line Selector
3.1 Confirm that the external subtitle file is parsed
Automatic subtitle loading can fail because the subtitle filename does not match the video, the file is in another directory, or the configured automatic-loading policy is restrictive. Bypass discovery by specifying the file directly with --sub-file.
Watch the terminal output for errors about opening, decoding, character encoding, or parsing the subtitle file. Confirm that the path points to a regular readable file. A successful parse should create a subtitle track that appears in the track list.
Malformed SRT files often contain invalid timestamp separators, missing sequence structure, inconsistent line endings, or text saved in an unsuitable encoding. Compare the failing file with the simple SRT test. If the test file works, repair or convert the original subtitle using a reputable subtitle editor rather than installing a codec pack. Subtitle parsing is generally handled by mpv and its underlying libraries, not by random system-wide codec bundles.
3.2 Understand the g-l subtitle line selector
The g-l sequence is associated with mpv's subtitle line selection functionality in configurations or releases that provide the relevant built-in script binding. It is not equivalent to pressing Ctrl+Right once. Instead, the selector presents subtitle lines so a particular event can be chosen.
This feature requires the selector script and its expected binding to be available. Exact bundled scripts and default bindings can vary between mpv packages, frontends, and configurations. If g-l does nothing, inspect the active input bindings and terminal output rather than assuming subtitle seeking itself is broken.
Subtitle line selection may require the ffmpeg executable to be available through the system PATH because the script can use it to process subtitle data. This is separate from mpv being built with FFmpeg libraries. A working mpv executable does not necessarily mean the standalone ffmpeg command can be launched by a script.
Test the external tool in the same shell used to start mpv:
ffmpeg -versionOn Windows, also try:
where ffmpegOn Linux or macOS, use:
command -v ffmpegIf the command is unavailable, install FFmpeg through the operating system's trusted package manager or an official, reputable distribution method. Restart mpv after updating PATH. Do not download an unknown binary from a random file host.
Success means the subtitle selector opens, displays parsed subtitle lines, and seeks to the selected event. If Ctrl+arrow seeking already works but the selector does not, troubleshoot the selector script and FFmpeg path only. Do not treat it as a decoder, GPU, or audio failure.

4. Rule Out Source, File, and Operating System Limitations
4.1 Test local media before online URLs
Network streams and online URLs can be non-seekable, partially seekable, or limited to buffered ranges. Even when mpv knows the next subtitle timestamp, the underlying stream may not permit an accurate jump. Live streams are especially likely to restrict backward or forward seeking.
Test the same command with a local video and the simple SRT. If local seeking succeeds, the binding is valid. The original URL, protocol, server, or stream timeline is the likely limitation.
For sites handled through yt-dlp, subtitle availability and seeking also depend on the extractor, selected media format, and whether the content is live. Verify that the trusted yt-dlp executable is available and inspect terminal output for extractor errors. Updating yt-dlp can resolve site changes, but it should be obtained through its official project or a trusted package manager.
4.2 Check file permissions and shell quoting
mpv must be able to read external subtitle files, scripts, configuration files, and any helper executable used by the selector. On Unix-like systems, inspect file ownership and read permissions. On macOS, privacy controls may restrict terminal applications from protected folders. On Windows, a file downloaded from another computer may be blocked, or security software may prevent a helper process from starting.
Shell quoting is particularly important when paths contain spaces, brackets, ampersands, or other special characters. Pass the full path as one quoted argument. If a short path such as C:\test\test.srt works but the original path does not, the problem is path handling or access rather than subtitle timing.
4.3 Separate playback instability from subtitle seeking
A GPU driver, display server, hardware decoder, HDR pipeline, audio backend, or video output issue can freeze playback or prevent mpv from responding to input. In that situation, subtitle seeking is only one visible symptom. If video continues playing and other keys work, those components are unlikely to be the cause.
If the whole player freezes on a high-bitrate file, rerun the same subtitle test with a small local video and default output settings. A successful small-file test indicates a broader performance or decoding problem, not a defective sub-seek command. Screenshot settings are similarly unrelated unless a custom key binding or script assigns the same keys to screenshot commands.
5. Use mpv Diagnostics Without Guessing
5.1 Capture a focused log
Run the failing file from a terminal so messages remain visible. To save diagnostic output, use:
mpv --log-file=mpv-sub-seek.log --msg-level=all=v video.mp4For a cleaner comparison, add the test subtitle explicitly. Review the log for the loaded subtitle track, input bindings, script errors, failed external commands, inaccessible paths, and demuxer or seek warnings. Verbose logs can contain local paths and URLs, so remove private information before sharing them.
5.2 Use the stats overlay and track list
The stats overlay helps confirm whether playback time changes when the command is pressed. The track list confirms which subtitle, audio, and video streams are active. If playback time jumps but the expected subtitle does not appear, investigate subtitle delay, the selected track, and event timing. If playback time does not change, investigate the key binding, script interception, or stream seekability.
5.3 Compare configured and clean runs
Run the same local file twice:
- With
--no-config, an explicit SRT, and a temporary input file. - With the normal configuration, scripts, profiles, and automatic subtitle loading.
Change one category at a time between runs. First restore mpv.conf, then input.conf, then scripts, and finally optional profiles. This preserves your setup and identifies the specific trigger without deleting the entire configuration directory.
6. Run a Clean Temporary Test Before Permanent Changes
A reliable clean test has four controlled elements: a local seekable video, a simple valid SRT, an explicit subtitle path, and explicit temporary bindings. It excludes network access, yt-dlp, complex ASS styling, custom shaders, scripts, profiles, and automatic subtitle discovery.
Use this sequence:
- Create the three-event SRT shown earlier.
- Create a temporary input file with F7 and F8 mapped to
sub-seek -1andsub-seek 1. - Start mpv with
--no-config,--input-conf, and--sub-file. - Confirm that the subtitle track is selected.
- Press F7 and F8 while watching the playback time.
- Restore one configuration component at a time only after the test succeeds.
Stop changing settings as soon as the test identifies the boundary. If clean mode works and adding input.conf causes failure, focus on that file. If every local test works but a live URL fails, accept that the stream may not support the required seek. If the simple SRT works but the original subtitle does not, repair the subtitle file.
7. Quick Fix Checklist
- Test a local video with a simple, correctly timed SRT file.
- Run mpv with
--no-configto bypass profiles and scripts safely. - Bind temporary keys directly to
sub-seek -1andsub-seek 1. - Check
input.conffor duplicate Ctrl+Left or Ctrl+Right assignments. - Confirm the intended subtitle track is selected and displays normally.
- Reset subtitle delay before judging seek accuracy.
- Load external subtitles explicitly with
--sub-file. - Check terminal output for subtitle parsing and script errors.
- For g-l line selection, verify the selector binding and FFmpeg PATH.
- Test local media before blaming mpv for a non-seekable stream.
- Use
--log-fileand targeted message levels instead of random changes. - Restore configuration components one at a time after clean mode succeeds.
8. Frequently Asked Questions
8.1 Why do Ctrl+Left and Ctrl+Right seek video instead of subtitles?
The keys are probably assigned to another seek command by the active input.conf, a script, a frontend, or the desktop environment. Create explicit temporary bindings to sub-seek -1 and sub-seek 1. If alternative keys work, resolve the Ctrl+arrow conflict rather than changing subtitle decoders.
8.2 Why does subtitle seeking work with SRT but not my original subtitles?
The original file may be malformed, incorrectly encoded, missing usable timestamps, or parsed as a different kind of track. Load it explicitly, inspect terminal errors, and compare its timing structure with a valid SRT. The successful SRT test proves the command and basic mpv installation are working.
8.3 Does hardware decoding affect subtitle seeking?
Normally, no. Hardware decoding, HDR settings, shaders, and video output affect rendering and decoding rather than the timed subtitle-event list. They matter only when playback freezes, input becomes unresponsive, or the entire seek operation fails at the media level.
8.4 Why does g-l do nothing?
The subtitle line selector binding or its supporting script may not be present, may have been overridden, or may be reporting an error. The selector may also require the standalone FFmpeg executable to be discoverable through PATH. Check the active binding, terminal output, and ffmpeg -version.
8.5 Can subtitle seeking work on live streams?
Only when the source exposes a seekable timeline or suitable buffered range. Many live streams do not permit arbitrary backward or forward jumps. If the same binding works with local media, the stream limitation is the likely cause.
8.6 Should I delete my mpv configuration folder?
No. Use --no-config for a reversible clean test, then restore configuration files, profiles, and scripts one at a time. This protects working customizations and identifies the exact conflict much faster than deleting everything.