Skip to content
Back to Blog
platform-pain-points

Video and Audio Out of Sync After Conversion? Fix Guide

2026-05-17 9 min read

Why Audio Drift Happens During File Conversion

Audio sync problems are maddening. After a long conversion, you open the file only to find the dialogue is just slightly off. It's not usually a random software bug; these issues almost always trace back to a small set of predictable technical causes. Understanding them is the fastest way to a fix. The most common culprit is a subtle mismatch between the video's frame rate and the audio's sample rate. When a converter re-encodes a video from 29.97 fps (the NTSC standard) to a clean 30 fps, it nudges the timing of every single frame. These tiny adjustments—fractions of a millisecond—snowball across a long video. By the end of a two-hour film, that drift can add up to several seconds. You'll see it clearly in dialogue scenes: lips move, and the words arrive a beat later. Another source of sync chaos is Variable Frame Rate (VFR) footage. Your smartphone and most screen-recording tools shoot in VFR to save space, dropping or duplicating frames based on motion. The problem is, most video encoders expect a Constant Frame Rate (CFR). When a VFR file is fed into a standard CFR encoder, the perfectly steady audio track (running at 44.1 kHz or 48 kHz) falls completely out of step with the now-irregular video timing. Switching container formats, like from MKV to MP4, can also be the source of the drift. This process, called remuxing, doesn't always handle metadata perfectly. If the original MKV file had a non-zero audio delay baked into its metadata (a value in the TrackTimecodeScale or CodecDelay fields), many converters silently discard that offset. The result is audio that starts 200–500 ms too early or too late. Finally, the act of transcoding audio itself can introduce latency. Moving from a format like AC3 5.1 (common in DVDs) to stereo AAC changes the codec's inherent delay. AC3 has a built-in encoder delay of 256 samples, while AAC typically requires 1024–2048 samples of 'priming.' If the converter doesn't compensate for this difference, you get a noticeable shift right at the beginning of the video.

Diagnosing the Exact Size of Your Sync Problem

Before you try any fix, you have to measure the offset. Guessing just wastes time and can even make the problem worse. A precise number—like 'audio is 340 ms early'—is your roadmap to the right solution. Your best friend for diagnostics is the free and universal VLC Media Player. Open your converted file, then press the 'G' and 'F' keys to nudge the audio backward or forward in 50 ms increments. Keep tapping until the dialogue perfectly matches the lip movements. Then, go to Tools > Track Synchronization and check the 'Audio Desynchronization Compensation' value. That number, in milliseconds, is your offset. Write it down. If you need even more precision, open the file in a free audio editor like Audacity while playing the video in VLC. Find a sharp, clear sound—a clap, a door slam, a gunshot—and pinpoint its timestamp in both the video player and the audio waveform. The difference between those two times is your exact drift value. Pay attention to *how* the file is out of sync. Does the drift get progressively worse over time? If it's fine at the start but seconds off by the end, you've got a frame rate mismatch or a VFR problem. If the offset is constant from the very first frame, it's almost certainly a container remuxing error or an uncompensated codec delay. Also, check your source file before blaming the conversion. Open the original video in VLC and run the same tests. It's entirely possible the file was already out of sync. A converter like CocoConvert will just faithfully reproduce that existing problem; it has no way of knowing what 'correct' sync for your specific content should look like.

Fixing Sync in CocoConvert: Settings That Actually Help

Inside CocoConvert's conversion engine, there are a few key levers that directly address audio-video synchronization. Knowing which one to pull for your specific problem will save you a ton of frustration and re-conversions. For a constant offset, where the audio is always off by the same amount, the 'Audio Delay' field is your direct solution. After uploading your file, click 'Advanced Options' and you'll find the 'Audio Delay (ms)' field. Enter a positive number to push the audio later, or a negative number to pull it earlier. If VLC showed the audio was 340 ms early, you'd enter -340 here. This is the simplest fix for remux-related sync issues. When the drift gets progressively worse, it's almost always a frame rate issue. The most reliable fix is to set the output frame rate explicitly instead of leaving it on 'Auto'. In the 'Video Settings' area of the Advanced Options, change the Frame Rate dropdown from 'Same as source' to the exact value your target platform requires—23.976 for most films, 25 for PAL, 29.97 for NTSC. Locking the frame rate forces a stable relationship between video frames and audio samples. If your source footage is from an iPhone or an OBS screen recording, you're probably dealing with VFR. CocoConvert's 'Normalize Frame Rate' toggle, found in the same Video Settings section, is designed for this. Enable it before converting. This process converts the variable-rate stream to a constant one, eliminating the main cause of creeping drift from smartphone footage. It adds a little processing time, but it's well worth it. Here's one place where you might need another tool. CocoConvert doesn't currently have exposed controls for codec priming delay compensation. That specific, tricky issue caused by AC3-to-AAC latency differences (256 vs. 1024–2048 samples) is hard to fix automatically. You can try to compensate with a manual offset in the Audio Delay field after testing, but for a perfect fix, you may need a desktop tool like HandBrake, which has explicit handling for this.

When CocoConvert Isn't the Right Tool for the Job

Let's be honest: while CocoConvert is powerful, it's not a magic bullet for every single sync issue. Some problems demand the kind of frame-by-frame surgery that a cloud conversion service just isn't built for. Reaching for the wrong tool is a recipe for wasted time and frustration. If your sync drift is non-linear—meaning the audio and video drift apart and then come back together, or the rate of drift changes mid-video—you're looking at a corrupted timecode track. This is common with footage captured from faulty equipment, old VHS digitizations, or files that were interrupted during transfer. To fix it, you need a tool that can retime individual segments, like a professional NLE such as DaVinci Resolve (which has a great free version) or the Avisynth scripting engine. CocoConvert applies a single constant offset across the entire file; it cannot fix variable drift. High-end broadcast workflows can also present challenges. A 4K ProRes file with eight discrete audio channels, for instance, needs precise channel mapping during conversion. A general-purpose tool might not preserve this mapping, creating what looks like a sync problem but is actually a channel routing error. For that level of control, you really need to use ffmpeg on the command line or Adobe Premiere's Media Export dialog. What about batch jobs? If you have dozens of files that all have the same known offset—a common scenario when converting a season of a TV show ripped from a single source—CocoConvert's batch upload with shared Advanced Settings works beautifully. But if each file has a different, unique offset, setting them individually online is tedious. In that case, a local ffmpeg script is far more practical. The point isn't that CocoConvert has limitations. It's that sync problems span a wide spectrum of complexity, and the real skill is matching the right tool to the problem to get your file fixed and delivered.

Using FFmpeg to Apply Precise Audio Offsets

If you're comfortable with a command line, ffmpeg is the ultimate weapon for sync correction. It's free, runs everywhere, and offers surgical control without needing a full-blown video editor. Best of all, it can often fix sync issues in seconds by just rewriting the file container, not re-encoding the whole video stream. The key command for applying a constant audio delay is: ``` ffmpeg -i input.mp4 -itsoffset 0.340 -i input.mp4 -map 0:v -map 1:a -c copy output.mp4 ``` Here, `0.340` represents a 340 ms audio delay. The magic part is `-c copy`, which tells ffmpeg to copy both streams without re-encoding. This is incredibly fast; a 10 GB file can be fixed in less than 30 seconds. To make the audio appear *earlier*, you apply the offset to the video stream instead: ``` ffmpeg -itsoffset 0.340 -i input.mp4 -i input.mp4 -map 0:v -map 1:a -c copy output.mp4 ``` To fix VFR footage by converting it to CFR, ffmpeg's `fps` filter is what you need: ``` ffmpeg -i input.mp4 -vf fps=29.97 -c:v libx264 -crf 18 -c:a copy output.mp4 ``` This command does have to re-encode the video (it's unavoidable when changing frame rates), so you'll want to set a quality level with `-crf`. A value of 18 is near-lossless, 23 is a solid default, and 28 is fine for smaller web videos. If the command line isn't your thing, HandBrake provides a friendly graphical interface for most of these same ffmpeg functions. Under the Audio tab, its 'Track Offset' field accepts millisecond values. In the Video tab, the 'Frame Rate' dropdown lets you set CFR explicitly. HandBrake even offers a 'Peak Framerate (VFR)' option that can handle some variable-rate sources more gracefully. Once you've created a corrected file locally with ffmpeg or HandBrake, you can then upload that fixed version to CocoConvert for any other format changes. Since the underlying sync problem is solved, subsequent conversions will be clean.

