Make sure that you are using a CONSTANT bitrate for the mp3 audio.
Ok, I'm going to break this down step by step to make it easy to understand, because it's freakin' messed up.
First of all, here's what I need to do: I need to take a MOV video file and convert it to DIVX, which I have no problem in doing. The final video needs to be at 605Kbps video, with 44.1K/112Kbps (or 44.1K/128Kbps) MP3 or WAV Audio, resulting in about a 55-60MB video.
The Video and Audio in the MOV file match up like they should without any problems. There is no lag in the video or the audio at all. But, when I go to covert the video and audio to DIVX/MP3, there is over a 1 second differece between the video and the audio, with the video running ahead of the audio.
So, I tried many different techniques to combat this.
I currently use RiverPast Video Cleaner 126.96.36.199924 (to convert the MOV to AVI), Sound Forge 7.0 (to convert the WAV to MP3) and Virtual Dub 1.5.10 (to convert the AVI to DIVX AVI and to merge the audio).
I converted the MOV to AVI using the RiverPast video cleaner and converted the audio to PCM/Uncompressed. The video was encoded in DivX, although not in the best form. The resulting video playback was perfect. The audio and the video were running together just fine... although the file size was 175MBs (I need about 50-60MBs). (Let's call this FILE 1)
So, I use Virtual Dub to compress the video and audio. In doing so, I achieve the 55MB file size... but the audio is nearly 1 second off from the video.
So, I started over. I put FILE 1 into SoundForge and extracted the video and the audio, resulting in a soundless 6.4GB video file, and a 9MB audio file. I then used Virtual Dub to compress the video file down to 44MB, and used SoundForge to convert the audio to MP3. I then used VirtualDub to merge the two files together... and still the audio and video are off.
Now, here's the catch: I tested the audio and video files I created (The large 6.4GB video and the 9MB audio). I placed the audio file into WinAMP and placed the Video file into Media Player. I clicked PLAY on both programs at almost the same time (with a quick Pause then Play on Media Player I was able to get the audio and the video to match up perfectly between the two programs). I played the video completely through, with Winamp playing the audio. After about 2 minutes into the video, Winamp's timer was reading about 500ms off of Media Player's... then it would go back together again for about 10 seconds, then Winamp's and Media Player's would be exactly 1 second off from each other... but the video and the audio still match up perfectly!
Running the entire video like this (about 10 minutes), by the end of the video the timer of Winamp was about 5 seconds behind Media Player, and Media Player stopped before Winamp did. But the entire time, the video and the audio remained perfectly in tune.
Here's the second catch: BOTH the Video and the Audio are exactly 10.09.94 long (10 minutes, 9.94 seconds).
Any idea? I though maybe the frame rate was buggy, but there is no constant gain or loss through the video (I'm still running some frame rate tests to show if there is any change in frame rate though the video that I can't see... still working on that though).
This is a tough one I think... I appreciate any help
I have checked the audio, and it is a constant bit rate, not variable.
Somehow I've gotten it to work. I've been working on it for several days now and somehow it works...
I took the original MOV and opened the file using Sound Forge. I saved the video and audio as Uncompressed (both the video and audio), then closed the entire program and opened it again, then I opened the uncompressed file. I then compress the video to DivX at 605kbps, but left the audio completely uncompressed. That created about a 160MB file. Then, using Virtual Dub, I did a direct stream copy on the video, but compressed the audio to Fraunhofer IIS MP3, 44.1k/128kbps. For some reason, that combination works.
Thanks for your help though. You brought out a point about something I forgot to check (It wasn't the problem, but it could've been )