Webcam A/V Sync & Latency Meter

Clap five times in front of your webcam — the tool measures the offset between your camera and microphone, then gives you an OBS-ready value. Nothing is uploaded.

ZERO UPLOAD · ALL LOCAL
  1. Click "Enable Camera & Mic" and allow both permissions in the browser prompt — no video or audio is uploaded.
  2. Select your camera and microphone from the dropdowns if you have multiple devices connected.
  3. Click "Start Test." Position yourself so your hands are visible in the camera preview.
  4. Clap sharply once in front of the camera. Watch for the clap icon to flash in the preview corner confirming detection.
  5. Repeat for a total of 5 claps, leaving 2–3 seconds between each.
  6. Read your result — copy the OBS Audio Offset value and paste it into OBS Studio under Audio > Advanced Audio Properties.

What to look for

  • audio arrived before video (needs a delay applied to audio)
  • audio arrived after video (needs a negative audio offset)
  • performance.now(), a monotonic clock unaffected by system time changes
  • 1 ms

Audio offset is per device-combination on a given machine, not a fixed property of the camera alone.

What to look for

  • about 45 ms
  • about 125 ms

What to look for

  • about 3 ms per hour at 50 PPM
  • 5 to 20 ms

What to look for

  • 2 to 10 ms
  • 10 to 20 ms

Camera and microphone access is required. Access is only used for local analysis — no video or audio is transmitted.

Requesting access…

Preview

CLAPS DETECTED   0 / 5

Results

Run 1
Run 2
Run 3
Run 4
Run 5
OBS Audio Offset

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

  • Within ±5 ms
  • 80–150 ms

Run the five-clap test above and compare your own Audio Delay/Audio Leads result against this scale.

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

    Thomas Steiner, "Perform efficient per-video-frame operations," web.dev, January 2023. https://web.dev/articles/requestvideoframecallback-rvfc

  3. 3.

    Mozilla Developer Network, "AnalyserNode," developer.mozilla.org, October 2024. https://developer.mozilla.org/en-US/docs/Web/API/AnalyserNode

  4. 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. 5.

    Ableton, "How Latency Works," help.ableton.com, accessed June 2026. https://help.ableton.com/hc/en-us/articles/360010545559-How-Latency-Works

  6. 6.

    Qualcomm aptX, "Qualcomm® aptX™ Low Latency Synchronised Audio Technology," aptx.com, accessed June 2026. https://www.aptx.com/aptx-low-latency

  7. 7.

    Vanessa McCuaig, "Bluetooth Connectivity Score and Tests: Headphones," rtings.com, November 2023. https://www.rtings.com/headphones/tests/connectivity/bluetooth-connection

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

FAQ