AVCaptureMovieFileOutput音频/视频同步

时间:2015-10-06 00:30:43

标签: video avfoundation

我已经编写了一个小应用程序来使用AVCaptureMovieFileOutput捕获音频和视频,该应用程序运行良好。它用于自动收集多天的实验数据,偶尔打开,一次记录10-15秒。

但在分析数据时,我们发现音频和视频同步似乎有些偏差。为了帮助测试这一点,我们设置了一个闪烁LED和一个音调,并在几天内将其记录为短段。到第五天,音频产生了约250毫秒的延迟(不是很大,但在观看时却很明显)。下图显示了使用相同AVFoundation库回读的数据(以确保解码媒体时没有问题)。绘制视频的平均强度(以显示LED闪光),并在下面绘制原始音频。

Plot highlighting delay

这有些神秘,我希望能够找出导致这种情况的原因,以便我可以修复它或解决它。到目前为止,我的理论是:

  • 一个纯粹的硬件问题(我们使用的是NTSC加密狗),其中有关信号数字化或加密狗上的时钟的某些东西有某种偏斜或漂移。我不太了解要调查的硬件方面。

  • 与音频和视频的帧持续时间的计数有关的舍入问题,其中轻微的偏移随时间累积。如果是这种情况,我们可能会计算出预期的偏差并对其进行调整。

我意识到这是AVCaptureMovieFieldOutput使用的一个极端情况,但会重视其他人的反馈。

我怀疑这些代码是否具体,但往往是更广泛的实现细节。该代码与AVFoundation文档中的标准电影捕获示例密切相关,具有帧精确的开始时间。该项目位于GitHub

1 个答案:

答案 0 :(得分:0)

进一步的分析表明,这是我们使用的视频捕捉硬件中的一个特定缺陷,其内部时钟有一些漂移。在几天内从其他硬件捕获并没有表现出相同的增加延迟。

我目前的工作是增加的延迟似乎是线性的(每天约170毫秒),因此可以很好地预测。