12

AVCaptureSession と AVCaptureMovieFileOutput で動画を録画しています。また、加速度データを記録し、加速度データをビデオに合わせようとしています。

ビデオファイルの記録が開始された時間を取得する方法を見つけようとしています。私は次のことをしています:

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

ただし、私のテストによると、ビデオ録画は startRecordingToOutputFileURL の呼び出しが行われる 0.12 秒前に開始されます。これは、さまざまなビデオ バッファーが、ファイルに追加されるデータで既にいっぱいになっているためだと思います。

ビデオの最初のフレームの実際の NSDate を取得する方法はありますか?

4

2 に答える 2

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
 }
于 2015-12-08T17:40:49.133 に答える