How to Fix Audio Out of Sync Permanently (Delay Compensation)
When audio drifts out of sync, the usual reaction is to press J or K on every video and nudge the timing back — an endless chore. VLC has a better tool: the audio delay compensation setting, which stores a permanent offset for all files, and even remembers per-file adjustments you make during playback. This guide explains the permanent fix, the per-file fine-tuning, and the three hardware causes (Bluetooth, A/V receivers, and soundbars) that make sync drift happen in the first place.
Why does this happen?
- Bluetooth audio latency — Bluetooth codecs (especially A2DP/SBC) add 100–300 ms of encoding latency; VLC cannot know the delay, so audio plays early relative to video.
- A/V receiver processing — receivers with lip-sync or room-correction processing (Dolby, DTS) buffer audio, pushing it late.
- Hardware-accelerated decoding jitter — unstable video decode timing on some GPUs makes the drift appear at random points, which feels worse than a constant offset.
- Container-level timing flags — some MKV/MP4 files carry incorrect edit lists or timestamps; the drift is baked into the file itself.
- Corrupted preferences — an old global delay value saved in your configuration keeps applying to everything.
How to fix it
Fix 1Set a permanent audio delay compensation
Fixes constant, predictable drift across all files
Open VLC and go to Tools > Preferences > Audio.
Audio settings open.
Set "Audio delay" (or "Audio desynchronization compensation") to the measured offset, e.g. 250 ms for Bluetooth headphones.
A global offset is applied to every file.
Positive values delay the audio; negative values shift it earlier. Click Save and restart VLC.
Playback starts with the new offset.
Fix 2Fine-tune per file with J / K and save the offset
Fixes files that are individually off while keeping the global default
Play the file and press K to delay audio (later) or J to make it earlier (faster) — each press is 50 ms.
Sync improves step by step.
Once in sync, go to Tools > Track Synchronization (or press Ctrl+L).
The synchronization panel shows the current delay.
Right-click the video > Video > Subtitle Track > Save Synchronization — VLC writes a per-file offset into its media database.
The offset reapplies automatically next time you play this file.
Fix 3Reduce Bluetooth latency at the source
Removes the root cause instead of compensating it
In VLC: Tools > Preferences > Audio > "Audio output" → set to "AudioTrack (Android)" or the lowest-latency module available on your OS.
The audio pipeline changes.
On the OS side, prefer codecs with lower latency: Windows "AAC" mode, macOS "AAC", or aptX/LL on supported devices.
Latency drops noticeably.
If using a soundbar with a "Game" or "Low Latency" mode, enable it — those modes disable lip-sync buffering.
Sync returns without any compensation.
Fix 4Rule out the file itself with a remux
Confirms whether the drift is baked into the media
Remux the file without re-encoding:
ffmpeg -i input.mkv -c copy -map 0 output.mkv.A clean container is created.
Play the remuxed file. If sync is now stable, the original container had broken timestamps.
The remuxed file plays in sync.
Keep the remuxed copy and delete the broken original.
The problem file is replaced.
Fix 5Reset VLC preferences to defaults
Clears corrupted settings that cause crashes, black screens and audio issues
Close VLC completely.
No VLC process is running.
Open a command prompt (Win+R → cmd) or terminal.
A command line is available.
Run:
vlc --reset-config(Windows/Linux) — on macOS delete~/Library/Preferences/org.videolan.vlcinstead.VLC preferences are restored to defaults.
Launch VLC and re-apply only the settings you actually need.
VLC starts with clean settings.
Advanced fixes
Fix 1Check the media database for stale offsets
Finds per-file values that keep re-applying
Close VLC and delete the media database:
%APPDATA%\vlc\ml.xspf(Windows) or~/Library/Application Support/org.videolan.vlc/ml.xspf(macOS).Saved per-file offsets are cleared.
Restart VLC and replay the file — the stored sync value is gone.
The file plays with only the global offset.
Re-apply the per-file adjustment only if the file truly needs it.
Clean state restored.
How to avoid it in the future
- For Bluetooth, always re-measure after firmware or OS updates — codec behavior changes.
- Prefer wired audio (3.5 mm / optical / HDMI) when sync precision matters, e.g. video editing review.
- Keep VLC updated: demuxer timing fixes arrive with each 3.0.x release (current stable: 3.0.23).
- Save the per-file offset during playback for files that regularly drift — VLC remembers it.
Frequently asked questions
What is the difference between audio delay compensation and the J/K keys?
Positive or negative audio delay — which way do I go?
Why does sync drift slowly during a movie?
Does the compensation setting affect screen recordings or streams?
Summary
Set a permanent audio delay compensation — Fixes constant, predictable drift across all files. If it does not help, work through the remaining fixes in order: each targets a different layer of the problem. Most users resolve this issue by fix 3 at the latest. Keep VLC updated (current stable: 3.0.23) and revisit this guide when a new VLC version ships.