MP4 Audio Out of Sync After Joining? The VFR Problem and Its Fixes
Each clip sounded fine on its own, but in the joined file the voices drift away from the lips — a little at first, worse toward the end. This is one of the most reported join problems, and it has a specific main cause: variable frame rate video from phones and screen recorders. Here is why it happens and the fixes in the order to try them.
The main cause: variable frame rate (VFR) sources
Phones and screen-recording software rarely record at a perfectly steady frame rate. They record at a variable frame rate — speeding up and slowing down with the scene and the device’s load — while the audio runs on its own steady clock. Each clip keeps itself in sync internally, but the timing assumptions differ from clip to clip.
MP4Joiner’s default mode copies streams directly into one container (see joining without re-encoding). A direct copy pastes those differing timing bases back to back. Small timing differences that were invisible inside one clip accumulate across a long joined file, so the drift grows the further you watch — the classic signature of a VFR sync problem. The same mismatch family also explains outright failures; the general background is in MP4Joiner not working.
Fix 1: re-join with force re-encoding
The first thing to try costs nothing. Enable MP4Joiner’s force re-encoding option and join the same clips again. Re-encoding decodes every clip and writes one uniform output stream instead of pasting the originals together, which resolves many sync cases — particularly when the drift comes from clips that simply differ in frame rate or encoding parameters. Test the result around each join point and near the end of the file, where drift is worst. It is slower than a copy and not lossless, but if it syncs, you are done.
Fix 2: convert VFR to constant frame rate first
If force re-encoding still drifts, the durable fix is to normalise the sources before joining: convert each VFR clip to a constant frame rate (CFR) version with a converter, using a standard rate such as the one your footage mostly targets. Once every clip runs on the same steady clock — same frame rate, same resolution, same audio format — MP4Joiner can join the converted set with a plain direct copy, quickly and losslessly from that point on. This “convert first, then copy-join” route is also the pattern behind joining files with different resolutions: make the clips agree, and the join becomes trivial.
Prevention for next time: if your recording app offers a constant frame rate or “compatibility” mode, use it for footage you plan to join. Screen recorders and phone cameras set to a fixed rate produce clips that join cleanly from the start.
When the free route isn’t enough
To be straightforward about MP4Joiner’s limits: it is a joiner with a re-encoding fallback, not a timing-repair tool. If a set of clips still won’t sync after re-encoding and CFR conversion — heavily damaged timing, mixed professional sources — a full converter-editor that rebuilds timing during conversion is the more capable instrument. Wondershare UniConverter (affiliate link — we may earn a commission at no extra cost to you) is the paid option we point readers to for that case: it converts and joins in one pass with explicit frame-rate control. Try the free fixes above first; they cover the large majority of phone and screen-recording sets. If your problem is instead missing audio entirely, see joined MP4 has no sound, and if the file won’t open at all, see joined MP4 won’t play.
