Fix Video Audio Sync

Pick a video and a shift — its audio is nudged earlier or later in your browser while the picture stays untouched. Nothing is uploaded.

Try:
Synced video

Fix audio that's out of sync with the video

Pick a video, tell it how far to nudge the audio relative to the picture, and get the same clip back with the two lined up. The picture is stream-copied (not re-encoded), so it stays byte-for-byte identical and processing is fast; only the audio track is re-encoded, because its timeline is being rewritten. Everything runs in your browser; nothing is uploaded.

Which way do I shift it?

Watch a moment where a mouth moves or something makes a sharp sound, then pick a direction with the Offset value:

Set the amount in milliseconds (the default) or seconds with the Unit control — 200 ms is the same as 0.2 s. The range is ±60000 ms (±60 s); 0 is rejected because it wouldn't change anything.

Worked example: a Bluetooth-mic recording where the voice trails the lips by about a fifth of a second. Load talk.mp4, set Offset to -200 with Unit = Milliseconds, and you get talk-synced.mp4 — same video, audio pulled 200 ms earlier so it matches the lips.

How the shift is done

Notes and limits

FAQ

Is my video uploaded to a server?

No — ffmpeg runs inside your browser tab, so the file never leaves your device.

Should I use a positive or a negative offset?

If the sound comes before the picture (you hear the word before the lips move), the audio is early — delay it with a positive value. If the sound comes after the picture (lips move, then you hear it), the audio lags — advance it with a negative value. A few frames is often enough: one frame at 25 fps is about 40 ms.

What's a typical offset to try?

Bluetooth headphones and speakers commonly add about -150 to -250 ms of audio lag, so -200 ms is a good first guess. For most other drift, start near 100200 ms in whichever direction lines the sound up, then fine-tune.

Will nudging the audio hurt the video quality?

No. Only the audio is changed; the picture is stream-copied without re-encoding, so the video quality is identical to the original.

The sync drifts more and more over the clip — will this fix it?

No. This tool applies a single constant shift to the whole clip, which fixes audio that's uniformly early or late. Drift that grows over time means the audio plays at a slightly wrong speed and needs time-stretching instead — a constant offset can't correct it.

Which video formats can I use, and how big can the file be?

Anything ffmpeg can read — mp4, mov, mkv and webm are the common cases. The output keeps the input's container and is named after the original with a -synced suffix (e.g. clip.mp4clip-synced.mp4). The input and output are each capped at 25 MB.

Developer & Automation Access

Run it from the terminal

Same engine as this page, headless — via the gizza CLI:

gizza tool video-audio-sync-offset 'url=https://example.com/input' 'offset=200' 'unit=ms'

New to the CLI? Get gizza →

Open it by URL

Pre-fill and auto-run this tool with query parameters — the names match the API/CLI:

https://gizza.ai/tools/video-audio-sync-offset/?url=https://example.com/input&offset=200&unit=ms

Machine-readable descriptor: tool.json — title + parameters JSON Schema for agents.