我有直播视频,CMSampleBufferGetSampleTimingInfo
为视频提供CMTime(value=0, timescale=0)
的持续时间。
对于音频,我一次获得1024个样本,但CMSampleBufferGetSampleTimingInfo(sampleBuffer, index, &timingInfo)
为样本中的每个索引提供完全相同的presentationTimeStamp。
如何在视频帧的实时流中准确获取持续时间信息,以及如何在CMSampleBufferRef
中获取音频样本的实际时间?
答案 0 :(得分:1)
您只能依赖presentationTimeStamp
s,因此在下一帧到达之前您无法知道当前视频帧的持续时间。这对于实时流是有意义的,因为捕获帧速率是可变的并且取决于照明等,但是当样本缓冲区来自文件时,这似乎也是正确的。
持续时间可以这样计算:
CMTimeSubtract(timingInfoNext.presentationTimeStamp, timingInfoCurrent.presentationTimeStamp)