- Isolate Bluetooth latency with a clean, configuration-free mpv test.
- Fix profile switching, hidden offsets, scripts, filters, and synchronization settings.
- Apply precise audio-delay compensation without disrupting wired playback.
Bluetooth headphones and speakers can make audio arrive noticeably later than video in mpv. Dialogue may follow lip movement, sound effects may occur after the on-screen action, and subtitles may appear out of step with speech. The usual causes are Bluetooth codec latency, an operating system selecting a hands-free audio profile, an existing mpv audio offset, an aggressive synchronization setting, or extra processing in the playback chain. The safest approach is to isolate the delay with a clean mpv command, determine whether it belongs to mpv or the Bluetooth path, and then apply one targeted correction. Stop as soon as speech, video, and subtitles remain aligned during a representative test.

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
Before editing mpv.conf, changing hardware decoding, or replacing audio drivers, establish a clean baseline. Use a local file with clear speech and visible lip movement. A short video recorded on a phone can work well because it avoids network, yt-dlp, playlist, and streaming variables.
Open a terminal or command prompt and run mpv without loading the normal configuration:
mpv --no-config "path/to/test-video.mp4"On Windows, use the full path to mpv.exe if its directory is not in PATH. Quote paths containing spaces. On macOS or Linux, a terminal command may look like this:
mpv --no-config "$HOME/Videos/test-video.mp4"Success means the test file opens, the correct audio track plays through the Bluetooth device, and lip synchronization is acceptable. If the delay disappears under --no-config, the Bluetooth connection can perform adequately and something in your mpv configuration, profile, script, or binding is probably introducing or preserving an offset.
If the delay remains, immediately replay the same file through wired headphones, built-in speakers, or a wired audio interface. Do not change other settings between tests. If wired output is synchronized but Bluetooth is late, the strongest suspect is the Bluetooth audio route rather than the media file or mpv decoder.
Some Bluetooth latency is inherent. Audio must be encoded, transmitted, buffered, decoded, and rendered. The amount varies by codec, device, operating system, radio conditions, and whether the source and receiver support the same low-latency behavior. mpv can compensate by delaying video relative to audio, but it cannot make an inherently delayed Bluetooth link transmit instantly.
1.1 Distinguish a Constant Delay From Drift
A constant delay stays approximately the same throughout playback. For example, every spoken word may arrive about 200 milliseconds late. Constant delay is a good candidate for --audio-delay compensation.
Drift changes over time. Playback may start synchronized and become progressively worse after several minutes. Drift can point to timestamp problems, an unstable stream, an unusual audio device clock, dropped frames, or synchronization options. Do not treat progressive drift as a simple fixed Bluetooth offset until you have tested a local file.
1.2 Rule Out Subtitle Timing Confusion
Subtitles are not a reliable first reference because subtitle timing can be wrong independently of audio and video. Watch lips, claps, impacts, or another visible event that produces an immediate sound. If lips and speech match but subtitles are early or late, adjust subtitle timing rather than Bluetooth audio timing.
2. Inspect mpv Settings Directly Related to Delay
If the clean test works, examine the settings mpv normally loads. Check mpv.conf, any platform-specific configuration, profiles, scripts, and input.conf. Search those files for audio-delay, sub-delay, video-sync, autosync, audio filters, speed changes, and audio output selections.
2.1 Test audio-delay Compensation
mpv provides --audio-delay for shifting audio relative to video. Positive values delay audio. Negative values move audio earlier relative to video by delaying the video presentation. Because Bluetooth sound commonly arrives late, a negative value is often the useful direction.
Start with a modest temporary value:
mpv --no-config --audio-delay=-0.200 "path/to/test-video.mp4"The value is measured in seconds, so -0.200 represents 200 milliseconds. Try small changes such as -0.100, -0.150, or -0.250. Avoid guessing with very large offsets.
Success means lip movement and speech line up consistently, seeking does not cause persistent desynchronization, and the correction remains suitable across several minutes. Once that happens, stop adjusting. Chasing tiny fluctuations can make a stable result worse.
If one Bluetooth device always needs the same correction, place it in a named profile instead of applying it to every output:
[bluetooth-audio]
audio-delay=-0.200Launch mpv with:
mpv --profile=bluetooth-audio "path/to/video.mp4"This prevents the negative offset from making wired headphones or speakers play too early.
2.2 Check Input Bindings and Saved Runtime Changes
mpv supports commands that adjust audio delay during playback. A custom input binding, script, or controller integration can alter the property accidentally. Search input.conf and scripts for audio-delay. Also press i or use the stats overlay configured by your build to inspect playback while testing.
You can deliberately add useful temporary bindings to input.conf:
Ctrl+- add audio-delay -0.050
Ctrl++ add audio-delay 0.050
Ctrl+0 set audio-delay 0Bindings vary by keyboard layout, so choose keys that mpv recognizes reliably. The reset binding is especially valuable. Success means setting the delay to zero restores the clean baseline and controlled increments predictably shift synchronization.
2.3 Examine Profiles, Scripts, Filters, and Tracks
A profile can silently activate because of file type, protocol, resolution, or another condition. Scripts can also modify speed, synchronization, filters, or tracks. Disable these variables temporarily rather than deleting the entire configuration folder.
Check the selected audio and video tracks. A file may contain alternate tracks with different edits, languages, frame rates, or timing. Use mpv's track list or cycle the audio track during playback. If only one track is delayed, the problem may be inside that track or container rather than Bluetooth.
Audio filters can add buffering or processing. Temporarily remove custom equalizers, convolution filters, resampling chains, pitch correction, or external audio routing. Success means the delay vanishes when a specific filter or script is omitted and returns when it is restored.
2.4 Treat video-sync and autosync as Secondary Tools
video-sync controls how mpv synchronizes video presentation, while autosync can smooth timing behavior in some output conditions. Neither option removes Bluetooth codec latency. They may influence playback timing, dropped or repeated frames, and recovery from timing irregularities, but they should not be the first fix for a stable 150 to 300 millisecond wireless delay.
Test without custom values first. If a clean run is synchronized but your normal configuration is not, remove or comment out custom video-sync and autosync settings temporarily. Success means default synchronization remains stable without recurring corrections. Keep custom synchronization options only when they solve a measured display-timing issue.
3. Check the Operating System Bluetooth Audio Route
mpv sends decoded audio to the operating system's selected audio backend and device. The operating system then manages the Bluetooth transport. A profile or routing problem at this layer affects more than mpv and cannot always be repaired through mpv.conf.
3.1 Select Stereo Instead of Hands-Free Audio
Many Bluetooth headsets expose a high-quality stereo playback mode and a hands-free or headset mode designed for two-way calls. When an application activates the headset microphone, the operating system may switch to the hands-free profile. This mode usually has lower audio quality and may behave differently in latency and buffering.
Close voice-chat, meeting, browser, game-chat, and recording applications that may be using the Bluetooth microphone. In the system audio settings, select the stereo or high-quality playback endpoint where the operating system exposes separate choices. Use a different microphone if you need voice input while watching video.
Success means mpv uses the stereo endpoint, sound quality improves, and timing becomes stable. If changing profiles fixes the symptom, do not add a compensating mpv delay unless a smaller constant offset remains.
3.2 Review Windows Communications Settings
Windows can treat some devices and applications as communications equipment. Open the classic Sound control panel, select the Communications tab, and review the setting that changes other sounds when Windows detects communications activity. Choosing the option that does nothing can prevent unexpected volume behavior, although it does not directly eliminate Bluetooth codec latency.
Also verify that mpv is routed to the intended output in the Windows volume mixer. If both a stereo endpoint and a hands-free endpoint appear, select the stereo playback device. Disable exclusive-mode experiments during diagnosis if another application repeatedly takes control, but change one item at a time.
Success means Windows no longer switches endpoints when communication software opens and mpv consistently uses the chosen stereo output.
3.3 Check Linux and macOS Routing
On Linux, inspect the active profile and output through the desktop sound panel or the controls provided by PipeWire, WirePlumber, or PulseAudio compatibility tools. Choose a high-quality playback profile rather than a headset telephony profile. Restarting the user audio service should be a later step, not the first response.
On macOS, open Sound settings and verify the selected output and input devices. Selecting a Bluetooth headset as the microphone can change how the headset operates. Test with the Mac's built-in microphone while keeping the Bluetooth device as output.
Success on either platform means reconnecting the headset produces the same high-quality output route and mpv no longer changes profile when playback begins.
3.4 Test Bluetooth Conditions and Device Behavior
Move the headphones close to the computer, disconnect unnecessary Bluetooth devices, and test with a sufficiently charged headset. Radio interference can cause retransmissions or larger buffers, although interference more commonly produces dropouts than a perfectly constant delay.
Compare the same file in another reputable local media application. If every application has approximately the same delay, focus on the operating system, Bluetooth adapter, codec negotiation, and headset. If only mpv is affected, return to mpv configuration and output testing.

