WebRTC中的时间戳缩放类用于将外部时间戳转换为内部时间戳,或者将内部时间戳转换为外部时间戳。
内部 / 外部时间戳概念
外部时间戳即为RTP携带的时间戳字段,它表示RTP报文发送的时钟频率,在语音中通常等于pcm语音的采样率(RTP携带Opus编码时 时钟频率设置为固定的48kHz,而采样率可以有很多值),在视频中无论是哪种是视频编码,外部时间戳(时钟频率)都设置为固定的90kHz。
外部时间戳转换为内部时间戳就是将外部时间戳按照采样率缩放。设初始内部时间戳为0,则
内部时间戳 += 外部时间戳间隔 * ( 采样率 / 外部时间戳 )
相反,用内部时间戳转换为外部时间戳就是按照采样率扩大。设初始外部时间戳为0,则
外部时间戳 += 内部时间戳间隔 * ( 外部时间戳 / 采样率 )