我有一个应用程序可以让用户从他们的网络摄像头录制视频。用户录制 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 正常播放。
使用 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
有没有人有任何建议来解决这个问题?