当我使用CMSampleBufferGetPresentationTimeStamp获取视频帧的演示时间戳时:
CMTime pts = CMSampleBufferGetPresentationTimeStamp(sampleBuffer);
NSLog(@"pts: %+.3f", CMTimeGetSeconds(pts));
打印的时间戳记不是从0开始,而是几乎等于
[[NSProcessInfo processInfo] systemUptime]
。这是否意味着时间戳是通过iOS中较低的实现从systemUptime生成的?否则,时间戳记从何而来? 最佳答案
我认为它来自iOS上的 mach_absolute_time()
。
但是,您可以通过从所有缓冲区中减去第一个CMSampleBufferGetPresentationTimeStamp(firstBuffer)
来使时间戳为零。