AVCaptureSession和AVCaptureMovieFileOutput帧时间戳

时间:2012-12-03 23:09:38

标签: ios ipad avcapturesession avcapturemoviefileoutput

我正在用AVCaptureSession和AVCaptureMovieFileOutput录制一部电影。我还记录加速度数据并尝试将加速度数据与视频对齐。

我正试图找出一种方法来获取视频文件录制开始的时间。我正在做以下事情:

currentDate = [NSDate date];
[output startRecordingToOutputFileURL:fileUrl recordingDelegate:self];

然而,根据我的测试,视频录制在调用startRecordingToOutputFileURL之前0.12秒开始。我假设这是因为各种视频缓冲区已经充满了添加到文件中的数据。

无论如何都要获得视频第一帧的实际NSDate?

1 个答案:

答案 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
 }