我正在用AVCaptureSession和AVCaptureMovieFileOutput录制一部电影。我还记录加速度数据并尝试将加速度数据与视频对齐。
我正试图找出一种方法来获取视频文件录制开始的时间。我正在做以下事情:
currentDate = [NSDate date];
[output startRecordingToOutputFileURL:fileUrl recordingDelegate:self];
然而,根据我的测试,视频录制在调用startRecordingToOutputFileURL之前0.12秒开始。我假设这是因为各种视频缓冲区已经充满了添加到文件中的数据。
无论如何都要获得视频第一帧的实际NSDate?
答案 0 :(得分:0)
如果我正确地得到你的问题,你想知道记录第一帧的时间戳。你可以尝试
CMTime captureStartTime = nil;
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {
if !captureStartTime{
captureStartTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
}
// do the other things you want
}