Временная метка кадра AVCaptureSession и AVCaptureMovieFileOutput
Я записываю фильм с AVCaptureSession и AVCaptureMovieFileOutput. Я также записываю данные ускорения и пытаюсь выровнять данные ускорения с видео.
Я пытаюсь выяснить, как начать запись видеофайлов. Я делаю следующее:
currentDate = [NSDate date];
[output startRecordingToOutputFileURL:fileUrl recordingDelegate:self];
Однако, согласно моим тестам, видеозапись начинается за 0,12 секунды до начала вызоваRecordingToOutputFileURL. Я предполагаю, что это связано с тем, что различные видеобуферы уже заполнены данными, которые добавляются в файл.
В любом случае, чтобы получить фактический NSDate первого кадра видео?
Ответы
Ответ 1
Если я правильно понял ваш вопрос, вы хотите узнать временную метку, когда записывается первый кадр. вы можете попробовать
CMTime captureStartTime = nil;
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection {
if !captureStartTime{
captureStartTime = CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
}
// do the other things you want
}