How to Fix Audio Out of Sync Permanently (Delay Compensation)

Audio Issues Last updated: Applies to: All platforms · VLC 3.0.x · A/V receivers & Bluetooth

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

  1. Open VLC and go to Tools > Preferences > Audio.

    Audio settings open.

  2. 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.

  3. Positive values delay the audio; negative values shift it earlier. Click Save and restart VLC.

    Playback starts with the new offset.

NoteMeasure the offset by pausing on a clear mouth movement and counting the gap in seconds, then multiply by 1000. Start conservative (±150 ms) and refine.

Fix 2Fine-tune per file with J / K and save the offset

Fixes files that are individually off while keeping the global default

  1. 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.

  2. Once in sync, go to Tools > Track Synchronization (or press Ctrl+L).

    The synchronization panel shows the current delay.

  3. 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.

NoteThe per-file value overrides the global compensation only for that file — your global setting stays untouched.

Fix 3Reduce Bluetooth latency at the source

Removes the root cause instead of compensating it

  1. In VLC: Tools > Preferences > Audio > "Audio output" → set to "AudioTrack (Android)" or the lowest-latency module available on your OS.

    The audio pipeline changes.

  2. On the OS side, prefer codecs with lower latency: Windows "AAC" mode, macOS "AAC", or aptX/LL on supported devices.

    Latency drops noticeably.

  3. If using a soundbar with a "Game" or "Low Latency" mode, enable it — those modes disable lip-sync buffering.

    Sync returns without any compensation.

NoteAfter changing the audio output, re-measure the delay — the compensation value may need adjusting.

Fix 4Rule out the file itself with a remux

Confirms whether the drift is baked into the media

  1. Remux the file without re-encoding: ffmpeg -i input.mkv -c copy -map 0 output.mkv.

    A clean container is created.

  2. Play the remuxed file. If sync is now stable, the original container had broken timestamps.

    The remuxed file plays in sync.

  3. Keep the remuxed copy and delete the broken original.

    The problem file is replaced.

NoteRemuxing is lossless — no quality is lost. It only rebuilds the container structure.

Fix 5Reset VLC preferences to defaults

Clears corrupted settings that cause crashes, black screens and audio issues

  1. Close VLC completely.

    No VLC process is running.

  2. Open a command prompt (Win+R → cmd) or terminal.

    A command line is available.

  3. Run: vlc --reset-config (Windows/Linux) — on macOS delete ~/Library/Preferences/org.videolan.vlc instead.

    VLC preferences are restored to defaults.

  4. Launch VLC and re-apply only the settings you actually need.

    VLC starts with clean settings.

NoteThis erases all custom preferences (including shortcuts and skins). Export your config first under Tools > Preferences > All > Interface if you want a backup.

Advanced fixes

Fix 1Check the media database for stale offsets

Finds per-file values that keep re-applying

  1. 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.

  2. Restart VLC and replay the file — the stored sync value is gone.

    The file plays with only the global offset.

  3. Re-apply the per-file adjustment only if the file truly needs it.

    Clean state restored.

NoteDeleting ml.xspf also clears play counts and recently played entries — it does not touch your playlists or preferences.

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?
J/K adjust timing on the fly for the current session; the compensation setting is a permanent global offset saved in preferences. Use compensation for constant drift (Bluetooth, receivers) and J/K for one-off files.
Positive or negative audio delay — which way do I go?
Positive delays the audio (use when audio is early, typical with Bluetooth). Negative shifts audio earlier (use when audio lags video, common with some receivers). If unsure, nudge with J/K first to find the direction.
Why does sync drift slowly during a movie?
Slow drift usually points to unstable video decode timing (hardware acceleration) or a broken container. Try disabling hardware-accelerated decoding and remuxing the file.
Does the compensation setting affect screen recordings or streams?
It applies to every playback, including streams and recordings. Set it back to 0 before capturing audio or doing anything where latency must be exact.

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.