I have an application that lets users record video from their webcams. The users record 3 clips, which are then combined into one video for playback.
I am having issues with the audio and video on the third clip sometimes being out of sync after converting to MP4.
Here's how the process works now-
Combine AVI video files and insert transition videos in between using Mencoder to combine avi files.
mencoder.exe -oac copy -ovc copy -idx -o test.avi c:\temp\*.avi
I get this error:
Muxer frame buffer cannot allocate memory!
1 duplicate frame(s)!
1 duplicate frame(s)!
1 duplicate frame(s)!
1 duplicate frame(s)!
1 duplicate frame(s)!
1 duplicate frame(s)!
However, the video is combined to avi and this AVI plays back without any audio sync issues.
Reindex using mencoder
mencoder.exe -idx TEST.AVI
The video still plays fine at this point as an AVI.
Convert the AVI to MP4 using ffmpeg batch file:
set FFMPEG_DATADIR=c:\Presets
ffmpeg.exe -i "test.avi" -s 640x480 -y -strict experimental -acodec aac \
-ab 128k -ac 2 -ar 48000 -vcodec libx264 -vpre medium -vpre ipod640 -r 24 \
-g 48 -b 520000 -threads 64 "out.mp4"
This all has to be done programmatically (no video editing GUI software) using command line tools in Windows.
Here are sample avi and mp4 files. The audio / video sync happens around the 1:03 mark. AVI doesn't get out of sync, while the mp4 does.
http://trtemp.s3.amazonaws.com/new.avi
http://trtemp.s3.amazonaws.com/new.mp4
Does anyone have any suggestions to fix this?