Ios 什么是CMSampleBuffer';什么样的演示时间代表什么?
我们的应用程序使用AVFoundation捕获视频、显示、操作,并使用其示例缓冲区导出视频。我试图理解Ios 什么是CMSampleBuffer';什么样的演示时间代表什么?,ios,swift,avfoundation,avassetwriter,Ios,Swift,Avfoundation,Avassetwriter,我们的应用程序使用AVFoundation捕获视频、显示、操作,并使用其示例缓冲区导出视频。我试图理解CMSampleBufferGetPresentationTimeStamp(:)CMTime实际上代表什么 例如,当视频捕获开始时,第一个示例的演示时间为93小时5分钟。我不明白这个值是从哪里来的。使用第一个示例的演示时间启动AVAssetWriter会话会在视频播放开始前创建93小时的黑色帧。它基于马赫时间,即上次重新启动后的滴答数。您可以使用以下代码创建此类CMTime: mach_t
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()
您能发布示例CMTime
返回值为93小时吗?@JAL以下是以秒为单位的表示:347851.930463783
。。。CMTime表示:{value=347957883945123,timescale=100000000}
谢谢您的回答!它满足了我的需要:)。但是你能再解释一下你在那里使用的公式吗?为什么时间尺度是100000000。