首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >尝试理解CMTime和CMTimeMake

尝试理解CMTime和CMTimeMake
EN

Stack Overflow用户
提问于 2010-10-23 08:01:52
回答 3查看 74.7K关注 0票数 158

1) CMTimeMake(1,10)表示时长为1秒,时间刻度为10帧/秒。这意味着10帧视频的持续时间为1秒?

2)

代码语言:javascript
复制
CMTime lastTime=CMTimeMake(1,10);
CMTime frameTime=CMTimeMake(1, 10);
CMTime currentTime=CMTimeAdd(lastTime, frameTime)

= (2,10)?

2秒的视频和每秒10帧的currentTime?

EN

回答 3

Stack Overflow用户

发布于 2010-10-23 08:16:55

1) CMTimeMake(1,10)实际上表示值为1,时间刻度为10。它们是分子和分母,所以它是1/10秒,而不是1秒。

2)结果将类似于CMTimeMake(2, 10),即十分之二秒。

票数 178
EN

Stack Overflow用户

发布于 2011-06-10 16:02:26

彼得是对的。下面的代码使这个概念更加清晰:

1)

代码语言:javascript
复制
Float64 seconds = 5; 
int32_t preferredTimeScale = 600;
CMTime inTime = CMTimeMakeWithSeconds(seconds, preferredTimeScale);
CMTimeShow(inTime);

上面的代码给出:{3000/600 = 5.000}

这意味着总持续时间为5秒,具有3000帧,时间尺度为每秒600帧。

2)

代码语言:javascript
复制
int64_t value = 10000;
int32_t preferredTimeScale = 600;
CMTime inTime = CMTimeMake(value, preferredTimeScale);
CMTimeShow(inTime);

这个给出了{10000/600 = 16.667}

这意味着总持续时间为16.667秒,具有600帧/秒的时间尺度的10000帧。

注意CMTimeMake(int64_t value,int32_t timescale)和CMTimeMakeWithSeconds(Float64 seconds,int32_t preferredTimeScale)之间的区别

希望这个解释能有所帮助。如果需要进一步的澄清,请不要犹豫,在这篇文章上发表进一步的问题。

票数 144
EN

Stack Overflow用户

发布于 2016-08-30 14:55:50

一个CMTime结构代表一个具有值和时间刻度字段的时间刻度( length of time that is stored as rational number. CMTime ),并代表时间值/时间刻度秒。

请参阅See this SO Answer which is clear

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4001755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档