What is A/V sync and why it matters for streaming
A/V sync refers to the timing alignment between the audio and video tracks
in a recording or live stream. When the two tracks are misaligned, viewers
hear your voice before or after your lips move. Offsets around 80 to 150
ms are usually noticeable in live speech or streaming workflows and can
make a broadcast feel unpolished regardless of how good the content is.1
The offset is caused by different processing pipelines for video and audio
inside the browser and the operating system. Your webcam's USB driver, the
browser's video codec, and the JavaScript event loop all add latency to
the video path. Your microphone's audio driver and the Web Audio API add a
different amount to the audio path. The two rarely match.
Offset is not the same as latency
The word latency names a different quantity from the one this meter reports. For a single capture chain, latency is the delay: the time a moment takes to travel from your microphone into the browser, or from your camera into the browser, each path carrying its own driver, buffer, and processing delays. Offset is the difference between those two chains' delays. A sync correction has no use for the individual numbers, only for the gap between them, which is why this meter measures the difference and leaves each chain's own latency alone.
The boundary matters when a test lands here with the wrong question. Measuring glass-to-stream latency, the total time a physical moment takes to reach a viewer, is a different job with different methods, and no reading on this page answers it. Latency checks lean on exercises like a loopback test, a separate discipline from pairing two capture streams. The signed millisecond offset this meter reports is exactly the number a sync field consumes, and closing the gap between your two capture devices is the entire job it was built for.
How the clap detection algorithm works
The tool runs two independent detection loops simultaneously. The video
loop draws each webcam frame to a hidden 320×240 canvas and samples
the mean luminance of an 80×80 pixel region in the centre. When the
frame-to-frame luminance delta exceeds a fixed threshold, the tool records a
video timestamp using performance.now().2 The brightness change that pushes the signal over the
threshold is the flash of your hands completing the clap, so the timestamp lands
close to the visible impact rather than the start of the hand motion.
The audio loop polls an AnalyserNode every 4 ms to read the peak amplitude deviation from silence. During the first
800 ms after you click Start Test, the tool calibrates a noise floor from ambient
room sound. A transient is detected when the peak exceeds the noise floor by
a factor of 3.5, and an audio timestamp is recorded using the same
performance.now()
clock so both measurements share a single time base.3
How the timestamps are paired and averaged
The two timestamps are paired only when they fall within a 500 ms correlation window,
which is wide enough to absorb the real-world offset between a camera frame and its
matching audio transient while still rejecting unrelated background events. The
delta is audioTs − videoTs: a
positive value means audio arrived after video, and a negative value means audio
arrived first. After five valid pairs, the tool averages the deltas and reports the
result, which smooths out any single frame that arrived late or any clap that landed
closer to one detector than the other.
TIP
Clap sharply once every 2–3 seconds so each clap is a distinct, well-separated
event for both detectors. Rapid successive claps can fall within the 600 ms
debounce window and will be ignored to prevent echo re-triggering, which is why the
tool waits for a clean gap before accepting the next measurement.
Reading your result and entering it in OBS
The result is shown as a signed millisecond value with a direction label: Audio Delay means audio arrives after video, so the sound trails the picture; Audio Leads means audio arrives before video, so the sound jumps ahead of the picture; and In Sync means the offset is within ±5 ms and no correction is needed because the two
tracks are already close enough to appear simultaneous to viewers.
Applying the value in OBS Studio
In OBS Studio, open Edit → Advanced Audio Properties and find your microphone source in the list. Enter the OBS Audio Offset value from this tool in the Sync Offset (ms) column: a positive offset pushes the audio track forward in time so it lines up with later-arriving video frames, while a negative offset delays the audio to wait for the picture. Click Close, then verify the fix by clapping once more with your stream preview open; the visual slap and the sound should now reach the viewer at the same instant.
A concrete example makes the direction easier to remember. If your five-clap test
reports Audio Delay: +80 ms, your
microphone's signal is arriving 80 milliseconds behind the camera's, which sits inside
the 80 to 150 ms range viewers start to notice in live speech. Enter 80 in
OBS Studio's Sync Offset field for that microphone source, then clap once more with the
stream preview open. A corrected setup lands within the small window this tool treats as
in sync, so the visual slap and the sound should now reach the viewer together.
The number you copy is app-agnostic. Any streaming or conferencing app that exposes a per-source audio delay field accepts the same signed millisecond value, and the conferencing apps that carry such a setting take it the same way OBS does. In raw milliseconds rather than app-specific units, the value carries its meaning unchanged, so the number transfers as-is: the sign tells the direction, and the magnitude tells the shift. Where an app offers no per-source field at all, the correction has to happen on the devices and the pipeline instead: the connection type, the buffer size, the sample rate, the same levers the final section of this article walks through.
From milliseconds to frames
Video gives the same offset a different texture. At 30 frames per second one frame lasts about 33 milliseconds, and at 60 frames per second about 17, so an 80 ms offset sits near 2.4 frames at 30 fps and 4.8 at 60. The audio side accepts any millisecond value, but the video side can only shift in whole-frame steps, which is why small offsets vanish into the frame grid: a correction under one frame in size cannot move the picture at all, so at 60 fps anything below about 17 milliseconds simply has no video-side expression.
That frame arithmetic is also why the tool reports milliseconds instead of frames. A per-source audio delay field takes the millisecond number directly, with no conversion step and no rounding, while a correction applied on the video side can only land on whole-frame boundaries, because the stream is delivered one frame at a time. Knowing the boundaries tells you where each kind of fix is possible: the audio track shifts by any amount you ask, and the picture shifts in 33 or 17 millisecond steps at 30 and 60 fps, never by anything in between.
Browser support
The tool requires navigator.mediaDevices.getUserMedia with both video and audio constraints, plus the Web Audio API. All major browsers
support this: Chrome 53+, Firefox 36+, Edge 12+, and Safari 11+. Because getUserMedia is a
privacy-sensitive API, the page must be loaded over HTTPS, from localhost, or from a
file:// URL before the browser will even expose the media devices, and the browser will
then prompt for camera and microphone permissions on first use.4
Where the media data goes during a test
No audio or video data is sent to a server at any point during the test. The camera and
microphone streams exist only inside your browser tab's memory, where the video loop reads
each frame from a canvas and the audio loop reads amplitude from a local AnalyserNode, so
the raw media never touches the network stack or a remote endpoint. The stream is released
and the device handles are freed when you close the tab or navigate away from the page, which
means you can run the measurement and walk away without leaving any recorded file behind.
What changes your measured A/V offset
Your measured offset depends on the exact hardware and software stack in
use at the time of measurement. Changing webcam, microphone, driver
version, browser, or operating system can shift the reading by tens of
milliseconds between sessions.5 A USB audio interface contributes additional buffer and driver latency, and
larger buffers increase the delay.4 Bluetooth
audio devices introduce the most variability: standard Bluetooth codecs can
add substantial delay, while aptX Low Latency reduces this to about 40 ms and
AAC still adds more delay than a wired USB microphone.67
Sample rates deserve the first check when a reading behaves strangely. In a
healthy chain, every device agrees on one rate, and a microphone left
capturing at 44.1 kHz while the pipeline runs 48 kHz is the classic
misconfiguration: when software assumes a different rate than a device
actually captured, the audio plays at the wrong speed and pitch, and sync
drifts progressively rather than sitting at one fixed offset.8
The check itself is short. Set every device to the same sample rate in your
operating system's sound settings, confirm the apps in the chain match, then
rerun the five-clap test to see what the corrected timing produces.
Two different timing failures produce out-of-sync audio, and only one of them is fixable with a single number. A constant offset holds the same millisecond value for the whole recording, and one sync-offset entry fixes it cleanly, which is exactly the kind of number this tool produces. Because the camera and the microphone time their capture with independent clocks that never run at exactly the same rate, progressive drift grows over minutes or hours, so the gap at hour one differs from the gap at hour three, and no single entered value can correct a moving target.
A five-clap run certifies a snapshot of one moment, not a promise about the next hour. The result averages five measurements taken on one stack in one session, so it captures the constant component of any misalignment and cannot see accumulation that only shows up across a long take. When a stream drifts, the fix is remeasurement at intervals or a change at the clock level rather than one bigger offset value, and treating a drifting capture as a fixed offset is the fastest way to leave the ending of your long recording out of sync.
Remeasure your offset whenever your hardware setup changes or after a major browser or operating system update. A new browser version may change the internal processing pipeline for camera capture or audio routing, shifting the reading from its previous value. The five-clap test completes in under a minute and ensures the value you enter in OBS or your conferencing app remains accurate for your current exact configuration, rather than carrying a stale reading from a different setup. CapyToolkit runs the entire analysis in browser memory and never stores or uploads any audio or video data.
Webcam A/V Sync & Latency Meter Reference
- In Sync Within ±5 ms
- Noticeable offset 80–150 ms
Run the five-clap test above and compare your own Audio Delay/Audio Leads result against this scale.
- 1.
CapyToolkit, "What Is Audio Latency? Definition and Round-Trip Measurement," capytoolkit.com, accessed June 2026. https://capytoolkit.com/tools/audio/mic-test/reference/#what-is-audio-latency
- 2.
Thomas Steiner, "Perform efficient per-video-frame operations," web.dev, January 2023. https://web.dev/articles/requestvideoframecallback-rvfc
- 3.
Mozilla Developer Network, "AnalyserNode," developer.mozilla.org, October 2024. https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode
- 4.
Mozilla Developer Network, "MediaDevices: getUserMedia() method," developer.mozilla.org, accessed June 2026. https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia
- 5.
Ableton, "How Latency Works," help.ableton.com, accessed June 2026. https://help.ableton.com/hc/en-us/articles/360010545559-How-Latency-Works
- 6.
Qualcomm aptX, "Qualcomm® aptX™ Low Latency Synchronised Audio Technology," aptx.com, accessed June 2026. https://www.aptx.com/aptx-low-latency
- 7.
Vanessa McCuaig, "Bluetooth Connectivity Score and Tests: Headphones," rtings.com, November 2023. https://www.rtings.com/headphones/tests/connectivity/bluetooth-connection
- 8.
Lynx Studio Technology, "Audio plays back at a faster or slower rate than expected," support.lynxstudio.com, accessed September 2026. https://support.lynxstudio.com/hc/en-us/articles/115002852145-Audio-plays-back-at-a-faster-or-slower-rate-than-expected