- Test mpv with no configuration before changing permanent settings.
- Use positive delay for early audio and negative delay for late audio.
- Check Bluetooth, dropped frames, hardware decoding, scripts, tracks, and stream timestamps.
- Confirm the Symptom With a Minimal Clean mpv Command
- Correct Audio Delay Without Changing Subtitle Timing
- Inspect Configurations, Bindings, Profiles, and Scripts
- Check Hardware Decoding, Output Drivers, and the Operating System
- Separate Local File Problems From URL and Stream Problems
- Use Logs and Runtime Information to Find the Cause
- Run a Clean Temporary Test Before Permanent Changes
- Quick Fix Checklist
- Frequently Asked Questions
When sound does not match the picture in mpv, the problem usually falls into one of a few categories: an accidental audio-delay setting, a custom input binding or profile, Bluetooth output latency, unstable hardware decoding, dropped video frames, a damaged or poorly timestamped media file, or a network stream that is arriving unevenly. The fastest mpv audio delay fix is not to change many options at once. First confirm whether the offset is constant or gradually increasing, test a local file with a clean mpv configuration, and then investigate only the layer responsible for the failure.

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
Begin by distinguishing audio and video desynchronization from subtitle desynchronization. Audio delay affects voices, music, sound effects, and every audible track. Subtitle delay affects only when subtitle lines appear. If a character's lips move before or after you hear the voice, investigate audio and video timing. If the voice matches the lips but the subtitle appears early or late, use subtitle-delay controls instead.
1.1 Determine Whether the Offset Is Constant or Growing
Play a scene with visible speech, a door closing, a hand clap, or another sharp visual event. Watch it near the beginning and again several minutes later.
- Constant offset: Sound remains early or late by approximately the same amount. A delay adjustment may be appropriate.
- Growing offset: Playback begins synchronized but drifts over time. Suspect timestamps, dropped frames, decoder trouble, playback-speed changes, or a problematic stream.
- Intermittent offset: Sync changes after seeking, buffering, switching tracks, or entering fullscreen. Suspect the media source, output backend, hardware decoding, or scripts.
Do not compensate for growing drift with a large permanent delay. A fixed delay moves the audio timeline but cannot correct two timelines progressing at different rates.
1.2 Test a Local File Without Your Configuration
Use a short, known-good local file before testing an online URL, playlist, network share, HDR title, or unusually high-bitrate video. Open a terminal and run:
mpv --no-config "path/to/test-video.mp4"
On Windows, quote paths containing spaces. For example:
mpv.exe --no-config "C:\Videos\test video.mp4"
On Linux or macOS, use the correct case-sensitive path and quote spaces:
mpv --no-config "/home/user/Videos/test video.mp4"
Success means the sound remains aligned with visible events during normal playback and after a seek. If the clean local test works, stop changing system drivers or installing software. The likely cause is in your mpv configuration, scripts, profiles, bindings, or original media source.
2. Correct Audio Delay Without Changing Subtitle Timing
2.1 Use Ctrl Plus and Ctrl Minus for a Constant Offset
mpv's default input bindings use Ctrl plus and Ctrl minus to adjust audio delay in small increments. Depending on the keyboard layout, Ctrl plus may require Ctrl and Shift with the key that produces a plus sign. Watch mpv's on-screen display while pressing the shortcut so you can see the resulting value.
If audio is heard before the corresponding picture, increase audio delay so the sound plays later. If audio is heard after the picture, reduce the delay, potentially into negative values, so sound is presented earlier. Make small adjustments while replaying the same clear synchronization point.
Success means one small, stable value aligns the whole file. Once synchronized, stop adjusting it. If the required correction keeps changing, reset the delay and investigate drift instead.
2.2 Set Audio Delay on the Command Line
The --audio-delay option accepts a value in seconds. Positive values delay the audio. Negative values move the audio presentation earlier relative to the video.
mpv --audio-delay=0.200 "video.mkv"delays audio by 200 milliseconds.mpv --audio-delay=-0.150 "video.mkv"advances audio by 150 milliseconds.mpv --audio-delay=0 "video.mkv"explicitly tests with no configured offset.
Use this option for a file with a known constant offset, not as a universal repair for every video. If only one file needs correction, put the option in a file-specific launch command rather than the global configuration.
2.3 Do Not Confuse Audio Delay With Subtitle Delay
Subtitle timing is controlled separately, including through mpv's subtitle-delay property and related bindings. Changing subtitle delay does not move the audio, and changing audio delay does not repair an incorrectly timed subtitle file. Confirm the audible dialogue itself against lip movement before touching either setting.
3. Inspect Configurations, Bindings, Profiles, and Scripts
If --no-config fixes the issue, reintroduce customizations selectively. Do not delete the entire configuration folder. Preserve it, test individual files, and make reversible edits.
3.1 Check mpv.conf and input.conf
Open mpv.conf and search for options related to timing, synchronization, speed, audio, video synchronization, interpolation, display synchronization, output drivers, and hardware decoding. In particular, look for an existing audio-delay line. Comment out the suspicious line temporarily or launch mpv with an explicit neutral value.
Then inspect input.conf. A custom binding can change the audio-delay property without you realizing it, especially if the same key is assigned to several commands. Search for audio-delay, add audio-delay, or commands that load profiles and scripts.
Success means the file plays in sync with normal configuration after the offending line or binding is disabled. Stop there and retain the rest of your working setup.
3.2 Check Conditional Profiles
A profile may activate only for fullscreen playback, a particular protocol, HDR content, a file extension, or a specific display. This can explain why ordinary local files work while one category does not. Run mpv with --show-profile=PROFILE_NAME to print the options contained in a named profile. You can also inspect profile sections directly in mpv.conf.
Test the same media with and without the suspected profile. If synchronization fails only when it is active, disable options one at a time. Prioritize playback speed, video synchronization, interpolation, audio and video output, filters, shaders, and hardware-decoding options.
3.3 Temporarily Disable Scripts and Complex Shaders
User scripts can react to file loading, track changes, seeks, or playback properties. Heavy shaders can overload the GPU and cause visible frame loss, which may look like an audio-delay problem even when the audio clock is stable.
Use --no-config as the broad isolation test. For finer testing, temporarily move one suspected script out of the scripts directory or disable the configuration line that invokes it. Similarly, test without demanding shader chains. Do not remove everything permanently before identifying the cause.
Success means the same scene plays smoothly and stays synchronized after one component is disabled. At that point, update, reconfigure, or remove only that component.
3.4 Verify the Selected Tracks
Some containers include multiple audio tracks, such as an original mix, commentary, alternate language, or externally supplied audio. A mismatched external track may have different timing or originate from another cut of the video. Display mpv's track list through its on-screen controls or terminal output and confirm that the intended video and audio tracks are selected.
If an external audio file is loaded automatically, test the embedded track. Success means the selected audio track matches the exact video edition and remains aligned after seeking.

