Home › Blog › Why Video Is Out of Sync
Why Your Video Is Out of Sync (and How to Fix It)
Audio and video drifting apart is one of the most annoying things that can happen during a stream. The mouth moves, the words arrive half a second later. An explosion happens before the sound. It's subtle at first, then impossible to ignore. Here's why it actually happens and how to fix it — not just "restart the browser" but the real underlying reasons so you can diagnose it quickly.
The short version
Audio and video are two separate data streams. In a healthy playback pipeline they're locked together by timestamps. When something disrupts that lock — CPU overload, a driver mismatch, a buffer underrun, a capture handoff — one stream pulls ahead of the other. The longer the session runs, the wider the gap can become. Fixing it usually means either relieving the pressure on whichever component is struggling, or resetting the pipeline entirely.
Cause 1: GPU hardware acceleration conflict
Modern browsers offload video decoding to the graphics card (GPU) to save CPU resources. The problem is that the GPU decoder runs on a slightly different clock than the CPU handling the audio. When they fall out of step — which is more likely on machines with integrated graphics, older drivers, or when the GPU is under load from something else — the audio and video timestamps diverge.
How to tell if this is your problem
The desync starts small and gets gradually worse over the session. It doesn't jump — it drifts. After 30 minutes of watching, the gap might be 2–3 seconds.
The fix
- In Chrome: Settings → System → toggle off "Use hardware acceleration when available" → Relaunch.
- In Edge: Settings → System and performance → toggle off "Use hardware acceleration when available" → Restart.
- In Firefox: Settings → Performance → uncheck "Use recommended performance settings" → uncheck "Use hardware acceleration when available."
This pushes video decoding back onto the CPU, which runs on the same clock as audio. The CPU load goes up slightly, but the sync stays locked. On most modern machines the difference in CPU load is negligible.
Cause 2: Audio output device mismatch
If your system has more than one audio output — headphones plugged in while a monitor is set as the default speaker, or a Bluetooth device that takes a second to wake up — the browser may be sending audio to a different device than expected. Each device has its own buffer, and different buffer sizes create different latency offsets.
Bluetooth audio specifically
Bluetooth audio codecs introduce 100–300ms of latency compared to wired headphones. If you're using Bluetooth headphones and the audio arrives before the video (dialogue before lip movement), this is likely why. Switch to wired audio for the most accurate sync, or adjust: some audio players and operating systems let you set a manual audio delay offset to compensate.
Cause 3: CPU overload causing frame drops
Screen capturing, encoding and transmitting a video stream is CPU-intensive. If the host's machine is simultaneously running a game, doing a background Windows Update, encoding another video, or just running a lot of browser tabs, the CPU starts dropping video frames to keep up — but audio keeps playing at full rate. The result is video that appears to slow down or stutter while audio races ahead.
Symptoms
The video feels "choppy" — it moves in bursts rather than smoothly. Audio is fine. This is frame drop, not desync in the traditional sense, but the practical effect is the same.
The fix
- Close everything non-essential on the host machine. One browser window, one tab, nothing else.
- Check Task Manager (Windows) or Activity Monitor (Mac) to see if any process is consuming unusual CPU — antivirus scans and system updates are common culprits.
- Lower the resolution of what you're sharing — streaming at 720p instead of 1080p cuts the encoding load roughly in half.
Cause 4: Network jitter and packet reordering
In peer-to-peer WebRTC streams, audio and video packets travel independently across the network. If the network path between host and viewer has high jitter — packets arriving out of order or in bursts — the viewer's browser has to buffer and reorder them. If the jitter buffer is too small, packets arrive late and get played late, causing momentary desync spikes that correct themselves but feel jarring.
Symptoms
Sync is mostly fine but there are occasional sudden jumps where audio and video briefly separate, then snap back together. Happens more on congested home networks (many devices, peak hours) or when the viewer is on Wi-Fi far from the router.
The fix
- Viewer: move closer to the router or switch to wired ethernet.
- Viewer: reload the watch room page — this resets the WebRTC connection and often finds a less congested network path.
- Host: same — wired connections produce steadier packet timing.
Cause 5: The streaming service is running slow
Less common but worth mentioning: if the streaming service itself is delivering video and audio segments from different CDN nodes at different speeds, the browser's player can briefly fall behind on one stream. This looks like desync but it's actually the service catching up to itself. A page refresh during a natural pause usually resolves it.
The 60-second fix that covers 80% of cases
- Pause the film.
- Host: disable hardware acceleration in Chrome if not already done (one-time setup).
- Host: close all other browser tabs and applications.
- Refresh the watch room page.
- Resume playback.
If this doesn't work, you're likely looking at a network issue (Cause 4) or a persistent driver problem that needs a full browser restart.