我正在使用AVCaptureSession
将视频捕获到电影文件中。我想获得电影第一帧和最后一帧的确切时间戳。我该怎么做呢?
在AVCaptureFileOutputRecordingDelegate
中,该方法captureOutput(_:didStartRecordingToOutputFileAtURL:fromConnections:)
在电影录制开始时调用,但对于我的目的来说太不准确了,录制结束时的回调也是如此。我需要帧的确切时间戳。
在AVCaptureVideoDataOutputSampleBufferDelegate
中,该方法captureOutput:didOutputSampleBuffer:fromConnection:
每帧调用一次,可用于访问帧的显式时间戳信息,因此应该非常准确。
不幸的是,您似乎无法将捕获会话配置为同时录制到视频文件并提供原始样本数据,因此我无法在捕获到文件的同时使用它来获取帧时间戳。
或者有什么方法可以同时使用它们吗?还是我错过了另一个我可以使用的 API?