4. Check Hardware Decoding, Output Drivers, and the Operating System
4.1 Test Hardware Decoding
Hardware decoding can improve performance, especially for high-resolution, HDR, or high-bitrate media. However, a driver, decoder, GPU, display-server, or format-specific problem can produce dropped frames, stutter, or broken timing.
Compare these temporary tests:
mpv --no-config --hwdec=no "video.mkv"mpv --no-config --hwdec=auto "video.mkv"
Watch CPU use and playback smoothness. Software decoding may overload a slower processor, while hardware decoding may expose a GPU or driver issue. A useful result is not simply that the command opens. Success means frames render smoothly, audio remains aligned, and seeking does not create a new offset.
If one mode works consistently, use it for the affected media while investigating driver updates or format support. Obtain GPU drivers through the operating system, computer manufacturer, or GPU vendor. Avoid random codec packs and unofficial binary download sites.
4.2 Look for Dropped Frames and Rendering Overload
Open mpv's stats overlay, commonly available with the i key under default bindings. Inspect dropped frames, mistimed frames, display timing, decoder performance, and A/V synchronization information while the symptom occurs.
A few startup irregularities may not indicate a persistent fault. A counter that rises continuously during playback is more meaningful. Test without interpolation, advanced scaling, debanding, user shaders, or other expensive video processing. Also check whether the display refresh rate is suitable for the content.
Success means frame-drop counters stop climbing and the apparent sync error disappears. In that case, leave the delay at zero because the underlying problem was video delivery, not a fixed audio offset.
4.3 Account for Bluetooth Latency
Bluetooth headphones and speakers add output latency. The exact delay varies by device, codec, operating system, and connection state. Test the same scene with wired headphones or built-in speakers. If only Bluetooth output is late, mpv may be playing correctly while the wireless audio path introduces the lag.
A negative --audio-delay value can compensate during that listening session, but it may be wrong when you switch back to speakers. Consider a dedicated profile or launch command for the Bluetooth device instead of a global setting.
Success means Bluetooth playback aligns with the picture using a repeatable offset, while wired output remains correct without that override.
4.4 Compare Audio Backends and Display Environments
On Linux, behavior may differ between PipeWire, PulseAudio compatibility, ALSA, X11, and Wayland environments. On Windows and macOS, device-exclusive behavior, aggregate devices, sample-rate conversion, or a recently changed output device can matter. First confirm that mpv is using the expected device and that another application is not forcing an unusual routing arrangement.
Test the default backend before forcing a specific audio or video output driver. If you already force one in mpv.conf, remove that override temporarily. Success means default automatic selection restores stable playback. Keep explicit driver settings only when they solve a demonstrated compatibility problem.
5. Separate Local File Problems From URL and Stream Problems
5.1 Test yt-dlp and Online URLs Separately
For supported online sites, mpv may rely on yt-dlp to resolve media URLs and formats. If local files work but online playback does not, confirm that yt-dlp is available through the expected executable path and can access the URL. Use an official package source or the project's documented release channels rather than an unknown download site.
Terminal output may reveal that separate audio and video streams were selected, a format changed, or extraction failed. Try a different lawful public URL and compare it with the original source. A problem limited to one site or one item is unlikely to be repaired by a global audio-delay value.
5.2 Diagnose Network Streams and Playlists
Network congestion, server-side timestamp errors, discontinuities, and live-stream transitions can cause temporary desynchronization. Test a direct URL when available, then compare it with the playlist entry. Also compare the stream with a local file during the same mpv session.
If sync breaks only after buffering or seeking, collect a log around that event. Increasing cache settings may improve interruptions, but caching cannot repair fundamentally incorrect timestamps from the source. Stop changing mpv when multiple players show the same fault at the same point in the stream.
5.3 Recognize Media-File Limitations
A single file may contain incorrect timestamps, variable-frame-rate anomalies, damaged segments, or an audio track made for a different edit. Test another known-good file encoded with similar characteristics. If every player loses sync at the same timestamp, the media itself is the leading suspect.
For personal or authorized media, remuxing with a reputable tool can sometimes regenerate container timing without re-encoding, but preserve the original and inspect warnings first. A fixed offset may still be the simplest solution when the entire file is consistently early or late.
6. Use Logs and Runtime Information to Find the Cause
6.1 Capture Useful Terminal Output
Launch mpv from a terminal instead of a graphical shortcut. Normal output can identify selected tracks, decoders, hardware-decoding status, audio and video outputs, scripts, and stream errors. Reproduce the problem briefly, note the timestamp, and close mpv normally.
For more detail, use a targeted message level and a log file:
mpv --no-config --msg-level=all=v --log-file=mpv-sync.log "video.mkv"
Verbose logs can be large and may expose local paths or URLs. Review and redact private information before sharing them. Search near the failure for decoder errors, timestamp warnings, audio-device changes, dropped frames, buffering, or script messages.
6.2 Combine Logs With Controlled Comparisons
A log is most useful when paired with two comparable tests. Run the same local file once with --no-config --hwdec=no and once with --no-config --hwdec=auto. If only one run fails, compare decoder, output, and frame-timing lines instead of searching the entire log without a hypothesis.
For configuration problems, compare a clean run with a normal run. For streams, compare a local file with the URL. For Bluetooth, compare wired and wireless output. This isolates one variable and prevents unrelated warnings from becoming distractions.
7. Run a Clean Temporary Test Before Permanent Changes
Use the following sequence whenever the cause remains unclear:
- Reset the runtime audio delay to zero or restart mpv.
- Choose a known-good local file with clear speech or impact sounds.
- Run
mpv --no-config "file". - Replay the same scene after seeking.
- Compare
--hwdec=noand--hwdec=autoif frames are dropping. - Test wired output if Bluetooth is involved.
- Return to normal configuration and disable one suspected profile, script, shader, or driver override.
- Only after identifying a constant offset, apply a small
--audio-delayvalue.
Stop changing settings as soon as playback stays synchronized through the tested scene, a seek, and several minutes of continuous playback. Additional changes make the result harder to reproduce and may introduce a new mpv player issue.
8. Quick Fix Checklist
- Confirm that sound, not subtitles, is out of sync.
- Use Ctrl plus or Ctrl minus for a small constant correction.
- Remember that positive
--audio-delaydelays audio and negative values advance it. - Test a known-good local file with
--no-config. - Check
mpv.conf,input.conf, profiles, scripts, and external tracks. - Compare hardware decoding enabled and disabled.
- Open the stats overlay and watch for increasing dropped frames.
- Compare Bluetooth with wired or built-in audio.
- Use terminal output and a log file for intermittent failures.
- Treat URL-only failures as extractor, network, or source problems first.
- Change one variable at a time and stop when synchronization is stable.
9. Frequently Asked Questions
9.1 Which way should I change mpv audio delay?
If sound arrives before the matching picture, use a positive value to delay audio. If sound arrives after the picture, use a negative value to present it earlier. Test in small increments against a clear visual event.
9.2 Why does Ctrl plus or Ctrl minus not work?
Your keyboard layout may require Shift to produce the plus character, or input.conf may override the default binding. Run with --no-config to test default controls, or use --audio-delay directly on the command line.
9.3 Why does sync get worse as the video plays?
Growing drift is not usually a simple fixed delay. Check dropped frames, playback speed, hardware decoding, timestamps, network interruptions, and whether the file fails similarly in another player. Avoid repeatedly increasing the delay because that only corrects one moment.
9.4 Can Bluetooth cause mpv audio to be late?
Yes. Wireless audio processing can add latency outside mpv. Compare the same scene with wired headphones or built-in speakers. If only Bluetooth is affected, use a device-specific temporary offset rather than changing every file globally.
9.5 Why does mpv work with local files but not online URLs?
The likely cause shifts toward yt-dlp availability, selected online formats, network buffering, server timestamps, or a source-specific problem. Read terminal output, test another lawful URL, and avoid applying a universal delay based on one stream.
9.6 Is an HDR or screenshot setting likely to cause audio delay?
HDR processing, demanding shaders, and GPU limitations can cause rendering delays or dropped frames that resemble audio desynchronization. Screenshot settings normally matter only if a script repeatedly captures frames or a screenshot action triggers a stall. Test without custom shaders and scripts, inspect stats, and keep audio delay at zero if smoother video fixes the symptom.