跳转到内容

时间

时间

有两种不同的时间表示方式:scale over sampleSizeticks


scale over sampleSize

第一种时间表示方式使用 value/scale/sampleSize 组件,这些组件可以分开使用,也可以组合在 TDB_TimeRecord 结构中。scale over sampleSize 定义了时间基准。例如,要表示 NTSC 标准的 29.97 帧每秒,scale / sampleSize = 30000 / 1001。要表示 PAL 标准的 25 帧每秒,25 / 1。

要表示 24p 标准的 23.976,23976 / 1000,或 24000 / 1001。要表示大多数其他时间基准,使用 sampleSize = 1,scale 是帧速率(例如 15、24、30 fps 等)。另一种理解 scale 和 sampleSize 的方式是,sampleSize 是视频帧的持续时间,而 scale 是视频一秒钟的持续时间。

value 是以 scale over sampleSize 给出的时间基准中的时间。因此,例如,30 帧且 sampleSize 为 1001 的 value 为 30030。

要将 value 转换为秒,除以 scale。要将 value 转换为帧,除以 sampleSize

有时,在处理纯音频媒体时,sampleSize 指的是音频样本,且 sampleSize = 1。在这种情况下,scale 是音频采样率(22050、32000、44100、48000 Hz 等)。


PrTime

API 中较新的部分使用基于 ticks 的时间值,该值存储在有符号的 64 位整数中。使用这种新格式的变量类型为 PrTime。当帧速率表示为 PrTime 时,帧速率是帧持续时间内的 ticks 数量。

每秒的 ticks 数量必须使用 Time Suite 中的回调函数来获取。此速率在应用程序运行期间保证是恒定的。