3

我正在使用AVCaptureSession将视频捕获到电影文件中。我想获得电影第一帧和最后一帧的确切时间戳。我该怎么做呢?

AVCaptureFileOutputRecordingDelegate中,该方法captureOutput(_:didStartRecordingToOutputFileAtURL:fromConnections:)在电影录制开始时调用,但对于我的目的来说太不准确了,录制结束时的回调也是如此。我需要帧的确切时间戳。

AVCaptureVideoDataOutputSampleBufferDelegate中,该方法captureOutput:didOutputSampleBuffer:fromConnection:每帧调用一次,可用于访问帧的显式时间戳信息,因此应该非常准确。

不幸的是,您似乎无法将捕获会话配置为同时录制到视频文件并提供原始样本数据,因此我无法在捕获到文件的同时使用它来获取帧时间戳。

或者有什么方法可以同时使用它们吗?还是我错过了另一个我可以使用的 API?

4

1 回答 1

0

FWIW,我就这个问题向 Apple 提出了开发者技术支持票,以获得最终答案。

Apple 工程师确认无法同时访问这两个 API。因此,如果您想要准确的时间戳并录制视频文件,那么您需要自己遵守AVCaptureVideoDataOutputSampleBufferDelegate并构建文件。

于 2016-04-29T03:55:15.803 回答