繁体   English   中英

CMSampleBuffer的示例呈现时间代表什么?

[英]What does a CMSampleBuffer's sample presentation time represent?

我们的应用程序正在使用AVFoundation来捕获视频,使用其样本缓冲区显示,操作和导出视频。 我试图了解CMSampleBufferGetPresentationTimeStamp(_:) CMTime实际代表什么。

例如,开始视频捕获时,第一个样本的演示时间为93小时5分钟。 我不明白这个价值从何而来。 使用第一个样本的演示时间来启动AVAssetWriter会话会在视频播放开始之前创建93个小时的黑框。

它基于马赫时间,这意味着上次重新启动的滴答数。 您可以使用以下代码创建此类CMTime:

  mach_timebase_info_data_t timeInfo;
  mach_timebase_info(&timeInfo);
  CMTime time = CMTimeMake(mach_absolute_time() * timeInfo.numer / timeInfo.denom, 1000000000);

或使用它来将其转换为秒数。
double seconds = CACurrentMediaTime();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM