ffmpeg声音与-concat或-ss不同步

时间:2011-09-12 12:53:24

标签: ffmpeg sync avi concat out

我有一个工具可以从3D应用程序中吐出视频,然后对各个视频进行连接以生成序列。但声音似乎在序列中不同步(个别文件很好)并且它在VLC和Quicktime中断断续续。 Windows媒体播放器似乎可以处理它,但它仍然不同步。我有两个senarios,一个工作,一个没有,但我需要两个工作:

工作:
已经创建了movs ...

转换为avi:
os.system( ffmpeg + " -i C:\clip.mov -sameq -r 24 -y C:\clip.avi")

与avi序列连接:
os.system( ffmpeg + ''' -i concat: C:\clip.avi|C:\clip1.avi|C:\clip2.avi -sameq -r 24 -y C:\sequence.avi''' )

将序列转换为mov:
os.system( ffmpeg + " -i C:\sequence.avi -sameq -r 24 -y C:\sequence.mov")

不工作 从3D程序中创建单独的avi ...

减少到正确的长度:
os.system(ffmpeg + " -i C:\clip.avi -sameq -r 24 -ss " + startTime + " -vframes " + totalFrames + " -y C:\clip.avi" )

与avi序列连接:
os.system( ffmpeg + ''' -i concat: C:\clip.avi|C:\clip1.avi|C:\clip2.avi -sameq -r 24 -y C:\sequence.avi''' )

将序列转换为mov: os.system( ffmpeg + " -i C:\sequence.avi -sameq -r 24 -y C:\sequence.mov")

将单个avi转换为mov: os.system( ffmpeg + " -i C:\clip.avi-sameq -r 24 -y C:\clip.mov")

请告诉我哪里出错了?

1 个答案:

答案 0 :(得分:3)

在切割过程中转变为“-sameq”标志。它搞乱了音频所以我刚刚改变了

os.system(ffmpeg + " -i C:\clip.avi -sameq -r 24 -ss " + startTime + " -vframes " + totalFrames + " -y C:\clip.avi" )

os.system(ffmpeg + " -i C:\clip.avi -sameq -r 24 - acodec pcm_s16le -ss " + startTime + " -vframes " + totalFrames + " -y C:\clip.avi" )

- 强制ffmpeg使用pcm_s16le作为音频编解码器而不是-sameq正在使用的不同步...并修复了它!

希望这可以帮助别人。