정확한 타임 스탬프로 비디오 녹화를 시작하려고합니다.정확한 타임 스탬프로 녹화 시작
발견 된 방법을 사용하여 각 프레임의 타임 스탬프를 얻을 수있었습니다 : here 및 here.
- (void)captureOutput:(AVCaptureOutput *)captureOutput didOutputSampleBuffer:(CMSampleBufferRef)sampleBuffer fromConnection:(AVCaptureConnection *)connection{
CMTime time = CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
...
// check if time > timestampToStart, use these frames
}
이렇게하면 지정한 타임 스탬프 뒤에 오는 프레임 만 사용할 수 있습니다.
문제는 그 timstampToStart하지만 timstampToStart에서 정확하게 없습니다 사용되는 첫 번째 프레임 플러스 0-1/FPS (보통 FPS = 24) 사이에있을 수있는 작은 간격.
가 어떻게 사용되는 첫 번째 프레임은 당신이 시간이 중요한 기능을 필요로 할 때 내가
답변 해 주셔서 감사합니다. 그러나, 나의 경우에는 "당신의 일들"은 시간이 걸리는 것과 같습니다.이 방법은 내 녹화 된 비디오의 첫 번째 프레임을 정확하게 원하는 타임 스탬프로 만들지 않을 것입니다. – Nilsymbol
그런 다음 'sleepUntilDate' 호출 전에 수행하십시오 –
버퍼 스트림은 avcapturesession에서 비롯되며 불행히도 이런 식으로 "일시 중지 가능"하지 않습니다. – Nilsymbol