CMTime的时间刻度部分是什么?

时间:2013-05-18 20:30:57

标签: cocoa-touch cocoa avfoundation

我一直在查看与创建CMTime相关的文档。所有函数(CMTimeMake()CMTimeMakeWithSeconds()等)都会使用第二个名为preferredTimeSale的参数。

有人可以向我解释这是什么,以及为什么以这种方式指定它?

1 个答案:

答案 0 :(得分:7)

根据opening paragraphs of Apple's CMTime documentation

  

CMTime表示为有理数,带有分子(a   int64_t value)和分母(int32_t时间刻度)。   从概念上讲,时间刻度指定了每秒的分数   分子中的单位占用。因此,如果时间刻度是4,则每个单位   代表四分之一秒;如果时间刻度是10,每个单位   代表十分之一秒,依此类推。除了简单   时间值,CMTime可以表示非数字值:+无穷大,    - 无限,无限期。使用标志CMTime表示时间是否在某个时间点被舍入。

因此,如果时间刻度为4,则每个单位时间测量单位为四分之一秒。

如果您的时间刻度为1,那么每个单位的时间测量单位都是一秒钟(但对于您的用户而言,这可能是一个非常慢的动画)。

Many video formats use a timescale of 600

  

您经常使用600的时间刻度,因为这是一个常见的倍数   几种常用的帧速率:每秒24帧(fps)   电影,NTSC(用于北美和日本的电视)的30 fps,以及25   PAL的fps(用于欧洲的电视)。使用600的时间刻度,你可以   准确地表示这些系统中的任意数量的帧。