2016-05-26 5 views
1

Я работаю с AvFoundation. Мне нужно точно измерить частоту кадров с камеры ios.Какие методы SampleBuffer следует использовать для измерения частоты кадров?

Алгоритм:

Частота кадров = 1/(time(f2)-time(f1)) = __ (кадров в секунду);

Где время (f2) - это время, когда приходит второй кадр, и (f1) - это время первого кадра. Как это сделать с помощью sampleBuffer?

ответ

1

Вам нужно позвонить CMSampleBufferGetPresentationTimeStamp(sampleBuffer)

что-то вроде этого (в быстры, немного неудобно, потому что я не мог найти CMTime 1/х):

let delta = CMTimeSubtract(CMSampleBufferGetPresentationTimeStamp(buf2), CMSampleBufferGetPresentationTimeStamp(buf1)) 

// awkward 1/x, beware that delta.value may overflow as a timescale 
// what's the right way? 
let frameRate = CMTime(value: CMTimeValue(delta.timescale), timescale: CMTimeScale(delta.value)) 

// maybe you want floating point instead of CMTime: 
let frameRateAsFloat64 = CMTimeGetSeconds(frameRate) 

 Смежные вопросы

  • Нет связанных вопросов^_^