Preventing Sync Problems Before They Start

An ounce of prevention is worth a pound of cure, especially with video sync. Anyone who has spent an afternoon fighting a stubborn sync issue knows the pain. A few simple habits during recording and file management can save you from ever having to fix these problems. First and foremost, always shoot in Constant Frame Rate (CFR) if your camera or software gives you the option. On an iPhone with iOS 14 or later, go to Settings > Camera > Record Video and disable 'Auto FPS'. On Android, this setting is usually in the camera app's Pro or Manual video mode. For screen recording with OBS, set the Output Frame Rate in Settings > Video to a fixed value—30 or 60—and ensure 'Common FPS Values' is selected. When exporting from a video editor, choose a format that preserves timing metadata cleanly. H.264 or ProRes from Adobe Premiere or DaVinci Resolve, with 'Match Source' frame rate settings, are safe bets. It's wise to avoid exporting to formats with known metadata issues, like older AVI containers, if you plan to convert the file again later. This one seems obvious, but it's a common and painful mistake: don't delete your original file after conversion! Always keep the source until you've verified that the final output plays perfectly on your target device or platform. The preview in a web converter sometimes uses a different decoder and might not reveal a problem that shows up on a TV or tablet. Finally, test a short clip before committing to a long conversion. Upload just the first minute or two of your file, convert it, and check the sync in VLC. Once you have confirmed settings, apply them to the full-length file. This simple step takes an extra three minutes and can save you hours of re-rendering.

Quick Reference: Sync Problem to Solution

Let's boil it all down. Here's a quick cheat sheet to take you from a specific symptom to the right fix. Figure out which of these describes your problem, and you'll know exactly what to do. * **Constant offset (audio always early or late):** Use CocoConvert's 'Audio Delay' field in Advanced Options, or ffmpeg's `-itsoffset` flag. This is the fastest fix, especially using ffmpeg with `-c copy` to avoid re-encoding. * **Drift grows over time (from smartphone/screen recording):** This is almost always a VFR issue. Enable 'Normalize Frame Rate' in CocoConvert's Advanced Options. Alternatively, pre-process the file with ffmpeg's `fps` filter to create a clean CFR version before you upload. * **Drift grows over time (from film/broadcast rip):** You have a frame rate mismatch (e.g., 23.976 vs. 24). In CocoConvert's Video Settings, explicitly set the output frame rate to match the original standard. * **Audio drifts irregularly (drifts and recovers):** This is non-linear drift from a corrupted file. CocoConvert cannot fix this. You need a video editor with re-timing tools, like DaVinci Resolve or Avisynth. * **Sync breaks only after an MKV-to-MP4 remux:** The original MKV likely had a stored audio delay that was lost. Use VLC (Tools > Media Information > Codec) to find the delay value in the source file, then enter that number into CocoConvert's 'Audio Delay' field. * **First few seconds are off, then sync corrects:** This is a classic codec priming delay, usually from an AC3-to-AAC conversion. Apply a small negative audio delay (try -50 ms to -100 ms as a start) or use HandBrake's 'Track Offset' for more control. If your problem doesn't fit neatly into one of these boxes, fall back on the diagnostic process. Use VLC to find your exact offset number. Once you have that number, the right solution is usually straightforward.