从 MPEG TS 中提取 PCR 时间值

use*_*trm 5 mpeg2-ts

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

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

谢谢。

Coc*_*nop 3

PCR(i) = PCR_base(i)*300 + PCR_ext(i)
Run Code Online (Sandbox Code Playgroud)

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

来源: