ユーザーがWebカメラからビデオを録画できるようにするアプリケーションがあります。ユーザーは3つのクリップを録画し、それらを1つのビデオに結合して再生します。
MP4に変換した後、3番目のクリップのオーディオとビデオが同期しないことがあるという問題があります。
プロセスが現在どのように機能するかを次に示します-
Mencoderを使用してAVIビデオファイルを結合し、その間にトランジションビデオを挿入して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として正常に再生されます。
ffmpegバッチファイルを使用してAVIをMP4に変換します。
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のコマンドラインツールを使用してプログラムで(ビデオ編集GUIソフトウェアを使用せずに)実行する必要があります。
これがサンプルのaviファイルとmp4ファイルです。オーディオ/ビデオの同期は1:03マーク付近で行われます。AVIは同期が外れませんが、mp4は同期が外れます。
http://trtemp.s3.amazonaws.com/new.avi
http://trtemp.s3.amazonaws.com/new.mp4
誰かがこれを修正するための提案がありますか?