У меня есть приложение, которое позволяет пользователям записывать видео со своих веб-камер. Пользователи записывают 3 клипа, которые затем объединяются в одно видео для воспроизведения.
У меня проблемы с аудио и видео на третьем клипе, которые иногда не синхронизируются после преобразования в MP4.
Вот как этот процесс работает сейчас -
Объедините видеофайлы AVI и вставьте видео переходов между ними, используя Mencoder для объединения AVI-файлов.
mencoder.exe -oac copy -ovc copy -idx -o test.avi c:\temp\*.avi
Я получаю эту ошибку:
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)!
Однако видео комбинируется с avi, и этот AVI воспроизводится без каких-либо проблем с синхронизацией звука.
Переиндексация с использованием mencoder
mencoder.exe -idx TEST.AVI
На этом этапе видео по-прежнему воспроизводится как AVI.
Преобразование AVI в MP4 с использованием пакетного файла ffmpeg:
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"
Все это должно быть сделано программно (без программного обеспечения для редактирования видео) с использованием инструментов командной строки в Windows.
Вот примеры файлов avi и mp4. Синхронизация аудио / видео происходит около отметки 1:03. AVI не выходит из синхронизации, в то время как MP4 делает.
http://trtemp.s3.amazonaws.com/new.avi
http://trtemp.s3.amazonaws.com/new.mp4
У кого-нибудь есть предложения, чтобы это исправить?