4. Use mpv Diagnostics Without Guessing
Terminal output can reveal the selected audio output, tracks, decoder, synchronization behavior, dropped frames, and script activity. Capture evidence before making broad changes.
4.1 Create a Focused Log
Run a local test with a log file and increased messages:
mpv --no-config --msg-level=all=v --log-file=mpv-bluetooth-test.log "path/to/test-video.mp4"A verbose log can be large. Reproduce the problem briefly, exit mpv, and inspect entries related to audio output, selected tracks, timestamps, underruns, device changes, and synchronization. Do not publish a log without checking it for personal file paths, URLs, tokens, or other private data.
Success does not require a completely warning-free log. The useful result is a stable audio device, the expected track selection, and no repeated errors that coincide with audible interruptions or timing jumps.
4.2 Display Profiles and Runtime Information
Use --show-profile=profile-name to inspect a named profile before applying it. This is useful when a Bluetooth profile inherits options or when conditional profiles make the effective configuration unclear.
mpv --show-profile=bluetooth-audioDuring playback, use the stats overlay to observe dropped frames, A/V synchronization information, hardware decoding status, and track details. The exact overlay pages and key bindings can depend on configuration, so consult the manual for your installation.
A stable fixed A/V offset with no growing drift supports using audio-delay. Increasing offset, repeated underruns, or large frame-drop counts suggests a performance, timestamp, or stream problem that should be fixed instead of masked.
4.3 Separate Hardware Decoding and HDR From Bluetooth Latency
Hardware decoding, shaders, HDR tone mapping, interpolation, and demanding scaling can overload a system and cause dropped frames. They do not normally create Bluetooth codec latency by themselves. Test a demanding file with --hwdec=no, then with your normal hardware decoding setting, while leaving the audio route unchanged.
If only high-bitrate HDR or heavily processed video drifts, reduce shader complexity, verify GPU drivers, and examine frame drops. If simple and demanding files have the same constant Bluetooth offset, hardware decoding is not the primary cause. Stop changing GPU options and compensate or repair the Bluetooth route instead.
4.4 Isolate Streams, yt-dlp, and Network Sources
Online URLs introduce timestamps, buffering, network variation, server behavior, and external tools such as yt-dlp. Always reproduce the delay with a local file first. If local playback is correct but a network stream drifts, inspect that stream separately.
Confirm that mpv can find the intended yt-dlp executable through a trusted installation and that the selected online format contains compatible audio and video timestamps. Do not download replacement binaries from random sites. A stream-specific issue is established when local files and other URLs remain synchronized through the same Bluetooth device.
5. Run a Clean Temporary Comparison
Once you have a likely cause, compare controlled commands rather than modifying many persistent options. Use the same file, playback position, output device, and listening distance for every run.
- Run
mpv --no-config "test.mp4"through Bluetooth. - Run the same command through wired headphones or built-in speakers.
- Reconnect Bluetooth and confirm the stereo profile is active.
- Test a small negative
--audio-delayvalue. - Run normal mpv and compare it with the clean command.
- Restore scripts, profiles, filters, and shaders one group at a time.
Write down the approximate delay and result of each test. This prevents circular troubleshooting and makes it clear which change mattered.
Stop when a representative local file remains synchronized after seeking, pausing, and playing for several minutes. Then test one high-bitrate file and one network source if those are part of your normal use. Do not keep tuning unrelated screenshot settings, subtitle appearance, yt-dlp options, or HDR controls after the Bluetooth delay is resolved.
6. Quick Fix Checklist
- Test a local file with
--no-config. - Compare Bluetooth playback with wired or built-in audio.
- Select the stereo Bluetooth profile, not hands-free mode.
- Close applications using the headset microphone.
- On Windows, verify the output endpoint and communications behavior.
- Reset any existing audio delay to zero before measuring.
- Try a small negative
--audio-delayfor constant Bluetooth latency. - Remove custom
video-syncandautosyncvalues temporarily. - Check profiles, input bindings, scripts, filters, and selected tracks.
- Use logs and stats to distinguish constant offset from drift.
- Test local playback before troubleshooting yt-dlp or network streams.
- Keep successful compensation in a Bluetooth-only profile.
7. Frequently Asked Questions
7.1 What audio-delay value should I use for Bluetooth?
There is no universal value because latency depends on the headset, codec, adapter, operating system, and active profile. Begin around -0.100 to -0.200 seconds and adjust in small increments. Use the smallest negative value that keeps lips and speech aligned.
7.2 Why does a negative value fix audio that sounds late?
In mpv, a positive audio delay postpones audio. If Bluetooth already postpones the sound, adding a positive value makes the symptom worse. A negative value advances audio relative to the displayed video, effectively allowing the delayed Bluetooth output to catch up.
7.3 Why does the delay increase when I use my headset microphone?
The operating system may switch the headset from stereo playback to a hands-free telephony profile when its microphone is active. Close the application using that microphone or select another input device. Then reconnect or reselect the stereo output and test again.
7.4 Can video-sync or autosync eliminate Bluetooth codec latency?
Not directly. These options influence playback synchronization and timing recovery, but they cannot reduce the physical encoding, transmission, buffering, and decoding time of a Bluetooth link. Use them only for a diagnosed display or clock-synchronization problem.
7.5 Why is only one video or stream delayed?
The file may contain a poorly timed track, or the stream may provide irregular timestamps. Try another audio track and test a local known-good file. If every other source is synchronized, avoid adding a global Bluetooth offset to compensate for one defective source.
7.6 When is mpv not the cause?
If the same constant delay occurs in multiple media applications but disappears with wired output, the Bluetooth route is the likely cause. Check stereo versus hands-free mode, microphone use, operating system routing, adapter behavior, and the headset itself. Use an mpv Bluetooth profile only when the remaining latency is stable and predictable.