将wav和mp4与ffmpeg合并时,音频 - 视频同步漂移缓慢

时间:2016-05-25 12:18:39

标签: audio video ffmpeg synchronization

我有mp4个文件,只有一个视频流(没有音频)和wav音频文件,我想使用ffmpeg添加到视频中。音频和视频在会议期间同时录制,前者来自PC上的混音器输出,后者来自数码摄像机。

我正在使用此ffmpeg命令:

ffmpeg -i incontro3.mp4 -itsoffset 18.39 -i audio_mix.wav -c:v copy -c:a aac final-video.mp4

我正在使用-itsoffset 18.39选项,因为我知道18.39s是视频 - 音频延迟。

我遇到的问题是输出文件中的问题,而音频与开头的视频完全同步,在电影中慢慢失去同步

视频文件中的ffprobe输出为:

Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'incontro3.mp4':
  Metadata:
    major_brand     : isom
    minor_version   : 512
    compatible_brands: isomiso2avc1mp41
    encoder         : Lavf57.25.100
  Duration: 00:47:22.56, start: 0.000000, bitrate: 888 kb/s
    Stream #0:0(und): Video: h264 (High) (avc1 / 0x31637661), yuv420p, 1280x720 [SAR 1:1 DAR 16:9], 886 kb/s, 25 fps, 25 tbr, 12800 tbn (default)
    Metadata:
      handler_name    : VideoHandler

并且音频文件的ffprobe输出为:

Input #0, wav, from 'audio_mix.wav':
  Metadata:
    track           : 5
    encoder         : Lavf57.25.100
  Duration: 00:46:32.20, bitrate: 1411 kb/s
    Stream #0:0: Audio: pcm_s16le ([1][0][0][0] / 0x0001), 44100 Hz, 2 channels, s16, 1411 kb/s

我正在使用最新的ffmpeg Zeranoe windows build git-9591ca7(2016-05-25)。

感谢您对任何帮助/想法的期待!

UPDATE 1:看起来问题是视频 - 音频合并的上游,可能是由摄像机生成的MTS文件的连接和转换进入mp4视频。随着我在理解方面取得任何进展,我会跟进...

更新2:问题不在于相机生成的MTS文件的初始合并。或者,至少,如果我将它们与catffmpeg -f concat

合并,则会出现相同的情况

更新3:根据@Mulvya的建议,我观察到漂移率是恒定的(至少就我所判断的而言是可以判断的)。我还试图用另一个软件叠加A / V轨道,漂移完全相同,从而排除了ffmpeg作为罪魁祸首。我(坏)的感觉是问题可能与数码摄像机的内部时钟和用于录音的笔记本电脑的运行速度略有不同(请参阅here我刚发现的同一问题的报告)

1 个答案:

答案 0 :(得分:2)

由于漂移率恒定,您可以使用FFmpeg滤波器的组合来重新定时音频。

ffmpeg -i audio_mix.wav -af asetrate=44100*(10/9),aresample=44100 retimed.wav

此处,44100*(10/9)表示实际的号码。表示1秒声音的样本,即如果在原始WAV重放100秒后,刚刚听到的音频是第90秒,那么样本消耗率应该增加10/9。这将产生非常规的采样率,因此添加了样本以将其重新采样回标准费率。