从 MPEG TS 中提取 PCR 时间值

extract PCR time value from MPEG TS

我正在尝试从 MPEG-TS 数据包中提取 PCR 时间值。根据 wiki,PCR 包含 33+6+9 个位数,并且还声明前 33 位基于 90 kHz 时钟,而后 9 位基于 27 MHz 时钟。当启用 PCR 标志时,我提取适应字段字节之后的位。

问题是,如何通过考虑各自的时钟频率值,用我拥有的这 48 (33+6+9) 位计算 PCR 时间戳值。

谢谢。

PCR(i) = PCR_base(i)*300 + PCR_ext(i)

其中 (i) 是包含 program_clock_reference_base 字段最后一位的字节的索引。

来源:

根据您的应用程序所需的精度,您可以仅使用 90kHz 时钟。 27Mhz分量用于检测广播环境中的漂移。